功耗调整指引


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

  1. 取消MSTAR EMAC的选项

1.3.2. 调整Linux Kernel

  1. 关闭模拟电路电源

    参照1.2.1打开CONFIG_ANALOG_PD_EMAC

  2. 取消EMAC的选项

  3. 取消Networking support的选项

  4. Dts 修改

    Emac: “sstar-emac”


1.4. USB

需要在U-Boot及Linux Kernel进行调整才能完全关闭该组件

1.4.1. 调整U-Boot

  1. 取消MSTAR USB的选项

1.4.2. 调整Linux Kernel

  1. 关闭模拟电路电源

    参照1.2.1打开CONFIG_ANALOG_PD_USB20_P1

  2. 修改文件linux-4.9/arch/arm/boot/dts/pioneer3.dtsi (调整status = “disabled”来关闭USB)


1.5. Audio

1.5.1. 调整Linux Kernel

  1. 关闭模拟电路电源

    参照1.2.1打开CONFIG_ANALOG_PD_AUDIO

  2. 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

  1. 修改文件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. 关闭模拟电路电源

    参照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

  1. 取消bootlogo的选项

1.8.2. 调整Linux Kernel

  1. 关闭模拟电路电源

    参照1.2.1打开CONFIG_ANALOG_PD_DISP_LPLL

  2. 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里对应频率范围要打开设置才有效

  • 设置约束:

    1. s_min必须小于等于s_max

    2. s_min必须大于等于/sys/devices/system/cpu/cpufreq/policy0/cpuinfo_min_freq

    3. 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评估,协助发布。