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

注意:

  1. kernel\arch\arm\boot\dts\pioneer3.dtsi中固定cpu频率,比如固定到1Ghz

  2. kernel config打开CONFIG_SS_VOLTAGE_CTRL后,Kernel下软件会去控制core这根pin

  3. IPL/UBOOT阶段软件不会控制DVFS,等KERNEL起来,软件会设置Core Power=1.0V

  4. 硬件动态调整core电压的Pin脚已经连接相关电路

  5. 实际测量看是否符合如下的设定:从上电到IPL/UBOOT/KERNEL一直维持在1.0V


2.2. 固定频率 800M

注意:

  1. kernel\arch\arm\boot\dts\pioneer3.dtsi中固定cpu频率,比如固定到800M

  2. kernel config打开CONFIG_SS_VOLTAGE_CTRL后,Kernel下软件会去控制core这根pin

  3. IPL/UBOOT阶段软件不会控制DVFS,等KERNEL起来,软件会设置Core Power=0.9V

  4. 硬件动态调整core电压的Pin脚已经连接相关电路

  5. 实际测量看是否符合如下的设定:从上电到IPL/UBOOT一直维持在1.0V,KERNEL起来切换到0.9V(CPU 800MHz)


2.3. 动态频率1G/800M

根据需要动态调整,需要注意:

  1. kernel\arch\arm\boot\dts\pioneer3.dtsi中固定cpu频率,比如固定到800M

  2. kernel config打开CONFIG_SS_VOLTAGE_CTRL后,Kernel下软件会去控制core这根pin

  3. IPL/UBOOT阶段软件不会控制DVFS,等KERNEL起来,软件会设置Core Power=0.9V

  4. 硬件动态调整core电压的Pin脚已经连接相关电路

  5. 实际测量看是否符合如下的设定:从上电到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:

如下附件是编译好的,可以直接使用:

matho-primes-21x.rar


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频率