Hi,
I’ve been annoyed for quite a long time seeing mainline hang hard on my ROCK 5 ITX during boot since 6.10-rc-something, and without ever finding what the problem was, even disabling drivers, changing options, playing with various DTB and patches etc. Given that I’m still not seeing distros shipping mainline for this device, I thought this was just not yet supported.
Today after exchanging with Heiko Stübner who committed the DTS to mainline, he sent me his various settings and images, allowing me to test various combinations, and we could figure the problem. It was stupid but quite not trivial to spot.
It turns out that the Rockchip kernels are using ttyFIQ0
as the console, while mainline uses ttyS2
. So if you reuse the working cmdline from the rockchip kernel, you end up with an apparent hard hang somewhere after usb/pcie initialization. It’s not trivial to spot, when using earlycon, because a lot of messages are emitted before switching to that faulty console. When it’s not properly set, it just switches to silent mode and then panics a bit later for other reasons.
Figuring this allowed me to retest previous versions (some 6.10 and 6.11-rc) and I found that these ones did not detect either SATA or NVME or both due to PCIe apparently not working fine. Heiko pointed me to very recent patches he sent for 6.13 which are available here, and with which PCIe works fine, including NVME+SATA.
In my case, the server is equipped with 4 SATA SSDs, one 10GbE NIC connected to M.2 and NVME storage on the other M.2 (via an adapter). In addition, /boot is on the eMMC. All of this now works fine, that’s super encouraging, I feel like I’ll soon be able to switch that system to production.
It’s also worth noting that the kernel’s defconfig now looks sufficient to support all of these (I just don’t use defconfig because I prefer to have storage drivers linked in the kernel instead of modules).
For more details, here’s what I’m loading in extlinux.conf:
label 612
menu label 6.12.0-rc6-rknas-1
linux ../6.12.0-rc6-rknas-1/Image
#initrd ../initrd.img
fdtdir ../dtb/
append root=/dev/nvme0n1p2 console=ttyS2,1500000n8 debug splash loglevel=7 ro earlycon
Hoping this can help someone facing the same difficulties. Thanks to Heiko for this help, today my setup progressed a lot