eselarm Posted Saturday at 12:02 PM Posted Saturday at 12:02 PM After kernel version 6.12.6, the overlay to enable SATA on the PCie is not included in the build anymore. So https://github.com/armbian/linux-rockchip/pull/237/commits/5bdf4a4243e6c149290cdd2c8f5a7d1a1946670e is not effective anymore. The existing .dts can be compiled and works with kernel 6.12.10-current-rockchip64 and 6.13.0-edge-rockchip64, but then NVMe is not enabled. From Rock3A schematics and RK3568 datasheet I see that there is no reason that it could not work as the NVMe is on independent PCIe 3x2 lanes in the M.2 M-key connector. PCIe 2x1 lane meant for WiFi/SATA is on E-key connector. It looks like 'entity PCIe is mixed up' somehow. Does anyone have a hint where and how to fix this? Does this also happen on Radxa RK3588 based boards (not the 3588S variant I think)? Workaround now is to use a 2-port SATA JMB58x breakout board. Additional info: root@rock3a:/tmp# strings /dev/mtdblock0 | grep "U-Boot" U-Boot SPL 2024.10-armbian-2024.10-Sf919-Pe8a7-H29de-Vf307-Bb703-R448a (Jan 06 2025 - 02:00:45 +0000) root@rock3a:/tmp# lspci 0000:00:00.0 PCI bridge: Rockchip Electronics Co., Ltd RK3568 Remote Signal Processor (rev 01) 0000:01:00.0 SATA controller: JMicron Technology Corp. JMB58x AHCI SATA controller 0002:00:00.0 PCI bridge: Rockchip Electronics Co., Ltd RK3568 Remote Signal Processor (rev 01) 0002:01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983 0 Quote
eselarm Posted Tuesday at 04:12 PM Author Posted Tuesday at 04:12 PM (edited) To my surprise this works now again; I boot + root from SD-card, and both NVMe and SATA are there. The change is that I run Armbian Bookworm now instead of Armbian Noble and that I just did update+upgrade; 6.13.0-edge-rockchip64 got newly reinstalled (higher beta trunk number). The Armbian Bookworm is cloned from my NanoPi-R6C (changed some packages from nanopi-r6c -> rock-3a, but for the rest I have no clue why it works now and not a few days ago. The userspace should not matter. Anyway, FYI: root@rock3a:~# strings /dev/mtdblock0 | grep "U-Boot" | head -n1 U-Boot SPL 2024.10-armbian-2024.10-Sf919-Pe8a7-H29de-Vf307-Bb703-R448a (Jan 06 2025 - 02:00:45 +0000) root@rock3a:~# uname -a Linux rock3a 6.13.0-edge-rockchip64 #1 SMP PREEMPT Sun Jan 19 23:51:45 UTC 2025 aarch64 GNU/Linux root@rock3a:~# lspci 0002:00:00.0 PCI bridge: Rockchip Electronics Co., Ltd RK3568 Remote Signal Processor (rev 01) 0002:01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller SM981/PM981/PM983 root@rock3a:~# dmesg | grep -e nvme [ 5.949382] nvme nvme0: pci function 0002:01:00.0 [ 5.949860] nvme 0002:01:00.0: enabling device (0000 -> 0002) [ 5.953920] nvme nvme0: missing or invalid SUBNQN field. [ 5.955055] nvme nvme0: D3 entry latency set to 8 seconds [ 5.977503] nvme nvme0: 4/0/0 default/read/poll queues [ 6.007639] nvme0n1: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 [ 17.746225] nvme nvme0: using unchecked data buffer root@rock3a:~# dmesg | grep -e ata1 -e ahci [ 2.904834] ahci-dwc fc800000.sata: supply ahci not found, using dummy regulator [ 2.905739] ahci-dwc fc800000.sata: supply phy not found, using dummy regulator [ 2.906596] ahci-dwc fc800000.sata: supply target not found, using dummy regulator [ 2.907407] ahci-dwc fc800000.sata: PMPn is limited up to 5 ports [ 2.908187] ahci-dwc fc800000.sata: forcing port_map 0x0 -> 0x1 [ 2.908772] ahci-dwc fc800000.sata: AHCI vers 0001.0300, 32 command slots, 6 Gbps, platform mode [ 2.909558] ahci-dwc fc800000.sata: 1/1 ports implemented (port mask 0x1) [ 2.910163] ahci-dwc fc800000.sata: flags: ncq sntf pm led clo only pmp fbs pio slum part ccc apst [ 2.910993] ahci-dwc fc800000.sata: port 0 is not capable of FBS [ 2.919874] scsi host0: ahci-dwc [ 2.920501] ata1: SATA max UDMA/133 mmio [mem 0xfc800000-0xfc800fff] port 0x100 irq 30 lpm-pol 0 [ 3.387739] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300) [ 3.388945] ata1.00: ATA-9: WDC WD40EFRX-68WT0N0, 80.00A80, max UDMA/133 [ 3.389578] ata1.00: 7814037168 sectors, multi 0: LBA48 NCQ (depth 32) [ 3.390867] ata1.00: configured for UDMA/133 Note that this is using a copied 'rock-3a-sata.dtbo' from the vendor 6.1.84 kernel as I did earlier/initially. I was planning to see if I somehow maybe could modify/reuse 'rockchip-rk3566-sata2.dtbo', but I do not really understand exactly what its de-compiled .dtbo code does. Edited Tuesday at 04:22 PM by eselarm 0 Quote
eselarm Posted 21 hours ago Author Posted 21 hours ago (edited) Unfortunately, something random is happening as after a reboot, the NVMe is again not found if SATA overlay is used. The only PCI-e related text in dmesg is then: root@rock3a:~# dmesg | grep -e pcie -e nvme [ 0.174540] /pcie@fe280000: Fixed dependency cycle(s) with /pcie@fe280000/legacy-interrupt-controller [ 4.702382] rockchip-dw-pcie 3c0800000.pcie: probe with driver rockchip-dw-pcie failed with error -110 At least I know now that the used U-Boot does not find my NVME, so that is maybe already the (random) showstopper. So I have to see if maybe a Radxa U-Boot makes it work. Edited 21 hours ago by eselarm 0 Quote
eselarm Posted 20 hours ago Author Posted 20 hours ago Using Radxa U-Boot version "2023.07.02-3-b1eb2bde-gb1eb2bde" makes no difference. 0 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.