@tkaiser could you please show me the outputs of your cpufreq settings and opp ? Mine limits at 2304 MHz but I’m seeing the dtb expose 2352 and 2400, I don’t understand what’s preventing them from being usable, they’re not based on a boost and I’m not seeing any message at boot. It’s the same for both debian and ubuntu.
Here’s what I’m having:
# grep '' /sys/devices/system/cpu/cpufreq/policy4/*
/sys/devices/system/cpu/cpufreq/policy4/affected_cpus:4 5
/sys/devices/system/cpu/cpufreq/policy4/cpuinfo_cur_freq:408000
/sys/devices/system/cpu/cpufreq/policy4/cpuinfo_max_freq:2304000
/sys/devices/system/cpu/cpufreq/policy4/cpuinfo_min_freq:408000
/sys/devices/system/cpu/cpufreq/policy4/cpuinfo_transition_latency:324000
/sys/devices/system/cpu/cpufreq/policy4/related_cpus:4 5
/sys/devices/system/cpu/cpufreq/policy4/scaling_available_frequencies:408000 600000 816000 1008000 1200000 1416000 1608000 1800000 2016000 2208000 2304000
/sys/devices/system/cpu/cpufreq/policy4/scaling_available_governors:conservative ondemand userspace powersave performance schedutil
/sys/devices/system/cpu/cpufreq/policy4/scaling_cur_freq:408000
/sys/devices/system/cpu/cpufreq/policy4/scaling_driver:cpufreq-dt
/sys/devices/system/cpu/cpufreq/policy4/scaling_governor:schedutil
/sys/devices/system/cpu/cpufreq/policy4/scaling_max_freq:2304000
/sys/devices/system/cpu/cpufreq/policy4/scaling_min_freq:408000
/sys/devices/system/cpu/cpufreq/policy4/scaling_setspeed:<unsupported>
Though the DTB gives me this:
# dtc -I dtb -O dts < rk3588-rock-5b.dtb |less
...
...
cluster1-opp-table {
...
opp-2304000000 {
opp-supported-hw = <0xff 0x24>;
opp-hz = <0x00 0x89544000>;
opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>;
clock-latency-ns = <0x9c40>;
};
opp-2352000000 {
opp-supported-hw = <0xff 0x48>;
opp-hz = <0x00 0x8c30ac00>;
opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>;
clock-latency-ns = <0x9c40>;
};
opp-2400000000 {
opp-supported-hw = <0xff 0x80>;
opp-hz = <0x00 0x8f0d1800>;
opp-microvolt = <0xf4240 0xf4240 0xf4240 0xf4240 0xf4240 0xf4240>;
clock-latency-ns = <0x9c40>;
};
}
It’s obviously not dramatic, I’m just wondering why we’re seeing different behaviors.
Edit (since I cannot post anymore): There’s this “opp-supported-hw” field in the opp that lists values. I’m wondering if it’s relying on a CPU or board identifier (which could make sense, it’s possible that we have slightly different models since they’re early samples).
####### EDIT: Sorry for the mess below, but the forum refuses my new posts and asks me to wait 9 hours or to modify an existing post. That’s grossly stupid but I have no other solution #############
response to @tkaiser’s list of OPP below
Ah very interesting! I’m seeing this on mine:
# dmesg|grep cpu.*pvtm
[ 2.606324] cpu cpu0: pvtm=1482
[ 2.606542] cpu cpu0: pvtm-volt-sel=3
[ 2.614206] cpu cpu4: pvtm=1722
[ 2.618389] cpu cpu4: pvtm-volt-sel=5
[ 2.626814] cpu cpu6: pvtm=1744
[ 2.630998] cpu cpu6: pvtm-volt-sel=6
Yours says:
[ 3.117399] cpu cpu0: pvtm=1528
[ 3.117491] cpu cpu0: pvtm-volt-sel=5
[ 3.124529] cpu cpu4: pvtm=1785
[ 3.128495] cpu cpu4: pvtm-volt-sel=7
[ 3.136234] cpu cpu6: pvtm=1782
[ 3.140173] cpu cpu6: pvtm-volt-sel=7
And mine has a lower measured frequency on CPU4 than CPU6 so it would very likely point in this direction.
Now I understand better the difference I was seeing between the measured performance of both clusters, I didn’t notice that the second one was indeed really slightly faster:
# grep '' /sys/devices/system/cpu/cpufreq/policy*/scaling_available_frequencies
/sys/devices/system/cpu/cpufreq/policy0/scaling_available_frequencies:408000 600000 816000 1008000 1200000 1416000 1608000 1800000
/sys/devices/system/cpu/cpufreq/policy4/scaling_available_frequencies:408000 600000 816000 1008000 1200000 1416000 1608000 1800000 2016000 2208000 2304000
/sys/devices/system/cpu/cpufreq/policy6/scaling_available_frequencies:408000 600000 816000 1008000 1200000 1416000 1608000 1800000 2016000 2208000 2352000
So there’s something related to measured voltages. Note that this does happen both with a 12Vin PSU and a 5V one.
@hipboi could this have something to do with a possibly insufficient resistor divider precision in a voltage regulator circuit, or with one of these regs themselves ? I can measure the voltages if needed, I’m just unsure where to check as I cannot precisely identify the chip locations on the board. Just let me know if you’d like me to check certain things.