Skip to content

NVIDIA GPU support #2

@hrushirajg23

Description

@hrushirajg23

@mariobalanica I would like to know how you dealt with this issue, or is this nvidia specific issue? Would you help me here, I would be thankful
vicharak@nvidia:~$ lspci
0000:00:00.0 PCI bridge: Rockchip Electronics Co., Ltd RK3588 (rev 01)
0000:01:00.0 VGA compatible controller: NVIDIA Corporation GA102 [GeForce RTX 3080 Lite Hash Rate] (rev a1)
0000:01:00.1 Audio device: NVIDIA Corporation GA102 High Definition Audio Controller (rev a1)
0003:30:00.0 PCI bridge: Rockchip Electronics Co., Ltd RK3588 (rev 01)
0003:31:00.0 Non-Volatile memory controller: Realtek Semiconductor Co., Ltd. RTS5765DL NVMe SSD Controller (DRAM-less) (rev 01)

The bus number 01 shows up the nvidia GPU .
Below it shows the pcie only as gen1 single lane

rk-pcie fe150000.pcie: PCIe Link up, LTSSM is 0x30011
[ 15.717803] rk-pcie fe150000.pcie: PCIe Gen.1 x1 link up
[ 15.717916] rk-pcie fe150000.pcie: PCI host bridge to bus 0000:00

pci 0000:01:00.0: BAR 1: assigned [mem 0x900000000-0x90fffffff 64bit pref]
[ 15.749922] pci 0000:01:00.0: BAR 3: assigned [mem 0x910000000-0x911ffffff 64bit pref]
[ 15.749956] pci 0003:31:00.0: [10ec:5765] type 00 class 0x010802
[ 15.749963] pci 0000:01:00.0: BAR 0: no space for [mem size 0x01000000]
[ 15.749968] pci 0000:01:00.0: BAR 0: failed to assign [mem size 0x01000000]
[ 15.749973] pci 0000:01:00.0: BAR 6: no space for [mem size 0x00080000 pref]
[ 15.749977] pci 0000:01:00.0: BAR 6: failed to assign [mem size 0x00080000 pref]
[ 15.749982] pci 0000:01:00.1: BAR 0: no space for [mem size 0x00004000]
[ 15.749987] pci 0000:01:00.1: BAR 0: failed to assign [mem size 0x00004000]
[ 15.749991] pci 0000:01:00.0: BAR 5: assigned [io 0x200000-0x20007f]

ranges:

rk-pcie fe150000.pcie: host bridge /pcie@fe150000 ranges:
[ 15.368417] rk-pcie fe150000.pcie: IO 0x00f0100000..0x00f01fffff -> 0x00f0100000
[ 15.368440] rk-pcie fe150000.pcie: MEM 0x00f0200000..0x00f0ffffff -> 0x00f0200000
[ 15.368453] rk-pcie fe150000.pcie: MEM 0x0900000000..0x093fffffff -> 0x0900000000
[ 15.368492] rk-pcie fe150000.pcie: iATU unroll: enabled
[ 15.368498] rk-pcie fe150000.pcie: iATU regions: 8 ob, 8 ib, align 64K, limit 8G

rk-pcie fe150000.pcie: PCIe Link up, LTSSM is 0x30011
[ 15.717803] rk-pcie fe150000.pcie: PCIe Gen.1 x1 link up
[ 15.717916] rk-pcie fe150000.pcie: PCI host bridge to bus 0000:00

Here is my dtb node:

pcie3x4: pcie@fe150000 {
compatible = "rockchip,rk3588-pcie", "snps,dw-pcie";
#address-cells = <3>;
#size-cells = <2>;
bus-range = <0x00 0x0f>;
clocks = <&cru ACLK_PCIE_4L_MSTR>, <&cru ACLK_PCIE_4L_SLV>,
<&cru ACLK_PCIE_4L_DBI>, <&cru PCLK_PCIE_4L>,
<&cru CLK_PCIE_AUX0>, <&cru CLK_PCIE4L_PIPE>;
clock-names = "aclk_mst", "aclk_slv",
"aclk_dbi", "pclk",
"aux", "pipe";
device_type = "pci";
interrupts = <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 262 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 261 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 260 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 259 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "sys", "pmc", "msg", "legacy", "err";
#interrupt-cells = <1>;
interrupt-map-mask = <0 0 0 7>;
interrupt-map = <0 0 0 1 &pcie3x4_intc 0>,
<0 0 0 2 &pcie3x4_intc 1>,
<0 0 0 3 &pcie3x4_intc 2>,
<0 0 0 4 &pcie3x4_intc 3>;
linux,pci-domain = <0>;
num-ib-windows = <16>;
num-ob-windows = <16>;
num-viewport = <8>;
max-link-speed = <3>;
msi-map = <0x0000 &its1 0x0000 0x1000>;
num-lanes = <4>;
phys = <&pcie30phy>;
phy-names = "pcie-phy";
power-domains = <&power RK3588_PD_PCIE>;
ranges = <0x81000000 0x0 0xf0100000 0x0 0xf0100000 0x0 0x100000
0x82000000 0x0 0xf0200000 0x0 0xf0200000 0x0 0xe00000
0xc3000000 0x9 0x00000000 0x9 0x00000000 0x0 0x40000000>;
reg = <0x0 0xfe150000 0x0 0x10000>,
<0xa 0x40000000 0x0 0x400000>,
<0x0 0xf0000000 0x0 0x100000>;
reg-names = "pcie-apb", "pcie-dbi", "config";
resets = <&cru SRST_PCIE0_POWER_UP>, <&cru SRST_P_PCIE0>;
reset-names = "pcie", "periph";
rockchip,pipe-grf = <&php_grf>;
status = "disabled";

	pcie3x4_intc: legacy-interrupt-controller {
		interrupt-controller;
		#address-cells = <0>;
		#interrupt-cells = <1>;
		interrupt-parent = <&gic>;
		interrupts = <GIC_SPI 260 IRQ_TYPE_EDGE_RISING>;
	};
};

Then I tried increasing the non-prefetchable memory range from 14mb to 16mb. still I have BAR issues

@@ -556,7 +556,7 @@ pcie3x4: pcie@fe150000 {
phy-names = "pcie-phy";
power-domains = <&power RK3588_PD_PCIE>;
ranges = <0x81000000 0x0 0xf0100000 0x0 0xf0100000 0x0 0x100000

  •                     0x82000000 0x0 0xf0200000 0x0 0xf0200000 0x0 0xe00000
    
  •                     0x82000000 0x0 0xf0200000 0x0 0xf0200000 0x0 0x01000000
                        0xc3000000 0x9 0x00000000 0x9 0x00000000 0x0 0x40000000>;
              reg = <0x0 0xfe150000 0x0 0x10000>,
                    <0xa 0x40000000 0x0 0x400000>,
    

.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions