功耗调整指引
1. 打开/关闭 组件¶
1.1. 可选的组件¶
在Ikayaki上可选使能的组件有 : Analog Power、ETH、Audio、Sensor、SDCARD、USB和 DISPLAY(Panel).
1.2. Analog Power¶
这部分主要关闭模块相应的模拟电路部分,以达到减小功耗的目的。相关模块的数字部分请参考后续章节。
1.2.1. 可开关的项目¶
可调整项目有: Audio/EMAC/ MIPI DPHY TX TOP/ MIPI DPHY RX /USB20 P1对应kernel的config如下,需要关闭置为y即可
# CONFIG_ANALOG_PD_AUDIO is not set ->Audio # CONFIG_ANALOG_PD_EMAC is not set ->EMAC # CONFIG_ANALOG_PD_MIPI_DPHY_RX_TOP is not set ->MIPI sensor # CONFIG_ANALOG_PD_MIPI_DPHY_RX_SRIO0_3 is not set # CONFIG_ANALOG_PD_MIPI_DPHY_RX_ SRIO4_7 is not set # CONFIG_ANALOG_PD_USB20_P1 is not set ->USB
1.3. ETH¶
需要在U-Boot及Linux Kernel进行调整才能完全关闭该组件
1.3.1. 调整U-Boot¶
-
取消MSTAR EMAC的选项
1.3.2. 调整Linux Kernel¶
-
关闭模拟电路电源
参照1.2.1打开CONFIG_ANALOG_PD_EMAC
-
取消EMAC的选项
-
取消Networking support的选项
-
Dts 修改
Emac: “sstar-emac”
1.4. USB¶
需要在U-Boot及Linux Kernel进行调整才能完全关闭该组件
1.4.1. 调整U-Boot¶
-
取消MSTAR USB的选项
1.4.2. 调整Linux Kernel¶
-
关闭模拟电路电源
参照1.2.1打开CONFIG_ANALOG_PD_USB20_P1
-
修改文件linux-4.9/arch/arm/boot/dts/pioneer3.dtsi (调整status = “disabled”来关闭USB)
1.5. Audio¶
1.5.1. 调整Linux Kernel¶
-
关闭模拟电路电源
参照1.2.1打开CONFIG_ANALOG_PD_AUDIO
-
Dts 修改
Audio : "sstar,audio" 设置为disabled:
1.5.2. 调整project config¶
Disable掉如下item:
--> SDK config --> Interface Compile Config --> ai --> ao --> SDK config --> Mhal Compile Config --> aio
1.6. SDCARD¶
1.6.1. 调整Linux Kernel¶
-
修改文件linux-4.9/arch/arm/boot/dts/pioneer3.dtsi
调整"sstar,sdmmc“ status = “disable”来关闭SD卡
1.7. Sensor¶
注:只针对SSD22x。
如果是不需要sensor或者非MIPI sensor,可以选择关闭此部分。
1.7.1. 调整Linux Kernel¶
-
关闭模拟电路电源
参照1.2.1打开下面这些Item:
CONFIG_ANALOG_PD_MIPI_DPHY_RX_TOP CONFIG_ANALOG_PD_MIPI_DPHY_RX_SRIO0_3 CONFIG_ANALOG_PD_MIPI_DPHY_RX_ SRIO4_7
1.7.2. 调整project config¶
Disable掉如下item:
--> SDK config --> Interface Compile Config --> venc #JPE --> isp --> ispalgo --> sensor --> vif --> vpe --> SDK config --> Mhal Compile Config --> vcodec #JPE --> csi --> sensorif --> isp --> ispalgo --> ispmid --> ispscl --> vpe
1.8. Display(Panel)¶
1.8.1. 调整U-Boot¶
-
取消bootlogo的选项
1.8.2. 调整Linux Kernel¶
-
关闭模拟电路电源
参照1.2.1打开CONFIG_ANALOG_PD_DISP_LPLL
-
Dts 修改
Disp clk:
1.8.3. 调整project config¶
Disable掉如下item:
--> SDK config --> Interface Compile Config --> disp --> panel --> SDK config --> Mhal Compile Config --> disp --> panel
2. 组件时钟频率配置¶
2.1. CPU 时钟频率配置¶
2.1.1. Clock scaling 配置¶
-
提供clock scaling范围的设置,可通过入下命令设置clock scaling的范围。
echo s_min > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq (default 400MHz) echo s_max > /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq (default 1GHz)
注: s_min, s_max 单位是 kHz。
Dts里对应频率范围要打开设置才有效
-
设置约束:
-
s_min必须小于等于s_max
-
s_min必须大于等于/sys/devices/system/cpu/cpufreq/policy0/cpuinfo_min_freq
-
s_max必须小于等于/sys/devices/system/cpu/cpufreq/policy0/cpuinfo_max_freq
注意:cpu频率改变了,对应的core电压也要对应调整,目前驱动中设定调节core电压的gpio不做其他用途。
-
2.2. 编码时钟频率配置¶
2.2.1. ISP时钟频率配置¶
在mhal.ko加载之后,开启视频处理任务之前,即可通过如下命令设置相关频率:
-
读取目前的ISP clock rate,可通过以下命令取得
cat /sys/class/mstar/isp0/isp_clk
关闭Clk:
echo 0 > /sys/class/mstar/isp0/isp_clk
设置有以下档位:
#echo 86400000 > /sys/class/mstar/isp0/isp_clk #echo 123400000 > /sys/class/mstar/isp0/isp_clk #echo 172800000 > /sys/class/mstar/isp0/isp_clk #echo 144000000 > /sys/class/mstar/isp0/isp_clk
2.2.2. JPE时钟频率档位¶
JPE 的clock default:216M
读: cat /sys/jpeg/jpe_clock
写: echo 144000000 > /sys/jpeg/jpe_clock
可选挡位:
-
216000000
-
172400000
-
144000000
2.2.3. 约束¶
以上的设置应该在模块加载时设置,才能正确的生效。
2.3. DDR时钟频率配置¶
DDR的配置需要更改IPL,具体需求可请FAE评估,协助发布。