PCIe missing on RK3399
Heiko Stübner
heiko at sntech.de
Thu Dec 12 05:06:30 PST 2024
Am Donnerstag, 12. Dezember 2024, 13:12:22 CET schrieb Vicente Bergas:
> On Wed, Dec 11, 2024 at 6:31 PM Vicente Bergas <vicencb at gmail.com> wrote:
> >
> > On Wed, Dec 11, 2024 at 4:35 PM Heiko Stübner <heiko at sntech.de> wrote:
> > >
> > > Am Mittwoch, 11. Dezember 2024, 16:10:21 CET schrieb Vicente Bergas:
> > > > On Wed, Dec 11, 2024 at 2:36 PM Heiko Stübner <heiko at sntech.de> wrote:
> > > > >
> > > > > Hi Vicente,
> > > >
> > > > Hi Heiko,
> > > > thanks for taking a look at it!
> > > >
> > > > > Am Mittwoch, 11. Dezember 2024, 13:55:01 CET schrieb Vicente Bergas:
> > > > > > i've tested the Linux kernel 6.13-rc1 and rc2 and in both cases PCIe
> > > > > > is not detected on the RK3399 platform (rk3399-gru-kevin), whereas the
> > > > > > kernel version 6.12.3 works fine.
> > > > > >
> > > > > > 6.13 configuration is based on the same one as 6.12 and there aren't
> > > > > > any significant PCI-related differences.
> > > > > >
> > > > > > The messages from dmesg on 6.13 don't show any PCI-related errors.
> > > > > >
> > > > > > Does somebody know what is going on?
> > > > >
> > > > > so I just booted a rk3399-puma-haikou with a pci-nvme-adapter in the
> > > > > pcie slot. And I get:
> > > > >
> > > > > [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
> > > > > [ 0.000000] Linux version 6.13.0-rc2-00101-g260ae63734ff-dirty (hstuebner at phil) (aarch64-linux-gnu-gcc (Debian 14.2.0-6) 14.2.0, GNU ld (GNU Binutils for Debian) 2.43.1) #1134 SMP PREEMPT Tue Dec 10 21:06:34 CET 2024
> > > > > ...
> > > > > [ 3.428114] rockchip-pcie f8000000.pcie: host bridge /pcie at f8000000 ranges:
> > > > > [ 3.435978] rockchip-pcie f8000000.pcie: MEM 0x00fa000000..0x00fbdfffff -> 0x00fa000000
> > > > > [ 3.445478] rockchip-pcie f8000000.pcie: IO 0x00fbe00000..0x00fbefffff -> 0x00fbe00000
> > > > > [ 3.455298] rockchip-pcie f8000000.pcie: using DT '/pcie at f8000000' for 'ep' GPIO lookup
> > > > >
> > > > > So there seems to be not some general failure.
> > > > >
> > > > > Does
> > > > > # ls /sys/devices/platform/f8000000.pcie
> > > > > list some "waiting_for_supplies" or something?
> > > >
> > > > yes, indeed there is such a file in there:
> > > >
> > > > ### 6.13-rc2
> > > > $ ls /sys/devices/platform/f8000000.pcie
> > > > power
> > > > driver_override
> > > > modalias
> > > > of_node
> > > > subsystem
> > > > supplier:platform:ff720000.gpio
> > > > supplier:platform:ff770000.syscon:pcie-phy
> > > > supplier:platform:ff780000.gpio
> > > > supplier:platform:pinctrl
> > > > supplier:platform:regulator-pp3300-wifi-bt
> > > > supplier:platform:regulator-wlan-pd-n
> > > > uevent
> > > > waiting_for_supplier
> > > >
> > > > $ cat /sys/devices/platform/f8000000.pcie/waiting_for_supplier
> > > > 1
> > > >
> > > > ### 6.12.3
> > > > $ ls /sys/devices/platform/f8000000.pcie
> > > > pci0000:00
> > > > power
> > > > driver
> > > > driver_override
> > > > modalias
> > > > of_node
> > > > subsystem
> > > > supplier:phy:phy-ff770000.syscon:pcie-phy.5
> > > > supplier:phy:phy-ff770000.syscon:pcie-phy.6
> > > > supplier:phy:phy-ff770000.syscon:pcie-phy.7
> > > > supplier:phy:phy-ff770000.syscon:pcie-phy.8
> > > > supplier:platform:ff770000.syscon:pcie-phy
> > > > supplier:platform:ff780000.gpio
> > > > supplier:platform:pinctrl
> > > > supplier:platform:pp3300-wifi-bt
> > > > supplier:platform:pp900-ap
> > > > supplier:platform:wlan-pd-n
> > > > supplier:regulator:regulator.17
> > > > supplier:regulator:regulator.23
> > > > supplier:regulator:regulator.25
> > > > uevent
> > > >
> > > > What does that mean?
> > >
> > > waiting_for_supplier means that some supplier has not yet probed
> > > and thus the driver also cannot probe yet.
> > >
> > > But your 6.13-rc2 supplier list does look way too short. In my boot on
> > > rk3399-puma-haikou above, I got:
> > >
> > > $ ls /sys/devices/platform/f8000000.pcie
> > > driver
> > > driver_override
> > > modalias
> > > of_node
> > > pci0000:00
> > > power
> > > subsystem
> > > supplier:phy:phy-ff770000.syscon:pcie-phy.2
> > > supplier:phy:phy-ff770000.syscon:pcie-phy.3
> > > supplier:phy:phy-ff770000.syscon:pcie-phy.4
> > > supplier:phy:phy-ff770000.syscon:pcie-phy.5
> > > supplier:platform:ff770000.syscon:pcie-phy
> > > supplier:platform:ff790000.gpio
> > > supplier:platform:pinctrl
> > > supplier:platform:regulator-dc-12v
> > > supplier:platform:regulator-vcc3v3-baseboard
> > > supplier:platform:regulator-vcca-0v9
> > > supplier:platform:regulator-vcca-1v8
> > > supplier:regulator:regulator.10
> > > supplier:regulator:regulator.11
> > > supplier:regulator:regulator.29
> > > supplier:regulator:regulator.3
> > > uevent
> >
> > Just tested 6.13-rc2 with the DTB from 6.12.3 and it works fine. So,
> > it is a DT issue.
> > I suspect this commit may be the root cause:
> > 5c96e63301978f4657c9082c55a066763c8db7b1
> > arm64: dts: rockchip: adapt regulator nodenames to preferred form
>
> (Added: Johan Jonker)
>
> The 6.13-rc2 kernel with 5c96e63301978f4657c9082c55a066763c8db7b1
> reverted works fine, i've just tested that to confirm.
though interestingly, in my test yesterday I used 6.13-rc2 kernel but
including the 6.13-rc2 devicetree built from there. So that does not seem
to be a general problem, but more limited to some boards.
What board are you using?
Heiko
More information about the Linux-rockchip
mailing list