The board hangs occasionally on PCI probe after:

  phy7: lane number 0, val 1

On other boots, it continues to:

  rockchip-dw-pcie [email protected]: Phy link never came up

In both cases, the hang affects the second PCIe host controller
to probe and the first probe never hangs:

  rockchip-dw-pcie [email protected]: Phy link never came up

This hang happens on the very first read access to the PCI controller
at register PCIE_ATU_VIEWPORT. Reading Linux code, the first access
seems to be to PCIE_VERSION_NUMBER (0x8F8), but accessing that in
barebox equally hangs from time to time.

My board doesn't have any PCIe devices connected and this hang
doesn't happen in Linux and doesn't happen on the QNAP
TS433-eU, which is also RK3568, but actually has PCIe devices, which are
probed normally.

Disable the device in barebox, so the board is usable with
rockchip_v8_defconfig, which enables the PCI driver.
barebox,status is used, so the Linux device tree is not affected.

Signed-off-by: Ahmad Fatoum <[email protected]>
---
v1 -> v2:
  - add short comment explaining why we disable this device in particular
---
 arch/arm/dts/rk3568-rock-3a.dts | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/arch/arm/dts/rk3568-rock-3a.dts b/arch/arm/dts/rk3568-rock-3a.dts
index bcbfab14a580..4834a85b367a 100644
--- a/arch/arm/dts/rk3568-rock-3a.dts
+++ b/arch/arm/dts/rk3568-rock-3a.dts
@@ -55,3 +55,8 @@ environment_sd: partition@408000 {
                };
        };
 };
+
+/* Device driver probe occasionally hangs, but pcie2x1 is fine... */
+&pcie3x2 {
+       barebox,status = "disabled";
+};
-- 
2.47.3


Reply via email to