Rock5 ITX relatively high idle power consumption

I’m wondering about the status of power consumption when Rock5 ITX is idle.
I’m measuring the current at 12V socket, no hdmi, no network, no peripheral except the microSD card where the OS lives.
So far, i have measured for different images:

  • Armbian_24.8.3_Rock-5-itx_bookworm_vendor_6.1.75_minimal : 0.45A => 5.4W
  • rock-5-itx_bookworm_kde_b3 : 0.4A => 4.8W

From an ARM soc having the capability to gate the BIG core part and using DVFS, I would expect something more close to 1W.

The difference between the 2 OS images is already strange.

What is also strange, is that I tried to disabled the cpuidle capabilities, and the consumption doesn’t increase at all (what should be expected), makes me wondering if cpuidle is working correctly…

CPUIDLE disabled with:

for cpu in /sys/devices/system/cpu/cpu?; do
    echo $cpu
    for state in $cpu/cpuidle/state?; do
        echo $state
        echo 1 > $state/disable
    done
done

Looking at the kernel code behind the cpuidle feature, it looks like everything concerning clock/power gating and cpu sleeping is delegated to the ATF firmware. I will try to build it and trace how it deals with various requests…

Does someone already dig into this area ?

I had run experiments here with/without SSD and 10GbE: http://wtarreau.blogspot.com/2024/05/an-affordable-10gbe-capable-nas.html

From what I’m seeing, I had measured 4.88W in idle with no network connected. That’s with mainline kernel. Note that it’s very possible that some distros run periodic tasks or checks of running processes, and even if you rarely see them appear in “top”, frequent wakeups can inflict a significant cost on idle power consumption. You can also check the cpufreq governors and the DMC governors (the DRAM controller, which changes the DDR frequency). It’s possible that one distro turned the DMC to “performance” to address some encountered shortcomings where the small cores are not sufficient to wake it up and end up with horrible DRAM access times (which is what happens with the default “ondemand” governor). And I also seem to remember something about half an extra watt when doing so, that could be what you’re observing.