ROCK 5 ITX+ not detecting PCIe-to-6x-SATA adapter (ASM1166)

I got the ROCK 5 ITX+ on the marketing promise that I can use a PCIe-to-SATA adapter to connect my SATA SSDs (the aim is to have a more power efficient NAS than the AMD x86 machine I’ve been using and allow me to only turn the latter on when I need more compute power).

I’ve tried

  • the very old image of RadxaOS that ROOBI offers to install (Debian 11, kernel 5.10)
  • upgraded that image to Debian 12 and vendor kernel 6.1
  • the latest RadxaOS Debian 12, kernel 6.1 image linked in the Rock 5 ITX manual online
  • Armbian Trixie with the vendor kernel 6.1, mainline kernel 6.12 and mainline kernel 6.18rc6
  • the Armbian dedicated image with OMV on Debian bookworm and kernel 6.12 (https://dl.armbian.com/rock-5-itx/Bookworm_vendor_minimal-omv)

In almost all of them, lspci never lists the ASM1166 device and consequently I cannot access my drives. Only on the dedicated Armbian OMV image it did work briefly yesterday evening, but today the device was not detected anymore again.

Here’s what `dmesg|grep pcie` outputs for the error, apparently that’s suggesting some kind of error in the device tree? (this is from RadxaOS, Armbian has errors that look pretty similar to me, happy to post those as well if that would be helpful - ideally I’d prefer to run Armbian, but ready to use what I need to get at least basic functionality working)

[ 12.885468] rk-pcie fe180000.pcie: invalid prsnt-gpios property in node
[ 12.885479] rk-pcie fe180000.pcie: Looking up vpcie3v3-supply from device tree
[ 12.885635] rk-pcie fe150000.pcie: invalid prsnt-gpios property in node
[ 12.885641] rk-pcie fe150000.pcie: Looking up vpcie3v3-supply from device tree
[ 12.885819] rk-pcie fe160000.pcie: invalid prsnt-gpios property in node
[ 12.885825] rk-pcie fe160000.pcie: Looking up vpcie3v3-supply from device tree
[ 12.885960] rk-pcie fe180000.pcie: missing legacy IRQ resource
[ 12.885978] rk-pcie fe180000.pcie: IRQ msi not found
[ 12.886007] rk-pcie fe170000.pcie: invalid prsnt-gpios property in node
[ 12.886016] rk-pcie fe180000.pcie: use outband MSI support
[ 12.886024] rk-pcie fe180000.pcie: Missing config reg space
[ 12.886027] rk-pcie fe170000.pcie: Looking up vpcie3v3-supply from device tree
[ 12.886061] rk-pcie fe180000.pcie: host bridge /pcie@fe180000 ranges:
[ 12.886089] rk-pcie fe180000.pcie: err 0x00f3000000..0x00f30fffff → 0x00f3000000
[ 12.886110] rk-pcie fe180000.pcie: IO 0x00f3100000..0x00f31fffff → 0x00f3100000
[ 12.886136] rk-pcie fe180000.pcie: MEM 0x00f3200000..0x00f3ffffff → 0x00f3200000
[ 12.886149] rk-pcie fe180000.pcie: MEM 0x09c0000000..0x09ffffffff → 0x09c0000000
[ 12.886185] rk-pcie fe180000.pcie: Missing config reg space
[ 12.886230] rk-pcie fe180000.pcie: invalid resource
[ 12.891284] rk-pcie fe170000.pcie: missing legacy IRQ resource
[ 12.891300] rk-pcie fe170000.pcie: IRQ msi not found
[ 12.891333] rk-pcie fe170000.pcie: use outband MSI support
[ 12.891340] rk-pcie fe170000.pcie: Missing config reg space
[ 12.891366] rk-pcie fe170000.pcie: host bridge /pcie@fe170000 ranges:
[ 12.891391] rk-pcie fe170000.pcie: err 0x00f2000000..0x00f20fffff → 0x00f2000000
[ 12.891409] rk-pcie fe170000.pcie: IO 0x00f2100000..0x00f21fffff → 0x00f2100000
[ 12.891433] rk-pcie fe170000.pcie: MEM 0x00f2200000..0x00f2ffffff → 0x00f2200000
[ 12.891446] rk-pcie fe170000.pcie: MEM 0x0980000000..0x09bfffffff → 0x0980000000
[ 12.891477] rk-pcie fe170000.pcie: Missing config reg space
[ 12.891519] rk-pcie fe170000.pcie: invalid resource
[ 12.902007] rk-pcie fe150000.pcie: missing legacy IRQ resource
[ 12.902017] rk-pcie fe150000.pcie: IRQ msi not found
[ 12.902028] rk-pcie fe150000.pcie: use outband MSI support
[ 12.902030] rk-pcie fe150000.pcie: Missing config reg space
[ 12.902040] rk-pcie fe150000.pcie: host bridge /pcie@fe150000 ranges:
[ 12.902051] rk-pcie fe150000.pcie: err 0x00f0000000..0x00f00fffff → 0x00f0000000
[ 12.902059] rk-pcie fe150000.pcie: IO 0x00f0100000..0x00f01fffff → 0x00f0100000
[ 12.902068] rk-pcie fe150000.pcie: MEM 0x00f0200000..0x00f0ffffff → 0x00f0200000
[ 12.902074] rk-pcie fe150000.pcie: MEM 0x0900000000..0x093fffffff → 0x0900000000
[ 12.902084] rk-pcie fe160000.pcie: missing legacy IRQ resource
[ 12.902093] rk-pcie fe160000.pcie: IRQ msi not found
[ 12.902099] rk-pcie fe150000.pcie: Missing config reg space
[ 12.902108] rk-pcie fe160000.pcie: use outband MSI support
[ 12.902110] rk-pcie fe160000.pcie: Missing config reg space
[ 12.902121] rk-pcie fe160000.pcie: host bridge /pcie@fe160000 ranges:
[ 12.902123] rk-pcie fe150000.pcie: invalid resource
[ 12.902138] rk-pcie fe160000.pcie: err 0x00f1000000..0x00f10fffff → 0x00f1000000
[ 12.902145] rk-pcie fe160000.pcie: IO 0x00f1100000..0x00f11fffff → 0x00f1100000
[ 12.902154] rk-pcie fe160000.pcie: MEM 0x00f1200000..0x00f1ffffff → 0x00f1200000
[ 12.902159] rk-pcie fe160000.pcie: MEM 0x0940000000..0x097fffffff → 0x0940000000
[ 12.902183] rk-pcie fe160000.pcie: Missing config reg space
[ 12.902209] rk-pcie fe160000.pcie: invalid resource
[ 13.096850] rk-pcie fe170000.pcie: PCIe Linking… LTSSM is 0x3
[ 13.106809] rk-pcie fe160000.pcie: PCIe Linking… LTSSM is 0x0
[ 13.106812] rk-pcie fe150000.pcie: PCIe Linking… LTSSM is 0x0
[ 13.122385] rk-pcie fe170000.pcie: PCIe Linking… LTSSM is 0x3
[ 13.132360] rk-pcie fe150000.pcie: PCIe Linking… LTSSM is 0x0
[ 13.149050] rk-pcie fe170000.pcie: PCIe Linking… LTSSM is 0x3
[ 13.149056] rk-pcie fe180000.pcie: PCIe Link up, LTSSM is 0x130011
[ 13.149239] rk-pcie fe180000.pcie: PCI host bridge to bus 0003:30
[ 13.159025] rk-pcie fe160000.pcie: PCIe Linking… LTSSM is 0x0
[ 13.159027] rk-pcie fe150000.pcie: PCIe Linking… LTSSM is 0x0
[ 13.185691] rk-pcie fe160000.pcie: PCIe Linking… LTSSM is 0x0
[ 13.185693] rk-pcie fe150000.pcie: PCIe Linking… LTSSM is 0x0
[ 13.189108] pcieport 0003:30:00.0: PME: Signaling with IRQ 142
[ 13.232388] rk-pcie fe170000.pcie: PCIe Link up, LTSSM is 0x130011
[ 13.232562] rk-pcie fe170000.pcie: PCI host bridge to bus 0002:20
[ 13.263846] pcieport 0002:20:00.0: PME: Signaling with IRQ 152
[ 13.852903] vcc3v3_pcie2x1l2: 3300 mV, enabled
[ 13.852976] reg-fixed-voltage vcc3v3-pcie2x1l2: Looking up vin-supply from device tree
[ 13.852983] vcc3v3_pcie2x1l2: supplied by vcc_3v3_s3
[ 13.853315] reg-fixed-voltage vcc3v3-pcie2x1l2: vcc3v3_pcie2x1l2 supplying 3300000uV
[ 13.869482] rk-pcie fe190000.pcie: invalid prsnt-gpios property in node
[ 13.869493] rk-pcie fe190000.pcie: Looking up vpcie3v3-supply from device tree
[ 13.870345] rk-pcie fe190000.pcie: missing legacy IRQ resource
[ 13.870362] rk-pcie fe190000.pcie: IRQ msi not found
[ 13.870494] rk-pcie fe190000.pcie: use outband MSI support
[ 13.870501] rk-pcie fe190000.pcie: Missing config reg space
[ 13.870629] rk-pcie fe190000.pcie: host bridge /pcie@fe190000 ranges:
[ 13.870662] rk-pcie fe190000.pcie: err 0x00f4000000..0x00f40fffff → 0x00f4000000
[ 13.870679] rk-pcie fe190000.pcie: IO 0x00f4100000..0x00f41fffff → 0x00f4100000
[ 13.870701] rk-pcie fe190000.pcie: MEM 0x00f4200000..0x00f4ffffff → 0x00f4200000
[ 13.870714] rk-pcie fe190000.pcie: MEM 0x0a00000000..0x0a3fffffff → 0x0a00000000
[ 13.870760] rk-pcie fe190000.pcie: Missing config reg space
[ 13.870972] rk-pcie fe190000.pcie: invalid resource
[ 14.132506] rk-pcie fe190000.pcie: PCIe Link up, LTSSM is 0x130011
[ 14.132769] rk-pcie fe190000.pcie: PCI host bridge to bus 0004:40
[ 14.167062] pcieport 0004:40:00.0: PME: Signaling with IRQ 179
[ 15.789077] rk-pcie fe160000.pcie: PCIe Link Fail
[ 15.789255] rk-pcie fe160000.pcie: failed to initialize host
[ 15.875912] rk-pcie fe150000.pcie: PCIe Link Fail
[ 15.876151] rk-pcie fe150000.pcie: failed to initialize host
[ 15.876934] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up pcie-supply from device tree
[ 15.876975] rockchip-pm-domain fd8d8000.power-management:power-controller: Looking up pcie-supply property in node /power-management@fd8d8000/power-controller failed

I’ve tried the adapter in the 2280/2260/2242/2230 slot as well as the 2280/22110 slot, didn’t seem to make a difference (for what it’s worth, the one time it worked it was in the smaller 2280/2260… slot; ideally I’d like to use the 2280/22110 slot for the SATA adapter though).

The adapter is also recognised without issues on my x86 machine, so I don’t think it’s hardware failure.

I’ve tried powering the barrel port on the mainboard (could only power this through a USB-C PD adapter, hence up to 12V 3A, but that should probably be enough - power draw is solidly below 15W as far as I can see, and in my current setup the SATA SSDs aren’t even powered when I use the barrel plug) and with a picoPSU plugged into the mainboard, powered by a 12V 5A PSU (in this config, the SSDs are connected to SATA power). I think that should rule out power problems?

I’ve found some discussion regarding the original Rock 5 ITX and problems with SATA, but wasn’t sure if they directly apply to my setup on the ITX+ (also my understanding that those issues where on older mainline kernels and people reported that their SATA was working on recent kernels).

Since I couldn’t find other recent discussions that seemed relevant and since the use of these adapters is explicitly advertised by Radxa in their material for the Rock 5 ITX+, I’m wondering if I’m just overlooking some simple configuration aspect?

ChatGPT sent me on a quest of building overlays, but so far without success (also, I don’t really understand what I’m doing there). Is there a simple, provided overlay I need to activate? The ones I could find preinstalled didn’t seem to be relevant, but certainly possible that I’ve overlooked something.

Any advice would be much appreciated - if I’m just making a stupid, easy to fix mistake, all the better. I’d hate to have spent 200€ on a device that can’t even fulfill one of it’s basic marketing promises (although apparently that’s not unheard of for ARM devices, including from Radxa…).

PS: In case this is relevant, an NVME SSD is working fine in either of the 2 m.2 m-key slots.

PPS: Here’s a link to a discussion about the SATA problem regarding the plain Rock 5 ITX and a claim that those problems don’t affect the ITX+: Fixing the problem with PCIe/SATA on Rock 5 ITX - #18 by sdyspb

Therefore, I’m not sure whether any of that applies to my problems. I’d also be somewhat hesitant to let my soldering skills loose on a brand new board in the hope that it’ll still work fine afterwards.

I just noticed that on armbian with the latest mainline kernel 6.18rc6 I don’t see any obvious pcie errors in dmesg, but unfortunately the device is still not visible to lspci (nor are the sata drives by lsblk). here’s the output of dmesg|grep pcie:

[ 0.044824] /pcie@fe180000: Fixed dependency cycle(s) with /pcie@fe180000/legacy-interrupt-controller
[ 0.045041] /pcie@fe190000: Fixed dependency cycle(s) with /pcie@fe190000/legacy-interrupt-controller
[ 0.056043] /pcie@fe150000: Fixed dependency cycle(s) with /pcie@fe150000/legacy-interrupt-controller
[ 0.056320] /pcie@fe160000: Fixed dependency cycle(s) with /pcie@fe160000/legacy-interrupt-controller
[ 0.056606] /pcie@fe170000: Fixed dependency cycle(s) with /pcie@fe170000/legacy-interrupt-controller
[ 1.579073] rockchip-dw-pcie a40c00000.pcie: host bridge /pcie@fe180000 ranges:
[ 1.579091] rockchip-dw-pcie a40c00000.pcie: IO 0x00f3100000..0x00f31fffff → 0x00f3100000
[ 1.579100] rockchip-dw-pcie a40c00000.pcie: MEM 0x00f3200000..0x00f3ffffff → 0x00f3200000
[ 1.579105] rockchip-dw-pcie a40c00000.pcie: MEM 0x09c0000000..0x09ffffffff → 0x0040000000
[ 1.579194] rockchip-dw-pcie a40c00000.pcie: iATU: unroll T, 8 ob, 8 ib, align 64K, limit 8G
[ 1.682655] rockchip-dw-pcie a40c00000.pcie: PCI host bridge to bus 0003:30
[ 1.695639] pcieport 0003:30:00.0: PME: Signaling with IRQ 96
[ 1.696005] pcieport 0003:30:00.0: AER: enabled with IRQ 97
[ 1.696735] rockchip-dw-pcie a41000000.pcie: host bridge /pcie@fe190000 ranges:
[ 1.696750] rockchip-dw-pcie a41000000.pcie: IO 0x00f4100000..0x00f41fffff → 0x00f4100000
[ 1.696759] rockchip-dw-pcie a41000000.pcie: MEM 0x00f4200000..0x00f4ffffff → 0x00f4200000
[ 1.696764] rockchip-dw-pcie a41000000.pcie: MEM 0x0a00000000..0x0a3fffffff → 0x0040000000
[ 1.696848] rockchip-dw-pcie a41000000.pcie: iATU: unroll T, 8 ob, 8 ib, align 64K, limit 8G
[ 1.798367] rockchip-dw-pcie a41000000.pcie: PCI host bridge to bus 0004:40
[ 1.819175] pcieport 0004:40:00.0: PME: Signaling with IRQ 109
[ 1.819520] pcieport 0004:40:00.0: AER: enabled with IRQ 110
[ 1.820451] rockchip-dw-pcie a40800000.pcie: host bridge /pcie@fe170000 ranges:
[ 1.820467] rockchip-dw-pcie a40800000.pcie: IO 0x00f2100000..0x00f21fffff → 0x00f2100000
[ 1.820477] rockchip-dw-pcie a40800000.pcie: MEM 0x00f2200000..0x00f2ffffff → 0x00f2200000
[ 1.820482] rockchip-dw-pcie a40800000.pcie: MEM 0x0980000000..0x09bfffffff → 0x0040000000
[ 1.820573] rockchip-dw-pcie a40800000.pcie: iATU: unroll T, 8 ob, 8 ib, align 64K, limit 8G
[ 1.922372] rockchip-dw-pcie a40800000.pcie: PCI host bridge to bus 0002:20
[ 1.928781] pcieport 0002:20:00.0: PME: Signaling with IRQ 122
[ 1.929047] pcieport 0002:20:00.0: AER: enabled with IRQ 123
[ 2.439736] rockchip-dw-pcie a40000000.pcie: host bridge /pcie@fe150000 ranges:
[ 2.439782] rockchip-dw-pcie a40000000.pcie: IO 0x00f0100000..0x00f01fffff → 0x00f0100000
[ 2.439805] rockchip-dw-pcie a40000000.pcie: MEM 0x00f0200000..0x00f0ffffff → 0x00f0200000
[ 2.439819] rockchip-dw-pcie a40000000.pcie: MEM 0x0900000000..0x093fffffff → 0x0040000000
[ 2.450536] rockchip-dw-pcie a40000000.pcie: iATU: unroll T, 8 ob, 8 ib, align 64K, limit 8G
[ 2.554561] rockchip-dw-pcie a40000000.pcie: PCI host bridge to bus 0000:00
[ 2.568738] pcieport 0000:00:00.0: PME: Signaling with IRQ 148
[ 2.569141] pcieport 0000:00:00.0: AER: enabled with IRQ 149
[ 2.570062] rockchip-dw-pcie a40400000.pcie: host bridge /pcie@fe160000 ranges:
[ 2.570080] rockchip-dw-pcie a40400000.pcie: IO 0x00f1100000..0x00f11fffff → 0x00f1100000
[ 2.570090] rockchip-dw-pcie a40400000.pcie: MEM 0x00f1200000..0x00f1ffffff → 0x00f1200000
[ 2.570098] rockchip-dw-pcie a40400000.pcie: MEM 0x0940000000..0x097fffffff → 0x0040000000
[ 2.580864] rockchip-dw-pcie a40400000.pcie: iATU: unroll T, 8 ob, 8 ib, align 64K, limit 8G
[ 2.682485] rockchip-dw-pcie a40400000.pcie: PCI host bridge to bus 0001:10
[ 2.688995] pcieport 0001:10:00.0: PME: Signaling with IRQ 161
[ 2.689342] pcieport 0001:10:00.0: AER: enabled with IRQ 162
[ 2.742391] pcieport 0000:00:00.0: bridge window [mem 0xf0200000-0xf02fffff]: assigned

Interestingly, lspci seems to list more PCI bridge devices than on the older kernel and on Radxa OS. I think there I had two or max three devices labeled PCI bridge: Rockchip Electronics Co., Ltd RK3588 (rev 01), while on the latest kernel I’m getting 5 (in addition to the nvme drive and the ethernet controllers). Possibly, this won’t help with my problem, but it stuck out to me.

0000:00:00.0 PCI bridge: Rockchip Electronics Co., Ltd RK3588 (rev 01)
0000:01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd NVMe SSD Controller PM9B1 (DRAM-less) (rev 02)
0001:10:00.0 PCI bridge: Rockchip Electronics Co., Ltd RK3588 (rev 01)
0002:20:00.0 PCI bridge: Rockchip Electronics Co., Ltd RK3588 (rev 01)
0003:30:00.0 PCI bridge: Rockchip Electronics Co., Ltd RK3588 (rev 01)
0003:31:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)
0004:40:00.0 PCI bridge: Rockchip Electronics Co., Ltd RK3588 (rev 01)
0004:41:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8125 2.5GbE Controller (rev 05)

