NvGPU Device Tree#

The NvGPU driver uses the following Device tree nodes and properties. Properties customizable are marked accordingly for each property used. Nodes used in NvGPU drivers for Linux are as follows.

Note that for Thor SOC, GPU (gb10b) is a PCIe device. Node gpu@0,0 under pci@0,0 under pcie@d0b0000000 – gpu@0,0 node, contains configuration parameters needed for initializing the NvGPU driver.

pcie@d0b0000000 {
    ...
    pci@0,0 {
        ...
        gpu@0,0 {
            reg = <0x0000 0 0 0 0>;

            power-domains = <&bpmp TEGRA264_POWER_DOMAIN_GPU>;

            clocks = <&bpmp TEGRA264_CLK_GPU_UPROC>,
                     <&bpmp TEGRA264_CLK_GPU_SYS>,
                     <&bpmp TEGRA264_CLK_GPU_GPC0>,
                     <&bpmp TEGRA264_CLK_GPU_GPC1>,
                     <&bpmp TEGRA264_CLK_GPU_GPC2>,
                     <&bpmp TEGRA264_CLK_GPU_NVD>;
            clock-names = "uprocclk", "sysclk", "gpc0clk", "gpc1clk", "gpc2clk", "nvdclk";

            interconnects = <&mc TEGRA264_MEMORY_CLIENT_GPUR02MC &emc>,
                            <&mc TEGRA264_MEMORY_CLIENT_GPUW02MC &emc>,
                            <&mc TEGRA264_MEMORY_CLIENT_NVDECSRD2MC &emc>,
                            <&mc TEGRA264_MEMORY_CLIENT_NVDECSWR2MC &emc>;
            interconnect-names = "gpu-read", "gpu-write", "video-read", "video-write";

            dma-coherent;

            nvidia,bpmp = <&bpmp>;
        };
    };
};

Description: - ‘reg’ Dummy entry for physical base address and length of the controller’s registers.

Customizable: No

Optional: No

Value: Must contain one entry.

power-domains-

Description: Generic Power Domains (genpd). Available in k4.14 onwards. bpmp manages power gating for GPUs if this entry is present in the DT.

Customizable: No

Optional: No

Value:

<&bpmp TEGRA264_POWER_DOMAIN_GPU>

Clocks

Description: clocks holds the type of clocks ids supported by gb10b.

Customizable: No

Optional: No

Value:

<&bpmp TEGRA264_CLK_GPU_UPROC>,
<&bpmp TEGRA264_CLK_GPU_SYS>,
<&bpmp TEGRA264_CLK_GPU_GPC0>,
<&bpmp TEGRA264_CLK_GPU_GPC1>,
<&bpmp TEGRA264_CLK_GPU_GPC2>,
<&bpmp TEGRA264_CLK_GPU_NVD>;

clock-names

Description: List of clock input name strings sorted in the same order as the clocks property. Consumer’s drivers will use clock-names to match clock input names with clocks specifiers

Customizable: No

Optional: Yes

Value:

"uprocclk", "sysclk", "gpc0clk", "gpc1clk", "gpc2clk", "nvdclk"

interconnects

Description: List of phandle and MC node specifier pairs, one pair for each MC client signal that affects the device, or that the device manages.

Customizable: No

Optional: No

Value:

<&mc TEGRA264_MEMORY_CLIENT_GPUR02MC &emc>,
<&mc TEGRA264_MEMORY_CLIENT_GPUW02MC &emc>,
<&mc TEGRA264_MEMORY_CLIENT_NVDECSRD2MC &emc>,
<&mc TEGRA264_MEMORY_CLIENT_NVDECSWR2MC &emc>;

interconnect-names

Description: List of MC client input name strings sorted in the same order as the interconnects property. Consumer’s drivers will use interconnect-names to match MC client input names with MC client specifiers.

Customizable: No

Optional: Yes

Value:

::

“gpu-read”, “gpu-write”, “video-read”, “video-write”

dma-coherent

Description: Present if DMA operations are coherent.

Customizable: No

Optional: Yes

Value: N/A

nvidia,bpmp

Description: bpmp device phandle, needed for powergating support.

Customizable: No

Optional: No

Value: bpmp

Following two properties are defined in guest OS DT overlay/override files.

support-gpu-tools

Description: Knob to control dbg/prof support.

Customizable: Yes

Optional: Yes

Value: Value 1 depicts that dbg/prof support is enabled. Absence or other value means support is disabled, which skips support for the following nodes:

1. ctxsw 2. dbg 3. prof 4. prof-dev 5. prof-ctx

Status

Description: status holds the NVGPU status.

Customizable: No

Optional: No

Value: “okay” or “disabled”