Bootstrap

RK平台 CPU、GPU、DDR 频率动态修改

DVFS Dynamic Voltage and Frequency Scaling )动态电压频率调节,是⼀种实时的电压和频率调节技术。⽬前 4.4 内核中⽀持 DVFS 的模块有 CPU GPU DDR CPUFreq 是内核开发者定义的⼀套⽀持动
态调整 CPU 频率和电压的框架模型。它能有效的降低 CPU 的功耗,同时兼顾 CPU 的性能。 CPUFreq
过不同的变频策略,选择⼀个合适的频率供 CPU 使⽤,⽬前的内核版本提供了以下⼏种策略:
interactive :根据 CPU 负载动态调频调压;
conservative :保守策略,逐级调整频率和电压;
ondemand :根据 CPU 负载动态调频调压,⽐ interactive 策略反应慢;
userspace :⽤⼾⾃⼰设置电压和频率,系统不会⾃动调整;
powersave :功耗优先,始终将频率设置在最低值;
performance :性能优先,始终将频率设置为最⾼值;
详细的模块功能及配置,请参考 docs\Kernel\DVFS\ ⽬ 录下⽂档。 ARM/GPU/DDR 分别有对应的调试接
口,可以通过 ADB 命令进⾏操作,对应的接口⽬录如下:
这些⽬录下有如下类似节点:
available_frequencies :显⽰⽀持的频率
available_governors :显⽰⽀持的变频策略
cur_freq :显⽰当前频率
governor :显⽰当前的变频策略
max_freq :显⽰当前最⾼能跑的频率
min_freq :显⽰当前最低能跑的频率
RK3399/RK3399pro GPU 为例进⾏定频操作,流程如下:
查看⽀持哪些频率:
        cat /sys/class/devfreq/ff9a0000.gpu/available_frequencies
切换变频策略:
        echo userspace > /sys/class/devfreq/ff9a0000.gpu/governor
定频:
        echo 400000000 > /sys/class/devfreq/ff9a0000.gpu/userspace/set_freq
        cat /sys/class/devfreq/ff9a0000.gpu/cur_freq
CPU 小核: /sys/devices/system/cpu/cpu0/cpufreq/
CPU ⼤核: /sys/devices/system/cpu/cpu4/cpufreq/
GPU /sys/class/devfreq/ff9a0000.gpu/
DDR /sys/class/devfreq/dmc/
;