Enable deepest suspend power state on S2I · 2019-04-24 · Power consumption on below scenarios...
Transcript of Enable deepest suspend power state on S2I · 2019-04-24 · Power consumption on below scenarios...
![Page 1: Enable deepest suspend power state on S2I · 2019-04-24 · Power consumption on below scenarios Scenario Normal running S2R S2I Without deepest c-state - Eight cores 190 ~ 205mW](https://reader034.fdocuments.in/reader034/viewer/2022050221/5f666a626f1dbd1e98538e96/html5/thumbnails/1.jpg)
Enable deepest suspend power state on S2I
Chunyan ZhangApril 2019
![Page 2: Enable deepest suspend power state on S2I · 2019-04-24 · Power consumption on below scenarios Scenario Normal running S2R S2I Without deepest c-state - Eight cores 190 ~ 205mW](https://reader034.fdocuments.in/reader034/viewer/2022050221/5f666a626f1dbd1e98538e96/html5/thumbnails/2.jpg)
About me
● From Unisoc (Spreadtrum)● Worked in KWG● Now in PMWG
![Page 3: Enable deepest suspend power state on S2I · 2019-04-24 · Power consumption on below scenarios Scenario Normal running S2R S2I Without deepest c-state - Eight cores 190 ~ 205mW](https://reader034.fdocuments.in/reader034/viewer/2022050221/5f666a626f1dbd1e98538e96/html5/thumbnails/3.jpg)
The Goal● Current ● Future
S2R(suspend to ram)
S2I(Suspend to
idle)
S2IS2R
![Page 4: Enable deepest suspend power state on S2I · 2019-04-24 · Power consumption on below scenarios Scenario Normal running S2R S2I Without deepest c-state - Eight cores 190 ~ 205mW](https://reader034.fdocuments.in/reader034/viewer/2022050221/5f666a626f1dbd1e98538e96/html5/thumbnails/4.jpg)
Dev environment
● Board○ Unisoc's mobile phone with the
processor SC9863A which has eight cores of Cortex A55 in two clusters.
● Mainline kernel with a few necessary drivers (uart, clock, gpio)
● PSCI 1.0● Power topology
![Page 5: Enable deepest suspend power state on S2I · 2019-04-24 · Power consumption on below scenarios Scenario Normal running S2R S2I Without deepest c-state - Eight cores 190 ~ 205mW](https://reader034.fdocuments.in/reader034/viewer/2022050221/5f666a626f1dbd1e98538e96/html5/thumbnails/5.jpg)
S2R & S2I in PSCI● Both S2R and S2I would call psci_cpu_suspend_start()● But with different parameters
S2R
target_pwrlvl=1,is_power_down_state=1state_info[0]=ARM_LOCAL_STATE_OFFstate_info[1]=ARM_LOCAL_STATE_OFF
S2I
target_pwrlvl=0,is_power_down_state=1state_info[0]=ARM_LOCAL_STATE_OFFstate_info[1]=ARM_LOCAL_STATE_RUN
![Page 6: Enable deepest suspend power state on S2I · 2019-04-24 · Power consumption on below scenarios Scenario Normal running S2R S2I Without deepest c-state - Eight cores 190 ~ 205mW](https://reader034.fdocuments.in/reader034/viewer/2022050221/5f666a626f1dbd1e98538e96/html5/thumbnails/6.jpg)
Deepest c-state● "arm,psci-suspend-param" in device tree “idle-state”
○ Set bit[24]=1; ( Its bit[25:24] represents power level in PSCI )
○ Let S2R and S2I have same parameter to call psci_cpu_suspend_start()
![Page 7: Enable deepest suspend power state on S2I · 2019-04-24 · Power consumption on below scenarios Scenario Normal running S2R S2I Without deepest c-state - Eight cores 190 ~ 205mW](https://reader034.fdocuments.in/reader034/viewer/2022050221/5f666a626f1dbd1e98538e96/html5/thumbnails/7.jpg)
Power consumption on below scenarios
Scenario Normal running S2R S2I
Without deepestc-state
- Eight cores 190 ~ 205mW ~139mW 175 ~ 190mW
- Two clusters, one core in each cluster 190 ~205mW ~139mW 175 ~ 190mW
- One core in DT 181 ~196mW ~139mW 175 ~ 190mW
With deepest c-state
- One core in each cluster; Or- Two core in one cluster; 190 ~205mW ~139mW 175 ~ 190mW
- Only 1 core alive 177 ~194mW ~139mW ~139mW
![Page 8: Enable deepest suspend power state on S2I · 2019-04-24 · Power consumption on below scenarios Scenario Normal running S2R S2I Without deepest c-state - Eight cores 190 ~ 205mW](https://reader034.fdocuments.in/reader034/viewer/2022050221/5f666a626f1dbd1e98538e96/html5/thumbnails/8.jpg)
Plug cores when suspend
● During S2R, secondary cores would be unplugged
● During S2I, secondary cores would NOT be unplugged
![Page 9: Enable deepest suspend power state on S2I · 2019-04-24 · Power consumption on below scenarios Scenario Normal running S2R S2I Without deepest c-state - Eight cores 190 ~ 205mW](https://reader034.fdocuments.in/reader034/viewer/2022050221/5f666a626f1dbd1e98538e96/html5/thumbnails/9.jpg)
Switch to using generic power domain
● No much change on power consumption of the scenarios listed previously for now.
![Page 10: Enable deepest suspend power state on S2I · 2019-04-24 · Power consumption on below scenarios Scenario Normal running S2R S2I Without deepest c-state - Eight cores 190 ~ 205mW](https://reader034.fdocuments.in/reader034/viewer/2022050221/5f666a626f1dbd1e98538e96/html5/thumbnails/10.jpg)
DDR self refresh for S2R and S2I
● Looked on my board:○ DDR device is set “auto self-refresh”○ DDR granule would be set self-refresh for both suspend○ DDR controller seems not in sleep state for both suspend (from
what I’ve known)○ Probably because that some components on the board haven’t
been put into deep sleep state.
![Page 11: Enable deepest suspend power state on S2I · 2019-04-24 · Power consumption on below scenarios Scenario Normal running S2R S2I Without deepest c-state - Eight cores 190 ~ 205mW](https://reader034.fdocuments.in/reader034/viewer/2022050221/5f666a626f1dbd1e98538e96/html5/thumbnails/11.jpg)
Next to go● To find out which part of components or processors didn’t enter into deep
sleep.● To look at psci_cpu_off() further
● Any suggestions?
![Page 12: Enable deepest suspend power state on S2I · 2019-04-24 · Power consumption on below scenarios Scenario Normal running S2R S2I Without deepest c-state - Eight cores 190 ~ 205mW](https://reader034.fdocuments.in/reader034/viewer/2022050221/5f666a626f1dbd1e98538e96/html5/thumbnails/12.jpg)
Thank youJoin Linaro to accelerate deployment of your Arm-based solutions through collaboration