日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MSM8994 thermal管理

發(fā)布時間:2025/4/16 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MSM8994 thermal管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊打開鏈接

1MSM8994?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:調節(jié)

Temperature?Sensors?–?Placement?and?Increased?Coverage

溫度傳感器的位置和增加的覆蓋

1、溫度傳感器被放置在硅芯片的熱點附近。

MSM8660上首次使用片上溫度傳感器(On-die?sensors),有1On-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.5msthermal?actions響應更靈敏

在SBL1階段,如果溫度超過high/low閾值,基于硬件設計的tsens_reset將觸發(fā)溫度保護以保護設備。

Placement?of?MSM8994?On-Die?Temperature?Sensors

MSM8994片上溫度傳感器的位置。

MSM8994上一共有16個片上溫度傳感器。

如下圖所示,片上溫度傳感器的位置及sensor?ID由綠點表示。

?

Thermal?Management?Software?Overview

Thermal管理軟件概述。

1thermal管理軟件

§?管理內存情形下的溫度,上限為85℃。

???管理外設表面溫度,金屬上限為55℃,OEM?/載體通常為45°C

2Sensors

§?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定義了適當的溫度閾值,當前溫度高于閾值時候,開機可以延期并多次嘗試。但嘗試次多超過規(guī)定值時候,開機將失敗。

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

?

?

Kernel?Thermal?Monitor?(KTM)

1Bootup降溫

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階段所有的降溫措施將不再起作用。

2Post-bootup降溫

在系統(tǒng)進入初始化后期階段之后,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

1Thermal?daemon從MSM8660平臺開始使用。

2Thermal?engine在thermal?daemon基礎上實現了多個溫度傳感器的集中管理并支持多個算法

Thermal?engine支持thermal?daemon和高級動態(tài)算法并聯(lián)運行。OEM可以通過修改thermal?engine配置文件來選擇算法。

虛擬傳感器(Virtual?sensor):使用2個以上傳感器,按權重計算溫度,使得得到的溫度值更精準。

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

Thermal?engine參數舉例:

?

Thermal?Mitigation?Algorithms

熱緩解算法。

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

§?Dynamic?Thermal?Management?(DTM)?–?algo_type_ss,動態(tài)熱管理

§?Monitor?–?algo_type?monitor

2DTM

§?Configuration?–?algo_type?ss

§?OEM決定維持的溫度,算法動態(tài)執(zhí)行OEM制定的措施,比如調節(jié)CPU頻率。

???用來控制表面溫度和片上溫度。要求調整的措施比monitor少,溫度限制執(zhí)行更嚴格。

§?僅對CPUCPU進行操作,比如降低最大頻率。

§?通過修改thermal-engine.conf文件中的set_point和set_point_clr來修改閾值。

3Monitor?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)

動態(tài)算法的例子(估計響應)。

當溫度超過setpoint75℃),降低設備性能直到溫度穩(wěn)定。輪詢模式啟用,采樣率為定義的數值。?

當溫度溫度超過setpoint以及溫度降到setpoint75℃)以下,設備性能均會降低。

最大允許頻率可以呈遞增、遞減變化。

如果溫度50℃以下,中斷模式將再次啟用。

僅用來控制CPU/GPU。

?

?

Default?Thermal?Configuration

Thermal默認配置。

1QTI在代碼中提供了一套默認的thermal配置。該套配置參數需要根據OEM的需要進行調整。調整方法可以參考文檔:Thermal?Tuning?Procedure?(80-N9649-1)。

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

§?該命令將打印出當前的thermal規(guī)則,包括QTIOEM設置的。

3默認的配置參數

(1)關鍵溫度結點的管理規(guī)則?(默認85℃)

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

§?這些規(guī)則不應該增加它們的默認值。

§?源程序:

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

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

(2)表面溫度管理規(guī)則

§?OEMthermal-engine.conf中添加,然后放到手機路徑/system/etc/thermal-engine.conf

(3)其他默認規(guī)則不要修改?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添加一條規(guī)則。在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]的規(guī)則,將修改后的thermal-engine.conf推送到手機,然后重啟手機,新thermal配置將生效。

4同樣,不添加新規(guī)則,修改原來的規(guī)則也可以按照上面方法來操作。

5、禁用一個規(guī)則

例如禁用規(guī)則[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

調整峰值數據速率、最大發(fā)射功率、數據呼叫終止。

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

180-NM328-12_C_MSM8994_MSM8992_LA_Power_Thermal_Mgmt_Overview.pdf

280-NM328-12_A_MSM8994_LA_Power_Thermal_Mgmt_Overview.pdf

?

文中圖片和表格可以聯(lián)系本人。



總結

以上是生活随笔為你收集整理的MSM8994 thermal管理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。