点击打开链接

1、MSM8994 Power Thermal Management Overview文档摘要

本文档为80-NM328-12_A_MSM8994_LA_Power_Thermal_Mgmt_Overview.pdf的学习笔记。

Thermal Mitigation Software Concept Architecture

Thermal Mitigation软件架构:

Graphic core temp:GPU温度

physical layout:物理布局

throttle:调节

Temperature Sensors – Placement and Increased Coverage

温度传感器的位置和增加的覆盖

1、温度传感器被放置在硅芯片的热点附近。

MSM8660上首次使用片上温度传感器(On-die sensors),有1个On-die sensors;

MSM8960有5个on-die sensors;

MSM8930 有10个on-die sensors;

APQ8084, MSM8974, and APQ8064有11个on-die sensors;

MSM8994有16个on-die sensors。大大提高了识别和定位热问题的能力。

2、增加温度传感器(thermistors) 是PWB需要,放在功率放大器附近。

3、由于采用新的硬件架构,片上温度传感器(On-die sensor)的精度和采样率大大提高。

MSM8994的精度:<1.5℃

采用率达到3.5ms,thermal actions响应更灵敏

在SBL1阶段,如果温度超过high/low阈值,基于硬件设计的tsens_reset将触发温度保护以保护设备。

Placement of MSM8994 On-Die Temperature Sensors

MSM8994片上温度传感器的位置。

MSM8994上一共有16个片上温度传感器。

如下图所示,片上温度传感器的位置及sensor ID由绿点表示。

Thermal Management Software Overview

Thermal管理软件概述。

1、thermal管理软件

§ 管理内存情形下的温度,上限为85℃。

管理外设表面温度,金属上限为55℃,OEM /载体通常为45°C

2、Sensors

§ MSM芯片上的传感器

§ 板上热敏电阻 – PMIC, PA, XO, etc.

3、设备管理

§ 通过降低性能实现被动式散热

§ OEM可以通过设置配置文件来设置阈值。

Boot Thermal Management (BTM) Algorithms

开机热管理(BTM)算法。

限制启动电压

§ 在设备启动之前确保温度是在有效工作范围。

§ 温度阈值、延时时间、最大尝试次数,这些值在boot loader build中设置

BTM Configuration Hardcoded

BTM配置硬编码。

§ .nLowerThresholdDegC默认设置为150℃,BTM几乎是禁用的。 is set to 150蚓 by default and BTM is virtually disabled.

§ 如果OEM为.nLowerThresholdDegC定义了适当的温度阈值,当前温度高于阈值时候,开机可以延期并多次尝试。但尝试次多超过规定值时候,开机将失败。

boot_images/core/hwengines/tsens/config/8994/BootTempCheckBsp.c

Kernel Thermal Monitor (KTM)

1、Bootup降温

KTM是一个kernel driver,该驱动在开机时候很早就被初始化,这样可以保证该驱动正确运行并保护设备不会因为过热损坏。

一旦该驱动初始化完毕,它将开始轮询温度,并当温度超过阈值时候采取降温措施。

在Bootup时候,KTM可以做的温度mitigations/monitoring包括:

§ CPU frequency mitigation,CPU频率减缓

§ CPU core control,CPU核心控制

§ Thermal reset,热复位

§ Vdd restriction,Vdd限制

§ CX phase selection voting,

§ GFX phase selection voting,

§ PMIC Auto/PWM mode switch,PMIC Auto/PWM模式切换

§ VDD MX voting,

§ Optimum current request,

§ 在开机阶段的后期,KTM切换到中断模式。在转换到中断模式之前,bootup阶段所有的降温措施将不再起作用。

2、Post-bootup降温

在系统进入初始化后期阶段之后,KTM将清除掉当前所有的mitigation/monitoring并转换到中断模式。在该阶段,thermal-sys framework被初始化,thermal使用framework设置阈值及接收通知。转换到中断模式不需要依赖thermal engine。

在post-bootup时候,KTM可以做的温度mitigations/monitoring包括:

§ Emergency frequency mitigation,紧急频率减缓

§ Emergency hotplug,紧急热插拔