Hum, ok, I tried the card again in an x86 PC I had originally tested it two days ago and now it’s not even recognised there anymore. So it looks like this was an issue with the card breaking in slow-motion, it appears (because the LEDs did initially still light up when I got those errors and it wasn’t recognised, now the LEDs don’t even light up anymore).

In conclusion, this seems to have been a hardware failure on the card, no config issue on the Rock 5 ITX+ (unless some setting there broke it, but I’d hope not). I’ll mark as resolved and will have to get a new adapter card :frowning:

There’s another issue. You shouldn’t really upgrade vendor distributions to higher versions, they are customized for one version.

1 Like

really? ugh, one more reason to use armbian if at all possible. Thanks for the heads up! although I suppose my problem was really hardware related, can’t imagine that upgrading the system would burn a SATA adapter?

Armbian seems to be working ok now with the “current” mainline kernel (6.12). Only annoying thing is that I seem to have to pick between support for ZFS (works on mainline, but couldn’t get it to run on vendor kernel) and support for the VPU (and GPU). Hopefully mainline will further improve soon, I need ZFS, so no hardware acceleration for now…

1 Like

You shouldn’t really upgrade armbian like this too, sadly… but it’s more current anyway.

Actually the current “current” is 6.18, you can switch the kernel using armbian-config probably.

Hw acceleration is coming in 6.19 or something like this. The GPU however has been supported for a long time, but gets better with every version, that’s why armbian people recommended the edge kernel for RK3588. 6.12 is quite old.