Voltage domain(VD) and power domain(PD)
- VD_CORE_B: including two big cores Contex-A72, the power consumption is relatively large, so separate a voltage domain.
- VD_CORE_L: including four little cores Contex-A53, the power consumption is relatively large, so separate a voltage domain.
- VD_LOGIC: including some peripherals’ controller and system bus, such as USB, EMMC, GMAC, SPI, I2C, EDP, VOP, AXI, AHB, APB, and so on.
- VD_CENTER: including vdpu, vepu, iep, rga and DDR controller.
- VD_GPU: including GPU, the power consumption is relatively large, so separate a voltage domain.
- VD_PMU: including PMU, SRAM, GPIO, PVTM and other modules relating to suspend and resume process.
EVB Power consumption
Type | power-supply | Voltage(V) | current(mA) | Theoretical current on battery-3.8V(mA) | Remark |
---|---|---|---|---|---|
DC/DC | VDD_ARM | 0.96 | 10.20 | 3.23 | With 80% efficiency, conversion formula: V * I / efficiency / voltage of the battery |
DC/DC | VDD_LOG | 0.96 | 89.30 | 28.20 | eg: Theoretical current of VDD_LOG on battery(3.8V) = 0.96 * 89.3 / 0.8 / 3.8 = 28.2 |
DC/DC | VCC_DDR | 1.26 | 38.50 | 15.91 | |
DC/DC | VCC_IO | 2.99 | 4.50 | 4.43 | |
LDO | VCC_1V8 | 1.81 | 28.80 | 28.80 | Output current of LDO is equal to input current |
LDO | VDD_1V0 | 1.00 | 10.90 | 10.90 | |
LDO | VCC3V0_PMU | 3.01 | 1.20 | 1.20 | |
battery | VBAT | 3.81 | 94.60 | 92.67 | Theoretical value is similar to actually measured value |
Data analysis for each path
1. VDD_CORE/VDD_CPU/VDD_ARM
- Confirm if the frequency voltage table (opp-table) is normal or not, if the actually measured voltage is consistent with the set voltage or not.
1 | /* Acquire the frequency voltage table, target column means the voltage required by some |
- Check cpu loading, analyze if there is abnormal task or interrupt.
1 | /* Use top command to check the task loading, the output of top with different versions |
2. VDD_GPU
The power consumption of VDD_GPU mainly confirms if the the frequency voltage table is normal or not, if
the measured voltage is consistent with the set voltage or not, using devfreq node.
1 | /* acquire the frequency voltage table */ |
3. VDD_LOGIC
Generally VDD_LOGIC will contain many modules, in order to manage the power consumption conveniently,
it will be divided into many PD internally. The power consumption can be analyzed mainly from the
following aspects:
- Confirm the running frequency and switch status of each module.
1 | cat /sys/kernel/debug/clk/clk_summary |
- Confirm the switch status of each PD.
1 | cat /sys/kernel/debug/pm_genpd/pm_genpd_summary |
- Generally DDR module is put in VDD_LOGIC, and the power consumption of DDR module is relatively
large, use the same devfreq strategy as GPU to optimize the power consumption, so need to confirm
the frequency voltage table and measured voltage. DDR also has some configurations with low power
consumption, such as pd_idle, sr_idle, odt switch and some other timing configurations. The debugging
process is relatively complex. Need to refer to the detailed DDR document.
1 | cat /sys/kernel/debug/opp/opp_summary |
4. VCC_DDR
VCC_DDR supplies power mainly for DDR component and DDR-IO part of SoC. The parameters affecting the
power consumption of VCC_DDR include: DDR frequency, DDR loading, DDR low power consumption
configuration, DDR component type and so on. Under the same condition, the power consumption of DDR
components from different vendors may have big difference.
5. VCC_IO
VCC_IO supplies power mainly for IO Pad of SoC and some peripherals. The power consumption can be
analyzed from the following aspects:
- Check the working status of peripheral module, if there is leakage.
- Check if IO pin status of SoC matches with the peripheral or not, for example, IO output is high, but the connected peripheral pin is low level.
Common scenario analysis
1. Static desktop
It is mainly the display module which is working, CPU, GPU, DDR should be reduced to the lowest frequency,
and enter low power consumption mode. Adjust VDD_CPU,VDD_GPU,VDD_LOGIC to the lowest voltage of
opp-table, confirm the status of clk_summary and pm_genpd_summary, confirm the peripheral modules
(WIFI, BT, etc.) are all closed. The static desktop generally is used as the basic power consumption of other
scenarios, so need to firstly optimize its power consumption to the best.
2. Video playback
It is mainly the video decoder (VPU/RKVDEC) which is working, GPU generally is closed. Especially confirm if
the running frequency of DDR and voltage of VDD_LOGIC are normal or not.
3. Game
It is mainly CPU and GPU which are working. Especially analyze the loading of CPU and GPU, frequency
change, the voltages of VDD_CPU and VDD_GPU are normal or not.
4. Deepsleep
Generally VDD_CPU and VDD_GPU will turn off the power supply, VDD_LOG only reserves the power supply
for some resume module, so need to focus on the power consumption analysis of IO, DDR components and
some peripherals.
Power consumption optimization strategy
1. CPU optimization
- Adjust cpufreq parameter.
1 | /* the default frequency scaling strategy used is interactive, relative parameters are |
- Close some cpu, limit the highest frequency of cpu.
1 | /* close cpu2,cpu3 */ |
2. DDR optimization
- Frequency scaling with scenario: configure different DDR frequencies for different scenarios, such as
4K video, video recording, dual display and so on.
1 | /* scenario definition */ |
- Frequency scaling with loading: monitor the loading, automatically adjust DDR frequency, frequency
scaling with loading may cause the reduction of the performance, you can fix DDR frequency in some
scenario considering the frequency scaling with scenario.
1 | /* configure the parameter of frequency scaling with loading in dts, need to open dfi |
- For more detailed configuration and optimization of DDR DEVFREQ, please refer to the document
《Rockchip-Developer-Guide-Linux4.4-Devfreq》.
3. Thermal control optimization
When the temperature is increasing to certain degree, the power consumption will increase dramatically,
especially in the case with high voltage.
- Improve the heat dissipation of hardware.
- Optimize the software thermal control strategy to avoid the big temperature fluctuation.
- Avoid the high voltage occurring in the case with high temperature through software limitation.
1 | &cpu0_opp_table { |
4. Power optimization
- In voltage conversion circuit, when the voltage reduction and current are relatively large, it is
recommended to use DCDC to improve the efficiency and reduce the power consumption.
For example:
Input 3.3V, output 1.0V-50mA
|Power Type | Input Current | Power Consumption |
| — | — | — |
| LDO | 50mA | 165mW |
| DCDC(with 80% efficiency) | 18.9mA | 62.4mW |