§ Thermal reset,热复位

§ Vdd restriction,Vdd限制

§ CX phase selection voting

§ GFX phase selection voting

§ VDD MX voting

§ Optimum current request

§ 以上KTM特性与thermal engine一起更好的保护设备。

KTM Configuration Kernel Device Tree

KTM内核设备树配置。

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 = <110>;

qcom,hotplug-temp-hysteresis = <20>;

qcom,cpu-sensors = "tsens_tz_sensor6", "tsens_tz_sensor13",

"tsens_tz_sensor14", "tsens_tz_sensor15";

qcom,vdd-restriction-temp = <5>;

qcom,vdd-restriction-temp-hysteresis = <10>;

qcom,pmic-sw-mode-temp = <85>;

qcom,pmic-sw-mode-temp-hysteresis = <75>;

qcom,pmic-sw-mode-regs = "vdd-dig";

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-gfx-rstr{

qcom,vdd-rstr-reg = "vdd-gfx";

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 = <1881600 1958400 2265600>;

qcom,freq-req;

};

}

KTM Mitigation Thresholds Examples

User Space Thermal Engine

1、Thermal daemon从MSM8660平台开始使用。

2、Thermal engine在thermal daemon基础上实现了多个温度传感器的集中管理并支持多个算法

Thermal engine支持thermal daemon和高级动态算法并联运行。OEM可以通过修改thermal engine配置文件来选择算法。

虚拟传感器(Virtual sensor):使用2个以上传感器,按权重计算温度,使得得到的温度值更精准。

Override mode:修改setpoint,以提高性能。

Thermal engine参数举例:

Thermal Mitigation Algorithms

热缓解算法。

1、在thermal配置文件中可以使用两种算法。

§ Dynamic Thermal Management (DTM) – algo_type_ss,动态热管理

§ Monitor – algo_type monitor

2、DTM

§ Configuration – algo_type ss

§ OEM决定维持的温度,算法动态执行OEM制定的措施,比如调节CPU频率。

用来控制表面温度和片上温度。要求调整的措施比monitor少,温度限制执行更严格。

§ 仅对CPU和CPU进行操作,比如降低最大频率。

§ 通过修改thermal-engine.conf文件中的set_point和set_point_clr来修改阈值。

3、Monitor algorithm for LCD, modem, camcorder, battery

§ Configuration – algo_type monitor

§ OEM定制一组温度阈值以及与各温度对应的温度措施。

§ Monitor算法用于LCD, modem, camcorder, and battery mitigation。不推荐CPU and GPU mitigation,因为CPU and GPU mitigation要求广泛的调整以维持setpoint。

§ 通过修改thermal-engine.conf文件中的set_point和set_point_clr来修改阈值。

对于CPU and GPU mitigation,强烈推荐使用DTM,而不是monitor,因为DTM可以大大减轻调整的工作,提高性能,更能严格保持在OEM设定的温度点setpoint。

Threshold Algorithm

阈值算法。

检测温度超过阈值,相应的降温措施将启动。比如当传感器温度达到70℃,GPU频率将从500降到333MHz。

最终传感器温度保持的温度点是85℃。

Dynamic Algorithm Example (Estimated Response)

动态算法的例子(估计响应)。

当温度超过setpoint(75℃),降低设备性能直到温度稳定。轮询模式启用,采样率为定义的数值。

当温度温度超过setpoint以及温度降到setpoint(75℃)以下,设备性能均会降低。

最大允许频率可以呈递增、递减变化。

如果温度50℃以下,中断模式将再次启用。

仅用来控制CPU/GPU。

Default Thermal Configuration

Thermal默认配置。

1、QTI在代码中提供了一套默认的thermal配置。该套配置参数需要根据OEM的需要进行调整。调整方法可以参考文档:Thermal Tuning Procedure (80-N9649-1)。

2、使用adb命令可以查看当前的thermal配置:thermal-engine -o

§ 该命令将打印出当前的thermal规则,包括QTI和OEM设置的。

3、默认的配置参数

(1)关键温度结点的管理规则 (默认85℃)

