It seems that the board is currently spinning up all HDDs at once. The peak spin-up current for HDD is usually around 1.8A@12V which is way above the expected 10W per HDD mentioned in the docs guide:
Is there any possibility to support staggered spin-up (SSU) on the board so that it would reduce initial load of the power supply? Is is supported by the current hardware (V1.12)? I guess one would expect bad things to happen when the power adapter is not powerful enough, right?
Well, I had a discussion with the ChatGPT… and the chances are low. I am a complete layman when it comes to u-boot stuff so the information may not be accurate. According to my understanding, there are two ways how to achieve this:
the hardware/power supply one: This would require just to connect power to the drives individually one by one. To do that, the SATA power connectors on the board would have to be connected to the main supply through individual switches. But this is not the case. All the SATA power connectors on the ROCK 5 ITX board are sharing the same power trace.
the software one: This requires support of Power-Up In Standby (PUIS) in the disk, in the SATA controller and in the software. In the PUIS mode, the drives are powered immediately, but some special commands have to be sent over the PCIe to spin them up. The SATA controller is ASM1164, which allegedly has the PUIS support. BUT… (we are still far from the finish line)…we would need to add support for this into the u-boot or write own driver (linux is using standard AHCI driver which has no clue about the controller). It seems that both ways are pretty unrealistic as they would require deep knowledge of the ASM1164. The ultimate killer is that (according to the ChatGPT) the necessary documentation is not published by the ASMedia.
If there is anything wrong with the above, feel free to correct me.
Did you have a chance to investigate PIN#11 option?
PIN 11 - Optional - Staggered spinup/activity
Pin 11 can be used for activity indication and/or staggered spin-up. If pulled down at the connector (as it is on most cable-style SATA power connectors), the drive spins up as soon as power is applied.
Edited: Ok back this topic after a break and I did some more digging and it looks like SSU using linux startup systemd scripts is not possible with a consumer grade PCIe-to-SATA bridge like the ASM1164. An excerpt from my latest chat with Gemini below:
For a staggered spin-up to happen, the drive must Power-Up in a “Standby” state (PUIS). However, the ASM1164 is a non-RAID PCIe-to-SATA bridge.
When you power on the PC, the ASM1164 initializes itself before the Linux kernel even loads. Because the ASM1164 firmware does not support the SATA SET FEATURES command (0x07, 0x03) required to keep a drive in standby or spin-up later, it simply “ignores” the drive’s PUIS setting or fails to negotiate it during the electrical handshake.
By the time the Linux kernel loads and the libata module initializes the ASM1164, the disk drives have already pulled their peak >2A (per disk) inrush current.
I think the best way to deal with a 4 disk array on this board is to use a direct PSU power connection. I think I will try a Molex to Sata cable to overcome the limitations of my PSU.