Hi all,
I’m working with an RK3588-based board and running into a frequency scaling issue. All cores (cpu0–7) are stuck at 408 MHz, despite available OPPs going much higher (up to 2.35 GHz on the big cores). Attempts to raise frequencies via scaling_setspeed or userspace governor have no effect.
The image I'm using is:
https://www.armbian.com/nanopc-cm3588-nas/
(https://dl.armbian.com/cm3588-nas/Bookworm_vendor_minimal-omv)
Device tree file is:
fdtfile=rockchip/rk3588-friendlyelec-cm3588-nas.dtb
# for cpu in /sys/devices/system/cpu/cpu[0-9]*; do
echo "== $(basename $cpu) =="
cat $cpu/cpufreq/scaling_available_frequencies
cat $cpu/cpufreq/cpuinfo_max_freq
done
== cpu0 ==
408000 600000 816000 1008000 1200000 1416000 1608000 1800000
1800000
== cpu1 ==
408000 600000 816000 1008000 1200000 1416000 1608000 1800000
1800000
== cpu2 ==
408000 600000 816000 1008000 1200000 1416000 1608000 1800000
1800000
== cpu3 ==
408000 600000 816000 1008000 1200000 1416000 1608000 1800000
1800000
== cpu4 ==
408000 600000 816000 1008000 1200000 1416000 1608000 1800000 2016000 2208000 2352000
2352000
== cpu5 ==
408000 600000 816000 1008000 1200000 1416000 1608000 1800000 2016000 2208000 2352000
2352000
== cpu6 ==
408000 600000 816000 1008000 1200000 1416000 1608000 1800000 2016000 2208000 2352000
2352000
== cpu7 ==
408000 600000 816000 1008000 1200000 1416000 1608000 1800000 2016000 2208000 2352000
2352000
root@cm3588-nas:/#
Getting DVFS/EM kernel message about inefficient OPP:
[ 14.038585] cpu cpu0: EM: OPP:816000 is inefficient
[ 14.048575] cpu cpu4: EM: OPP:1008000 is inefficient
[ 14.048584] cpu cpu4: EM: OPP:816000 is inefficient
[ 14.060709] cpu cpu6: EM: OPP:1008000 is inefficient
[ 14.060718] cpu cpu6: EM: OPP:816000 is inefficient
PVT readings
[ 14.002363] cpu cpu0: pvtm=1425
[ 14.002523] cpu cpu0: pvtm-volt-sel=1
[ 14.011254] cpu cpu4: pvtm=1645
[ 14.015591] cpu cpu4: pvtm-volt-sel=3
[ 14.025824] cpu cpu6: pvtm=1665
[ 14.030065] cpu cpu6: pvtm-volt-sel=3
Attempting to raise speed:
# for cpu in /sys/devices/system/cpu/cpu[0-9]*; do echo 1800000 | sudo tee $cpu/cpufreq/scaling_setspeed; cat $cpu/cpufreq/scaling_cur_freq; done
1800000
408000
1800000
408000
1800000
408000
1800000
408000
1800000
408000
1800000
408000
1800000
408000
1800000
408000
Why might all cores be capped at 408 MHz despite available OPPs and voltage steps?