§ Label examples – [SS-CPU0], [SS-CPU1], [SS-CPU2], [SS-CPU3], [SS-CPU4-5-6-7]

§ 这些规则不应该增加它们的默认值。

§ 源程序:

§ /vendor/qcom/proprietary/thermal-engine/ss-data.c

§ /vendor/qcom/proprietary/thermal-engine/thermal_monitor-data.c

(2)表面温度管理规则

§ OEM在thermal-engine.conf中添加,然后放到手机路径/system/etc/thermal-engine.conf

(3)其他默认规则不要修改 e.g., VDD_RSTR_MONITORTSENSX

Adding Custom Thermal Configuration to Device

添加自定义热配置到设备。

1、不需重新编译代码,自定义的thermal配置可以添加到设备里面。

2、先基于老的thermal-engine.conf修改,然后使用adb命令推送到手机里面。

§ adb push <location_of_thermal-engine.conf> /system/etc/thermal-engine.conf

3、比如,为GPU添加一条规则。在thermal-engine.conf中添加:

[SS-GPU]

algo_type ss

sampling 65

sensor tsens_tz_sensor12

device gpu

set_point 60000

set_point_clr 57000

time_constant 0

上面例子为thermal配置添加了一个名叫[SS-GPU]的规则,将修改后的thermal-engine.conf推送到手机,然后重启手机,新thermal配置将生效。

4、同样,不添加新规则,修改原来的规则也可以按照上面方法来操作。

5、禁用一个规则

例如禁用规则[SS-POPMEM]:

[SS-POPMEM]

disable 1

Overall AP Thermal Management Mechanism

整体AP热管理机制。

有三种不同的TMS:

§ SBL temperature check

§ Kernel thermal monitor

§ Full thermal engine with KTM post-boot feature enabled

Thermal Software Features/Management Devices

Feature

Description

CPU TM

调整最大允许操作频率。

GPU TM

调整最大允许操作频率。

CPU Core

关闭安全机制以确保在关键温度点之前CPU核心关闭。

Modem TM

调整峰值数据速率、最大发射功率、数据呼叫终止。

Camcorder TM

调整编码帧率、关闭解码功能

WLAN TM

调整峰值数据速率

LCD Backlight TM

调整最大背光亮度

Battery Charging TM

调整最大允许充电率

Battery Current Limiting

限制充电电流

Speaker Coil Calibration

扬声器线圈的校准。扬声器线圈电阻与温度的自动校准,防止温度过高或者输出功率过高损坏扬声器线圈。

Voltage Restriction

Voltage restriction enables low operating voltage above 0°C by adjusting the required minimum voltage at temperature extremes

Kernel TM

Adjustment of maximum allowed operating frequency during kernel initialization and post-boot device protection

Override Mode

Overrides thermal setpoint to allow higher performance for benchmarks or thermally aware applications

Dynamic Parameter Update

Important parameter sets can be updated at runtime for better OEM-specific dynamic thermal management

2、References

1、80-NM328-12_C_MSM8994_MSM8992_LA_Power_Thermal_Mgmt_Overview.pdf

2、80-NM328-12_A_MSM8994_LA_Power_Thermal_Mgmt_Overview.pdf

文中图片和表格可以联系本人。

