SSD_主频调整
1. 概述¶
ssd2xx系列芯片支持动态调整Core Power电压。
Core Power电压是由CPU主频和芯片温度两个因素决定的,其他芯片可能还有其他因素决定。
kernel相关define为CONFIG_SS_VOLTAGE_CTRL。
2. CPU主频和Core Power¶
CPU 主频=800MHz,Core Power 0.9V
CPU 主频=1GHz,Core Power 1.0V
无论CPU主频软件设置多少,都需要Core Power = 1V 启动。
推荐做法:硬件保留DVFS电路,1V启动,启动后根据软件配置的主频选择电压。
硬件需要固定Core Power的请先和SigmaStar确认风险。
2.1. 软件固定频率 1G¶
注意:
-
kernel\arch\arm\boot\dts\pioneer3.dtsi
中固定cpu频率,比如固定到1Ghz -
kernel config打开CONFIG_SS_VOLTAGE_CTRL后,Kernel下软件会去控制core这根pin
-
IPL/UBOOT阶段软件不会控制DVFS,等KERNEL起来,软件会设置Core Power=1.0V
-
硬件动态调整core电压的Pin脚已经连接相关电路
-
实际测量看是否符合如下的设定:从上电到IPL/UBOOT/KERNEL一直维持在1.0V
2.2. 固定频率 800M¶
注意:
-
kernel\arch\arm\boot\dts\pioneer3.dtsi
中固定cpu频率,比如固定到800M -
kernel config打开CONFIG_SS_VOLTAGE_CTRL后,Kernel下软件会去控制core这根pin
-
IPL/UBOOT阶段软件不会控制DVFS,等KERNEL起来,软件会设置Core Power=0.9V
-
硬件动态调整core电压的Pin脚已经连接相关电路
-
实际测量看是否符合如下的设定:从上电到IPL/UBOOT一直维持在1.0V,KERNEL起来切换到0.9V(CPU 800MHz)
2.3. 动态频率1G/800M¶
根据需要动态调整,需要注意:
-
kernel\arch\arm\boot\dts\pioneer3.dtsi
中固定cpu频率,比如固定到800M -
kernel config打开CONFIG_SS_VOLTAGE_CTRL后,Kernel下软件会去控制core这根pin
-
IPL/UBOOT阶段软件不会控制DVFS,等KERNEL起来,软件会设置Core Power=0.9V
-
硬件动态调整core电压的Pin脚已经连接相关电路
-
实际测量看是否符合如下的设定:从上电到IPL/UBOOT一直维持在1.0V,KERNEL起来后根据软件选择的主频切换Core Power,CPU 800MHz -> 0.9V or CPU 1G -> 1.0V
查看当前cpu的频率:cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freq
拉高cpu loading:
如下附件是编译好的,可以直接使用:
3. Tsensor温度和core power¶
40度以下:需要Core Power 1V
40度到60度:维持上次的core power,不做变化
60度以上:需要 Core Power 0.9V
查看当前的cpu温度:cat /sys/devices/virtual/mstar/msys/TEMP_R
4. 常用debug方法和命令¶
core power实际效果是有“cpu温度”和“cpu loading”一起决定的,可通过
cat /sys/devices/system/voltage/core/voltage_current
查看,
二者只要有一个需要1v就一直把core power拉到1V。
常用如下debug命令:
cat /sys/devices/system/voltage/core/voltage_current
→查看当前core power电压
cat /sys/devices/system/voltage/core/voltage_available
→查看core power电压的档位和对应的gpio
cat /sys/devices/virtual/mstar/msys/TEMP_R
→查看当前cpu温度
cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_cur_freq
→查看当前cpu频率
cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_max_freq
→查看max cpu频率
cat /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_min_freq
→查看min cpu频率