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
- first entry for bar0
- second entry for bar1
- third entry for FUSE region.
interrupts: Applicable for both Linux and QNX.
Description: `interrupts` holds the IRQ number and IRQ type connect to ga10b.
Customizable: No
Optional: No
- 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
- 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"