MSM8994 thermal管理相关推荐

  1. MSM8225 thermal设计

    点击打开链接 1.概述 1.1.Thermal综述 笼统的讲,thermal是指移动终端电路板上的温度.Thermal的数值应当维持在合理的温度范围之内,过高的温度会影响用户的使用体验,更高的温度甚至 ...

  2. 新兴解决方案增强了电动汽车电源(功耗)管理

    新兴解决方案增强了电动汽车电源(功耗)管理 Emerging solutions enhance electric-vehicle power management 电动汽车正变得越来越受欢迎,因为在 ...

  3. Qualcomm thermal的介绍

    点击打开链接 随着智能设备的发展,很多产品越做越小,在一块很小的板子和结构内会附带很多功能,加上很多应用需要处理数据很大,必定造成设备很容易发热.且发热不仅会带来体验的不足还会带来大量的电量消耗.所以 ...

  4. MTK6573电源管理(PM)小结

    继续MTK平台的研究 开始研究电源管理,因为PM永远是嵌入式的核心技术,所以静下来走一遍流程. MTK启动的过程: 硬件板载的启动入口为 static __init int board_init(vo ...

  5. 鸟哥的Linux私房菜(基础篇)- 第二十六章、Linux 核心编译与管理

    第二十六章.Linux核心编译与管理 最近升级日期:2009/09/18 我们说的 Linux 其实指的就是核心 (kernel) 而已.这个核心控制你主机的所有硬件并提供系统所有的功能,所以说,他重 ...

  6. 工质热物理性质计算程序的编制及应用_新能源动力电池热管理方案设计和热流体仿真...

    动力电池作为新能源汽车的主要动力源,其对新能源汽车的重要性不言而喻.在实际的车辆使用过程中,电池会的面临的使用工况复杂多变. 在低温下,锂离子电池会出现内阻增大.容量变小的现象,极端情况更会导致电解液 ...

  7. android+5.q,MSM8909+Android5.1.1电池管理(2)--qpnp-linear-charger.txt驱动学习概要

    MSM8909+Android5.1.1电池管理(2)--qpnp-linear-charger.txt驱动学习概要 参考文件 \kernel\Documentation\power\qpnp-lin ...

  8. linux系统电源时钟,linux电源管理的一些梳理

    由于项目产品需要过能源之星3.0,所以最近做了一些电源管理低功耗方面的工作,抽个时间正好梳理一下. 其实Linux 电源管理非常复杂,牵扯到很多方面,比如系统级的待机.频率电压变换.系统空闲时的处理以 ...

  9. 16个千兆光口8个千兆Combo光电复用口管理型工业以太网交换机环网+WEB管理+SNMP+VLAN

    8*1000M路以太网电口,16路千兆光接口,支持SNMP网管,18ms内自愈环网保护,工作温度:-40℃-85℃.相对湿度:95% ±3RH(无凝结).传输距离40km(其它数据接入共用,实现数据上 ...

最新文章

  1. NHibernate 配置文件的处理和使用多数据库的多层架构思路(第二部分)
  2. no python interpreter configured
  3. 第10章:Shell基础
  4. Parcelable最强解析
  5. Hive分析窗口函数(一) SUM,AVG,MIN,MAX
  6. 「LibreOJ Round #11」Misaka Network 与测试 (网络流跑二分图匹配)
  7. Java8————Stream API
  8. 【node】node连接mongodb操作数据库
  9. 限流的简单使用及学习
  10. 虚拟机中centos7 安装过程中没有自动获取到网络
  11. kaggle--猫狗数据集分类
  12. linux卸载intel驱动程序,删除 Ubuntu Intel 官方驱动包并添加 pdadoka PPA
  13. 网络规划 网络工程 用户需求分析 网络结构设计
  14. 航顺HK32F030Mxx官方例程调试笔记(一)
  15. tzc 1292 排序
  16. [转载]Buffon投针实验:究竟为什么是pi?
  17. JavaScript 原型链总结(一)
  18. 球形FP-MAP的接收端迭代检测模型
  19. 深入解析python版SVM源码系列(三)——计算样本的预测类别
  20. SONM月报_2018年8月

热门文章

  1. yolov4网络结构_重磅更新!YoLov4最新论文!解读YoLov4框架!
  2. 父类的静态方法能否被子类重写?
  3. gridreport5.6如何设置打印3次_米家照片打印机1S:手机里的美好回忆不用网络仅一分钟即可留住...
  4. java怎么测试dao_java-Mockito使用模拟对象测试DAO
  5. linux c语言文件拷贝_linux - 远程拷贝文件之scp
  6. 自定义组合控件:Banner、轮播图、广告栏控件
  7. windoes windoes server 上安装mysql(MSI安装包安装、压缩包安装)
  8. 产品技术(研发)部门组织架构及岗位职责
  9. python的最大绘图速度_Python数据可视化之高速绘图神器PyQtGraph库,强烈建议收藏...
  10. 小辣椒p60手机怎么样_手机推荐:小辣椒手机彻底爆发,6+128仅699,还要啥自行车?...