]> git.dujemihanovic.xyz Git - u-boot.git/commit
pci: pcie-brcmstb: do not rely on CLKREQ# signal
authorSam Edwards <cfsworks@gmail.com>
Wed, 16 Aug 2023 22:27:53 +0000 (15:27 -0700)
committerTom Rini <trini@konsulko.com>
Wed, 30 Aug 2023 15:47:43 +0000 (11:47 -0400)
commit59bf0cdfa9a76cb6da7532a10584bcd40c3e3a00
tree91fb5e4d9953cefe3c22c74ae27d16958c20d47f
parentd709d4695fd3740025068cc9225755255875f6ad
pci: pcie-brcmstb: do not rely on CLKREQ# signal

When the Broadcom STB PCIe controller is initialized, it must be set
into one of three CLKREQ# modes: "none"/"aspm"/"l1ss". The Linux driver,
through today, hard-codes "aspm" since the vast majority of boards using
this driver have a fixed PCIe bus with the CLKREQ# signal wired up.

The Raspberry Pi CM4, however, can be connected to a plethora of PCIe
devices, some of which do not connect the CLKREQ# line (they just leave
it floating). So "aspm" mode is no longer appropriate in all cases. In
Linux, there is a proposed patchset [1] to determine the proper mode.
This doesn't really make sense in U-Boot's case, so we just change the
assumption from "aspm" to "none" (which is always safe).

This patch DOES resolve a real-world crash that occurs when U-Boot is
running on a Raspberry Pi CM4 installed in slot 3 of a Turing Pi 2
cluster board.

[1]: https://lore.kernel.org/all/20230428223500.23337-1-jim2101024@gmail.com/

Signed-off-by: Sam Edwards <CFSworks@gmail.com>
drivers/pci/pcie_brcmstb.c