The RockPi 4 is the shoddiest thing I have ever bought. Mounds of problems and design flaws. Now, to top it off, if you attach any form of PCI-PCI bridge to the M.2 slot, the kernel panics on boot, as shown by the serial debug cable. The only devices that work are endpoints like Intel X550-T2.
Devices which crash the kernel include:
- PLX / Broadcom PCIe switches
- Gigabyte JHL7540 GC-TITAN RIDGE Thunderbolt 3 bridge
- MSI JHL6540 Thunderbolt M3 card with pcie2tbt mailbox hack to make it permanently visible to non-Intel platforms (set enumeration mode to 0x1 from 0x0).
It is likely a problem with the drivers/pci/controller/pcie-rockchip* files in the kernel. If I can solve the issue then I will post patches to Bjorn Helgaas and try to get them accepted in mainline.
At the kernel developers and hardware designers who did the work, is it too much to ask that you thoroughly test your work? Just because you had NVMe endpoints in mind for the M.2 slot, does not change the fact that it is a (really badly bottlenecked) PCIe root port to which users can attach anything. Get a $5 M.2 - PCIe x4 adapter off Ebay, a molex connector from a power supply and try adding some GPU mining PCIe splitters - see how fast the kernel crashes.
I am concerned that the mainline kernel instructions require compiling a release candidate kernel - more shoddy work that did not make it to the final release without being reverted, I assume?