AndroidThermal

AndroidThermal
转⾃: blog.csdn/shichaog/article/details/60959260
包括两个部分kernel thermal monitor(KTM)和thermal engine。
Thermal 管理包括的内容如下:
1. 硅⽚结温
2. 内存温度限制
3. 外表⾯温度限制
当thermal engine完全初始化后,KTM确保所有环境条件下的结温处于限定的范围之内。
Thermal engine monitor监控系统的温度限制范围。
机械结构设计模拟是获得最佳性能的必要步骤
Thermal management软件控制thermal响应。
DCVS:Dynamic Cloclk Frequency and Voltage Scaling.
下图包括了thermal 管理框架的四个部分:thermal engine, sensor driver以及其它温度管理设备
条桶在安卓⽤户空间thermal engine作为⼀个超级⽤户运⾏,thermal engine是温度管理的核⼼。启动时the
rmal engine初始化系统。threshold,set point以及管理的设备配置缺省情况从代码读取。参数⽤于设置温度传感器的中断门限
为了在温度规范内获得最佳性能,这些参数在每⼀个设计中都要调优。温度传感器有:
嵌⼊芯⽚硅结的温度传感器,这些是被称之为TSENS
thermal management 设备是软件抽象的设备,⽤于控制硬件,如GPU,CPU等
除了上述thermal架构,还有两个温度管理算法⽤于thermal engine完全启动前的设备启动和linux内核初始化阶段的温度管理。Android温度限制和特点
KTM
内核启动时保护系统
设置110°为CPU热插拔的门限将控制移交给thermal engine
Thermal engine
完整的温度保护策略对特定对象必须调节
Thermal reset
异常情况
TM
移交时间线
KTM
KTM 函数和相关的调试循环查询指定TSENS的温度,并根据得到的温度有如下的⾏为:check_temp()--位于drivers/thermal/msm_thermal.c;每⼀个采样周期(msm_thermal_info.poll_ms)将被调⽤
do_therm_reset()---如果任意⼀个温度传感器的温度超过critical门限,这将导致看门狗(其参数由设备树的qcom,therm-reset-
temp指定)喂狗,
msm_thermal:msm_thermal_bite: TSENS:α reached temperature:β. System reset therm_get_temp()--获得设备树<qcom, sensor_id>字段指定sensor的温度,在调试时需要将该温度打印出来。
do_core_control()--到CPU温度超过门限时将cpu unplug,其打印的信息如下:
[plain]
1. msm_thermal:msm_thermal_bite: TSENS:α reached temperature:β. System reset
[plain]
1. msm_thermal:do_core_control: Set Offline: CPU$ Temp: β
2. msm_thermal:do_core_control: Allow Online CPU$ Temp: β
msm_thermal:do_core_control: Set Offline: CPU$ Temp: β
msm_thermal:do_core_control: Allow Online CPU$ Temp: β
do_vdd_mx()--对linux设备,KTM管理所有的温度传感器,如果温度掉于某个门限,其提升内存供电电压,在收到内存门限后KTM打
印如下信息:
msm_thermal: vdd_mx_notify: Sensor α trigger received for type <threshold_type>
do_psm()--对于PMIC,温度超过⼀个门限后,其将被⾃动disable,KTM将发送⼀个命令让PMIC⼯作在PWM(pulse width
modulation)模式,发送该命令时打印的信息如下:
msm_thermal:do_psm: Requested PMIC PWM Mode tsens:α. Temp:βmsm_thermal:do_psm: Requested PMIC AUTO Mode
do_gfx_phase_cond() and do_cx_phase_cond()---DIGITAL/GFX的多阶段电压轨。
msm_thermal:send_temperature_band: Sending <rail> temperature band<band_number> where, <rail>: DIGITAL or GFX with multiple BAND definition depending on chipset do_ocr()--对于⼀些设备,KTM监控温度,如果发现任意⼀个传感器温度超过门限,其向regulator发送最优电流请求。
do_vdd_restriction()--⽤于限制温度低门限(5°)时,KTM打印的信息如下:
msm_thermal:vdd_restriction_notify: sensor:α reached high thresh for Vddrestriction
msm_thermal:vdd_restriction_notify: sensor:α reached low thresh for Vddrestriction
do_freq_control()---当⼀个温度超过门限时CPU调频控制,其打印的信息如下:
[plain]
1. msm_thermal: vdd_mx_notify: Sensorα trigger received for type <threshold_type>
[plain]
1. msm_thermal:do_psm: Requested PMIC PWM Mode tsens:α. Temp:β
2.
msm_thermal:do_psm: Requested PMIC AUTO Mode
[plain]
1. msm_thermal:send_temperature_band: Sending <rail> temperature band<band_number> where, <rail>: DIGITAL or GFX with mul
2. depending on chipset
[plain]
1. msm_thermal:vdd_restriction_notify: sensor:α reached high thresh for Vddrestriction
2. msm_thermal:vdd_restriction_notify: sensor:α reached low thresh for Vddrestriction
mavs[plain]
tz151. msm_thermal:do_freq_control: Limiting CPU$ max frequency to 1958400. Temp:β
葡萄藤下的玫瑰msm_thermal:do_freq_control: Limiting CPU$ max frequency to 1958400. Temp:βKTM设置
⼀个例⼦是:/arch/arm64/boot/dts/qcom/msm8916.dtsi
[plain]
1. qcom,msm-thermal {
2. qcom,msm-thermal {
3. compatible = "qcom,msm-thermal";
4. qcom,sensor-id = <5>;
5. qcom,poll-ms = <250>;
6. qcom,limit-temp = <60>;
7. qcom,temp-hysteresis = <10>;
8. qcom,freq-step = <2>;
9. qcom,freq-control-mask = <0xf>;
10. qcom,core-limit-temp = <80>;
11. qcom,core-temp-hysteresis = <10>;
12. qcom,core-control-mask = <0xe>;
13. qcom,hotplug-temp = <94>;
14. qcom,hotplug-temp-hysteresis = <15>;
15. qcom,cpu-sensors = "tsens_tz_sensor5", "tsens_tz_sensor5",
16. "tsens_tz_sensor4", "tsens_tz_sensor4";
17. qcom,freq-mitigation-temp = <94>;
18. qcom,freq-mitigation-temp-hysteresis = <10>;
19. qcom,freq-mitigation-value = <400000>;
20. qcom,freq-mitigation-control-mask = <0x01>;
21. qcom,online-hotplug-core;
挂面纸22. qcom,vdd-restriction-temp = <5>;
23. qcom,vdd-restriction-temp-hysteresis = <10>;
24. vdd-dig-supply = <&pm8916_s1_floor_corner>;
25. qcom,vdd-dig-rstr{
26. qcom,vdd-rstr-reg = "vdd-dig";
27. qcom,levels = <5 7 7>; /* Nominal, Super Turbo, Super
28. Turbo */
29. qcom,min-level = <1>; /* No Request */
30. };
31. qcom,vdd-apps-rstr{
32. qcom,vdd-rstr-reg = "vdd-apps";
产品测试
33. qcom,levels = <533330 800000 998400>;
34. qcom,freq-req;
35. };
36. };
qcom,msm-thermal {
qcom,msm-thermal {
compatible = "qcom,msm-thermal";
qcom,sensor-id = <5>;
qcom,poll-ms = <250>;
qcom,limit-temp = <60>;
qcom,temp-hysteresis = <10>;
qcom,freq-step = <2>;
qcom,freq-control-mask = <0xf>;
qcom,core-limit-temp = <80>;
qcom,core-temp-hysteresis = <10>;
qcom,core-control-mask = <0xe>;
qcom,hotplug-temp = <94>;
qcom,hotplug-temp-hysteresis = <15>;
qcom,cpu-sensors = "tsens_tz_sensor5", "tsens_tz_sensor5",
"tsens_tz_sensor4", "tsens_tz_sensor4";
qcom,freq-mitigation-temp = <94>;
qcom,freq-mitigation-temp-hysteresis = <10>;
qcom,freq-mitigation-value = <400000>;
qcom,freq-mitigation-control-mask = <0x01>;
qcom,online-hotplug-core;
qcom,vdd-restriction-temp = <5>;
qcom,vdd-restriction-temp-hysteresis = <10>;
vdd-dig-supply = <&pm8916_s1_floor_corner>;
qcom,vdd-dig-rstr{
qcom,vdd-rstr-reg = "vdd-dig";
qcom,levels = <5 7 7>; /* Nominal, Super Turbo, Super
Turbo */
qcom,min-level = <1>; /* No Request */
};
qcom,vdd-apps-rstr{
qcom,vdd-rstr-reg = "vdd-apps";
qcom,levels = <533330 800000 998400>;
qcom,freq-req;
};
};
CPU0传感器⽤于控制算法,如果温度超过limit-temp给定的值,CPU的最⾼主频将被限制,如果后续轮询温度继续升⾼,则频率会被进⼀步降低,轮询的时间间隔是poll-ms定义的值。如果温度调到limit-temp和temp-hysteresis之和以下,那么可以达到的最⾼主频将被增加。CPU频率的⾼低在DCVS表中
仅⼀步。
除了CPU调频,第⼆个温度门限core-limit-temp定义了CPU热插拔的门限。当温度超过该门限时CPU将被unplug。
设备树中的freq-control-mask和core-control-mask定义了那个cpu核按上述定义的规则⼯作,bit 0对应CPU0,默认core-control-mask 不包括CPU0,因为其不可以热插拔。
该算法位于/drivers/thermal/msm_thermal.c,对应的温度参数定义于arch/arm64/boot/dts/qcom/msm8916.dtsi。Thermal Engine
这属于安卓侧的温度管理策略,其根据⼀个configure⽂件(default is /f),但是⼀般会有⼀个平台对应⽂件,
如/system/f

本文发布于:2024-09-22 07:06:44,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/344539.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:温度   门限   管理   设备   超过   限制
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议