展锐平台的温控策略介绍
这里以UDX710为例介绍下展锐平台的温控策略,展锐其他平台也类似。
1. UDX710芯片内部有6颗 Thermal sensor,相关位置信息如表 1-1。
2. 温度读取:
在控制台下通过 cat命令获取每个sensor的温度,各个sensor路径如路径如表1-2。
例如下面命令获取apcpu0的温度,结果为 34.652℃。注意单位为 0.0001℃。
# cat /sys/class/thermal/thermal_zone1/temp
34652
Senosr name也可能通过命令确认,读取 sensor目录的type节点即可。
# cat /sys/class/thermal/thermal_zone1/type
apcpu0-thmzone
3. 虚拟sensor soc-thmzone
通过软件查看sensor的文件节点,会发现有一个 thermal_zone0,type是 soc-thmzone。soc-thmzone 是 IPA(Intelligent Power Allocation智能功率分配)通过 ap cpu的所有sensor计算出来的一个温度,用来做cpu温控的。
4. AP温控措施
AP侧的温控主要是控制cpu,软件上使用的是IPA策略,根据目标控制温度以PID(Proportional Integral Derivative比例积分微分)算法来降频拔核。
除此之外还有高温关机。 详细控制温度如表 2-1。
AP侧没有在xml中配置相关策略,而是直接使用dts中默认的配置。
以dts的如下配置为例,70度(soc_threshold下的temperature = <70000>)是ipa的switch_on_temp,
85度(soc_target下的temperature = <85000>)是control_temp。
soc_thmzone: soc-thmzone {polling-delay-passive = <100>;polling-delay = <1000>;sustainable-power = <1000>;thermal-sensors = <&soc_sensor 17>;trips {soc_threshold: trip-point@0 {temperature = <70000>; //IPA开启温度hysteresis = <1000>;type = "passive";};soc_target: trip-point@1 {temperature = <85000>; //IPA控制温度hysteresis = <1000>;type = "passive";};soc_crit: soc_crit {temperature = <113000>; //重启温度适当提高 --> 113hysteresis = <2000>;type = "critical";};};……}
验证在85°C以上会降频的:
temp: cpu0-89430 nrcp-91570 cpu1-88811
freq: cpu0-1352000 1-1352000
Time : -----Wed Mar 9 18:45:56 CST 2022-----
temp: cpu0-90710 nrcp-92865 cpu1-90106
freq: cpu0-768000 1-768000
Time : -----Wed Mar 9 18:45:59 CST 2022-----
temp: cpu0-90710 nrcp-92347 cpu1-90106
freq: cpu0-768000 1-768000
Time : -----Wed Mar 9 18:46:02 CST 2022-----
5.CP侧降温措施
5.1 4G功率回退
5.2 5G功率回退
5.3 5G降速
配置文件thermalSensorsConfig.xml在代码中的路径:
layers/meta-unisoc/recipes-core/thermal/files/udx710-module/thermalSensorsConfig.xml
在设备中的路径: /etc/thermalSensorsConfig.xml
调试时可以直接修改这个文件。由于/etc为只读文件系统,不能直接替换该文件进行调试。可以把配置文件push到 /home/root/ 目录下,需要重启thermal进程,并且设备重新开机后失效,要重新启动thermald。命令如下:
adb push D:\thermalSensorsConfig.xml /home/root/
root@udx710-module:/ # /etc/init.d/thermald-init.sh restart
文件thermalSensorsConfig.xml如下:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<ThermalConfig><sensor><sensor_type>pa-thmzone</sensor_type><polling_delay>2000</polling_delay><DroPeriod>30000</DroPeriod><AvgPeriod>30000</AvgPeriod><zone_level id="1" type="active"><temp>105000</temp><trip id="0" ><action name="powerback" arg="AT+SPTPPB=0" file="" /></trip><trip id="1" ><action name="powerback" arg="AT+SPTPPB=2" file="" /></trip><trip id="2" ><action name="powerback" arg="AT+SPTPPB=4" file="" /></trip><trip id="3" ><action name="powerback" arg="AT+SPTPPB=6" file="" /></trip><trip id="4" ><action name="powerback" arg="AT+SPTPPB=8" file="" /></trip><trip id="5" ><action name="powerback" arg="AT+SPTPPB=10" file="" /></trip></zone_level></sensor><sensor><sensor_type>pa5g-thmzone</sensor_type><polling_delay>2000</polling_delay><DroPeriod>30000</DroPeriod><AvgPeriod>30000</AvgPeriod><zone_level id="1" type="active"><temp>105000</temp><trip id="0" ><action name="powerback" arg='AT+SP5GCMDS="set nr power_control",0,0' file="" /></trip><trip id="1" ><action name="powerback" arg='AT+SP5GCMDS="set nr power_control",0,2' file="" /></trip><trip id="2" ><action name="powerback" arg='AT+SP5GCMDS="set nr power_control",0,4' file="" /></trip><trip id="3" ><action name="powerback" arg='AT+SP5GCMDS="set nr power_control",0,6' file="" /></trip><trip id="4" ><action name="powerback" arg='AT+SP5GCMDS="set nr power_control",0,8' file="" /></trip><trip id="5" ><action name="powerback" arg='AT+SP5GCMDS="set nr power_control",0,10' file="" /></trip></zone_level></sensor>
</ThermalConfig>
温度上升过程中的执行策略( Action):
- 在同一个 Level 里,如果这次的温度大于等于这个 Level 的温度,则跳到该 Level 里的下一个 Trip。
- 如果当前 Trip 已经是该 Level 的最后一个 Trip,并且温度小于下一个 Level 的温度,则没有变化。
- 如果当前 Trip 已经是该 Level 的最后一个 Trip,并且温度大于等于下一个 Level 的温度,则跳到下一个Level 的第一个Trip。
温度下降过程中的执行策略( Action):
- 在同一个 Level 里,如果这次的温度小于这个 Level 的温度,则跳到该 Level 里的前一个 Trip。
- 如果当前 Trip 已经是该 Level 的第一个 Trip,并且温度小于该 Level 的温度,则跳到前一个 Level 的 最后一个 Trip。
CP侧策略用到的sensor type是pa-thmzone,pa5g-thmzone。需要在设备树中添加:
&thm_zone {pa_thmzone: pa-thmzone {polling-delay-passive = <0>;polling-delay = <0>;thermal-sensors = <&pa_thermistor>;};pa5g_thmzone: pa5g-thmzone {polling-delay-passive = <0>;polling-delay = <0>;thermal-sensors = <&pa5g_thermistor>;};bd_thmzone: board-thmzone {polling-delay-passive = <0>;polling-delay = <0>;thermal-sensors = <&board_thermistor>;};
};
在控制台下可以读到这几个sensor的名字以及温度:
cat /sys/class/thermal/thermal_zone7/type
pa-thmzone
cat /sys/class/thermal/thermal_zone8/type
pa5g-thmzone
cat /sys/class/thermal/thermal_zone9/type
board-thmzone
cat /sys/class/thermal/thermal_zone7/temp
30126
验证cp侧温控策略可以用风枪给模块加热,让其温度达到xml中设置的温度,导出yocto.log:
adb pull /mnt/data/yocto.log d:\123.log
检查log中应该有类似如下功率回退的命令:
Mar 9 18:14:55.985 (none) user.info thermald[4100]: do,===>powerback, mArg:AT+SPTPPB=2, mFileNode:
就表示CP侧的策略生效了。
展锐平台的温控策略介绍相关推荐
- 【Quectel移远展锐平台5G模组RX500U/RG200U使用指南(一)】
概述 移远的展锐平台5G模组是基于展锐udx710平台开发的5G模组,在华为被禁,MH5000-31无法继续使用后,这个成了国产5G模组的独苗了. 目前移远出了多款展锐的5G模组,RG500U-CN, ...
- 【Quectel移远展锐平台5G模组RX500U/RG200U使用指南(五)-几种工作模式的区别】
前面介绍过网卡模式和路由模式的使用,接下来就详细介绍下两种方式的使用区别. 网卡模式 网卡模式下,上位机获取的是网络侧分的IP地址,以Windows为例,安装好Windows的驱动程序后,电脑USB接 ...
- 展锐平台PIN码输错三次后提醒PUK输入
要求:不同的卡要记录输入错误此时,指定错误次数后准确提醒输入PUK错误: 问题分析:1.展锐平台提供的SIM卡的认证统计错误次数以及认证后上报错误码,都是通过服务器异步上报的(各自有认证和异步回调的函 ...
- 展锐平台userdebug版本关闭ylog
展锐平台userdebug版本中,把ylog默认关闭,并且不影响休眠. 展锐平台分两部分,上层ylog apk以及ylog进程. ylog apk部分源码在:vendor/sprd/platform/ ...
- 展锐平台如何从modem log 中查看终端支持的GEA算法能力
展锐平台如何从modem log 中查看终端支持的GEA算法能力 可在以下两个message中查看 1.691195-1 14:23:22.922 – – -> ATTACH_REQUEST 0 ...
- 展锐平台的camera sensor驱动代码设计解析(2)
展锐平台的camera sensor驱动代码设计解析(1) 展锐平台的camera sensor驱动代码设计解析(2) 展锐平台的camera sensor驱动代码设计解析(3) Camera驱动的基 ...
- 展锐平台 Android 10.0 OTA升级开机Logo
通过OTA升级更换开机logo图片 展锐部分平台的logo是放在pac包的时候才去更新的.所以只有线刷pac包,才能更新logo,如果我们需要在OTA升级包含开机logo则需要单独修改,以sl8541 ...
- 展锐平台 取消蓝牙配对码弹框
文档说明 适用于 展锐8541E平台 Android 10 代码 取消蓝牙配对码弹框,实现蓝牙自配对 修改方法 /packages/apps/Settings下 diff --git a/src/co ...
- [展锐平台]如何配置LTE B41 带宽
关键词:android LTE B41 平台信息: 平台:SC9863A 内核:linux5.4.161 系统:android/android12 问题: 如何配置LTE B41 带宽 1.关于 ...
最新文章
- 简单的批处理命令(一)
- How to get pure json data by ajax request
- linux系统改ip地址 永久生效,Linux修改IP永久生效
- mysql物流管理系统_wuliuwang 物流信息管理系统 ssh2 mysql(Logistics Information Management System) - 下载 - 搜珍网...
- 常用的汇编系统功能指令(包含字符功能类,中断终止类)
- quartz CronExpression表达式
- Objective-C NSSetNSMutableSet以及CountedSet
- MapReduce 中的两表 join 几种方案简介
- 微软Silverlight 5开发书籍汇总
- 用C#实现用免费smtp服务器(GMail)发邮件(转)
- TME上市两周年|为2020甜蜜发糖,收获2021的希望
- HTML实现复制功能
- 计算机硬件基础 试题,计算机硬件基础试题(库)
- ## 7.1 奇异值分解SVD和对称矩阵谱分解
- Oracle中的SQL函数(全)
- Java实现网易企业163邮箱发送邮件
- 作为学生,我是怎么半年赚到人生第一个三十万的
- 远程oracle 不通,Oracle开放1521端口 telnet不通解决办法
- fabs linux头文件,fabs(c语言fabs函数用法求精度)
- qq 浏览器 android x86版,qq浏览器安卓版x86
热门文章
- 理想、激情、生存———位技术管理人员的20年工作经历和感悟(2)
- 使用命令行检测Android内存泄露
- 光速不变问题新思考(光速不满足速度叠加原理)
- 4W字的Redis面试教程 再不会我可就锤你了
- 06 nginx 处理转发其他域的处理 以及 proxy_redirect
- 计算机直接制版的优势,计算机直接制版技术.ppt
- 三年白干!程序员违反腾讯敬业协议赔97万,返还15.8万;Linux之父家断电六天:内核更新延期;CakePHP 4.2.4发布...
- 制作自己的多媒体个性相册(上篇)
- python输入秒数输出分钟小时_Python函数将秒到分钟,小时,天问题,怎么解决
- element UI-文字提示(el-tooltip)