调试问题有时需要定频,方法有两种:一种修改内核频率配置表,一种用户层命令操作。
内核修改的方法就是将opp 频率表中不用的频率disable掉,在节点中添加status = "disabled",比如:
opp-600000000 {
opp-hz = /bits/ 64 <600000000>;
opp-microvolt = <825000 825000 1250000>;
opp-microvolt-L0 = <825000 825000 1250000>;
opp-microvolt-L1 = <825000 825000 1250000>;
opp-microvolt-L2 = <825000 825000 1250000>;
opp-microvolt-L3 = <825000 825000 1250000>;
clock-latency-ns = <40000>;
status = "disabled";
};
只留需要定频的频率即可。
在不修改内核的情况下可以通过用户层操作命令定频,比如定频CPU频率:
/* 切换小核governor到userspace */
echo userspace > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
/* 设置小核216MHz */
echo 216000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_setspeed
/* 切换大核governor到userspace */
echo userspace > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
/* 设置大核408MHz */
echo 408000 > /sys/devices/system/cpu/cpufreq/policy4/scaling_setspeed
定频GPU频率:
/* 切换到userspace,不一定是ff400000.gpu,根据不同的平台修改 */
echo userspace > /sys/class/devfreq/ff9a0000.gpu/governor
/* 设置400MHz */
echo 400000000 > /sys/class/devfreq/ff9a0000.gpu/userspace/set_freq
/* 查看当前频率 */
cat /sys/class/devfreq/ff9a0000.gpu/cur_freq