Hello all, This RFC patch provides a workaround for Rockchip PCIe controller crashes with some devices when PCIe bus is scanned. Both command line parameter and device tree property are included as ways to set the delay. I'm sending this as RFC because I don't know which approach, command line and/or device tree, would be the best considering this is a workaround, not a proper fix. I feel that at least command line parameter should be provided as it's easy to edit by end user. Device tree property could be seen as a way for disto maintainer to provide sane or safe default with kernel but it also extends the change to touch more files which makes it harder to clean up if a proper fix to this is found. Also, I've set delay to 1100 ms for RockPro64 in patch 3 as an example of safe default. If new device tree property support is accepted maybe the actual device tree should be left unmodified or delay set to 0 ms so that users not needing the delay are not affected in any way. Patch 1 adds the workaround code. Kernel parameter documentation is also included. Devices used in testing and a log excerpt are included in changelog. In addition to devices needing the delay, tested and listed in patch 1 following devices that do not need the delay were tested with no delay and 1000 ms delay and no regression was observed: - Marvell 88SE9215 and 88SE9230 based SATA controllers - Samsung 970 EVO Plus NVMe drive Patches 2 and 3 add dt-bindings and the new property to RockPro64 device as an example. All comments about the workaround itself if it's applicable and about both command line + device tree or only command line approaches are welcome. Best regards, Jari Hämäläinen Jari Hämäläinen (3): PCI: rockchip: provide workaround for bus scan crash with optional delay dt-bindings: PCI: rockchip: document bus-scan-delay-ms workaround property arm64: dts: rockchip: use bus-scan-delay-ms workaround with RockPro64 PCIe .../admin-guide/kernel-parameters.txt | 8 ++++++++ .../bindings/pci/rockchip-pcie-host.txt | 3 +++ .../boot/dts/rockchip/rk3399-rockpro64.dtsi | 1 + drivers/pci/controller/pcie-rockchip-host.c | 18 ++++++++++++++++++ drivers/pci/controller/pcie-rockchip.c | 5 +++++ drivers/pci/controller/pcie-rockchip.h | 2 ++ 6 files changed, 37 insertions(+) base-commit: 5c8fe583cce542aa0b84adc939ce85293de36e5e -- 2.29.2