Jump to content

Recommended Posts

Posted

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

 

<
Posted (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 by eselarm
Posted (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 by eselarm

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines