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 and QNX are as follows.

Ga10b – ga10b node, contains configuration parameters needed for initializing the NvGPU driver.
tegra_ga10b: ga10b {
                compatible = "nvidia,ga10b";
                #cooling-cells = <2>;
                reg = <0x0 0x17000000 0x0 0x1000000
                       0x0 0x18000000 0x0 0x1000000
                       0x0 0x03b41000 0x0 0x00001000>;
                interrupts = <0 68 0x04
                              0 70 0x04
                              0 71 0x04
                              0 67 0x04>;
                dma-noncontig;
                interrupt-names = "stall0", "stall1", "stall2", "nonstall";
                nvidia,host1x = <&host1x>;
                access-vpr-phys;
                power-domains = <&bpmp TEGRA234_POWER_DOMAIN_GPU>;
                clocks = <&bpmp_clks TEGRA234_CLK_GPUSYS>,
                        <&bpmp_clks TEGRA234_CLK_GPC0CLK>,
                        <&bpmp_clks TEGRA234_CLK_GPC1CLK>;
                clock-names = "sysclk", "gpc0clk", "gpc1clk";
                resets = <&bpmp_resets TEGRA234_RESET_GPU>;
                dma-coherent;
                nvidia,bpmp = <&bpmp>;
                support-gpu-tools = <1>;
                status = "disabled";
};

Compatible :Applicable for both Linux and QNX.

Description: - `compatible` contains the unique string to identify the external NvGPU DT node.

Customizable: No

Optional: No

Value: " nvidia,ga10b "

reg :Applicable for both Linux and QNX.

Description: Physical base address and length of the controller's registers.

Customizable: No

Optional: No

Value: Must contain two entries:
  • first entry for bar0
  • second entry for bar1
  • third entry for FUSE region.
An optional third entry is used only in case of simulation.

interrupts: Applicable for both Linux and QNX.

Description: `interrupts` holds the IRQ number and IRQ type connect to ga10b.

Customizable: No

Optional: No

Value: Must contain an entry for each entry in interrupt-names.
  • 0 68 0x04
  • 0 70 0x04
  • 0 71 0x04
  • 0 67 0x04

interrupt-names: Applicable for both Linux and QNX.

Description: `interrupt-names` holds the type of interrupts supported by ga10b.

Customizable: No

Optional: No

Value: Must include the following entries:
  • stall0
  • stall1
  • stall2
  • nonstall

nvidia,host1x- Applicable only for Linux.

Description: host1x device, needed for syncpoint support.

Customizable: No

Optional: Yes

Value: host1x

access-vpr-phys – Applicable for both Linux and QNX.

Description: GPU device can't access VPR via SMMU. It can only access VPR in physical. Bypass smmu if access-vpr-phys is specified in device's DT node. If device does not have DT entry or if it does not have access-vpr-phys property, nvmap can continue to map the sgt in iova space and hence can avoid fragmentation issues for devices which can access vpr through smmu

Customizable: No

Optional: Yes

Value: access-vpr-phys

power-domains- Applicable only for Linux.

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

Customizable: No

Optional: No

Value: <&bpmp TEGRA234_POWER_DOMAIN_GPU>

Clocks: Applicable for both Linux and QNX.

Description: `clocks` holds the type of clocks ids supported by ga10b.

Customizable: No

Optional: No

Value: <&bpmp_clks TEGRA234_CLK_GPUSYS>,

<&bpmp_clks TEGRA234_CLK_GPC0CLK>,

<&bpmp_clks TEGRA234_CLK_GPC1CLK

clock-names: Applicable for both Linux and QNX.

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: "sysclk", "gpc0clk", "gpc1clk

resets: Applicable for both Linux and QNX.

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

Customizable: No

Optional: No

Value: bpmp_resets TEGRA234_RESET_GPU

dma-coherent: Applicable for both Linux and QNX.

Description: Present if DMA operations are coherent.

Customizable: No

Optional: Yes

Value: N/A

dma-noncontig: Specific to Linux and probably can be removed now as seems not being used now.

Description: Present if DMA operations are noncontiguous.

Customizable: No

Optional: Yes

Value: N/A

support-gpu-tools: Applicable only on QNX standard and Linux builds.

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 below nodes:

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

Status: Applicable for both Linux and QNX.

Description: `status` holds the NVGPU status.

Customizable: No

Optional: No

Value: “okay" or "disabled"