Fixing the problem with PCIe/SATA on Rock 5 ITX

Dim Sidorovich, [2/16/2025 8:27 PM]
It seems I’ve found the main reason of SATA detected problem on Rock 5 ITX

For my opinion, it’s SRIS mode (Separated Reference Clock with Spread Spectrum Clocking) of ASM1164 that is enabled during start up. According to ASM1164 datasheet, pin 14 is a strap pin for SRIS_EN# and low level on it during start up enables the SRIS:

There is no SSC with clock generator chip or independent PCIe clock for controller, so maybe PLL of ASM1164 is not locked with SRIS:

There are pull up and pull down resistors on the board. These are R96000 and R29, respectively, but R29 is “stronger” than R96000, so pin 14 is pulled down:

The workaround is unsolder R29 that is on bottom side to pull up pin 14 by R96000:


Unsolder R29 with care. It actually needs good soldering iron. I use Ersa with 102ADLF20 tip at 370 Celsius because one terminal of R29 is on ground plane:

That’s all. I’ve tested the workaround on my board - works 10/10 after reboot and poweroff

6 Likes

R33 should disable PCIe SSC. So it should run with SRIS but without SSC. Can SRIS work without SSC (will it enable SRNS in that case)?

SRIC it’s about independent clock with SSC. Radxa 5 ITX uses Common Reference Clock, not SRIS, so it doesn’t matter whether SSC clock exists or not. The main reason not to use SRIS is a PCIe Common Clock schematic of the board

I’m absolutely sure that there is wrong pin-strap configuration of the ASM1164 and the only one right option is unsoldering R29

1 Like

Hello, excuse me. If you don’t remove r29, will sata not be detected all the time or is it not detected probabilistically? How can it be reproduced?

With R29 SATA works unstable and not detected by software based on Bullseye and Bookworm. Only the old kernel from Radxa worked somehow.

Without R29 the board works with all kernels

1 Like

Out of curiosity, what kernels are they using ? Mine is on 6.12 and boots flawlessly. I admit that some previous mainline kernel attempts did not detect al PCIe and particularly the SATA one, and by then I only attributed this to some flawed PCIe driver.

Armbian’s 6.1.84 vendor kernel definitely exhibits this problem (necessary for transcoding or I’d be on mainline too) - though there is a new kernel available now that may address it.

Now that you’re saying it, it reminds me something. My board had been using vendor 5.10 for a while. When I saw vendor’s 6.1 I tried a few of them and none of them would boot fine due to missing access to SATA. I initially thought they messed up with something that would eventually be fixed, but I got bored. In the mean time someone here helped me figure what I was missing to enable earlycon on mainline and I managed to get mainline to work fine. So maybe in your case reverting to vendor’s 5.10 could also be an option ?

@sdyspb have you got some reply from the Radxa team?

No, I think they are quite busy now with new ITX+ and other boards

1 Like

Thank you @sdyspb, has anyone else tried removing R29? Was it a success? I think I can be dangerous enough with a soldering iron to get it off, but probably wouldn’t be able to put it back. I get no SATA love with the current Armbian vendor kernel: 6.1.84-vendor-rk35xx.