1. 背景介紹:
在TI上一代Jacinto 6汽車處理器中,例如DRA7x/TDA2x,為了實現(xiàn)性能與功能安全的綜合考慮,提供了名為DVFS(Dynamic Voltage Frequency Scaling)的機(jī)制,使能系統(tǒng)能夠?qū)崟r獲取芯片thermal狀態(tài),并動態(tài)反饋調(diào)節(jié)系統(tǒng)電壓與運行頻率,使得系統(tǒng)運行在安全溫度范圍內(nèi),實現(xiàn)性能最大化。
在TI最新一代Jacinto? 7 處理器中,例如DRA8x/TDA4x,目前外部PMIC輸出電壓NVM固定,故推薦使用DFS來實現(xiàn)在固定電壓下的頻率調(diào)節(jié),從而實現(xiàn)對整芯片熱狀態(tài)的檢測以及控制。
2. 測試條件:
TDA4VM EVM開發(fā)板:https://www.ti.com/tool/J721EXSOMXEVM
TDA4VM Linux SDK:https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX-J721E/08.00.00.08
TDA4VM RTOS SDK:https://www.ti.com/tool/download/PROCESSOR-SDK-RTOS-J721E/08.00.00.12
3. TDA4動態(tài)熱檢測與控制流程:
在TDA4 SOC系統(tǒng)中,可參照圖1所示流程進(jìn)行SOC熱狀態(tài)檢測以及控制,用戶可在應(yīng)用層對VTM(Voltage and Thermal Manager)的thermal值進(jìn)行實時讀取,并設(shè)置高溫超出閾值/常溫回落閾值,通過VTM的實時檢測以及對比,在超出閾值時產(chǎn)生溫度事件。或者在內(nèi)核中通過增加VTM驅(qū)動,并直接在上層應(yīng)用中讀取thermal溫度值并設(shè)置閾值,然后通過上層應(yīng)用邏輯來實現(xiàn)對thermal的監(jiān)控,在超出閾值時產(chǎn)生溫度報警事件。
圖 1 TDA4動態(tài)熱檢測與控制流程圖
在得到溫度報警事件后,通過對TDA4內(nèi)部各核心運行狀態(tài)以及運行頻率的讀取,能夠在系統(tǒng)正常運行范圍內(nèi),動態(tài)調(diào)整各核心的運行頻率,從而降低系統(tǒng)功耗,實現(xiàn)對系統(tǒng)熱狀態(tài)的控制。
4. VTM動態(tài)熱檢測
首先需要動態(tài)讀取SOC thermal溫度值,VTM可以用來讀取溫度值以及設(shè)置溫度報警閾值等,其詳細(xì)介紹參照TDA4 TRM手冊。其核心寄存器配置如表1所示:
表 1 VTM寄存器設(shè)置
Register in VTM module | Offset | Comments |
WKUP_VTM_TMPSENS_STAT_j | [9-0] DATA_OUT | 實時溫度值(ADC code數(shù)值) |
WKUP_VTM_MISC_CTRL2 | [9-0] MAXT_OUTRG_ALERT_THR | 高溫報警閾值,超出產(chǎn)生thermal alert |
WKUP_VTM_MISC_CTRL2 | [25-16] MAXT_OUTRG_ALERT_THR | 常溫回落閾值,產(chǎn)生alert clean |
WKUP_VTM_TMPSENS_CTRL_j | [11] MAXT_OUTRG_EN | Enable/Disable alert 事件 |
CTRLMMR_WKUP_RESET_SRC_STAT | [24] THERMAL_RST | 產(chǎn)生/清除 alert事件的標(biāo)志位 |
讀出來的DATA_OUT值為內(nèi)部ADC數(shù)值,需要進(jìn)行轉(zhuǎn)換才能成為攝制溫度值,其轉(zhuǎn)換方式如圖2所示:
圖 2 VTM ADC code與溫度值計算關(guān)系表
此處提供patch,能夠?qū)崿F(xiàn)在Linux端對內(nèi)部核心的thermal溫度值讀取。步驟如下:
a. 下載Linux SDK8.0并參照guide制作SD啟動卡,并下載對應(yīng)thermal patch。
b. 參照下述流程安裝到原生SDK中。
cd $PSDK_PATH/board-support/linux-*
git am 0001-display-temperature-as-mili-celsius.patch
cd ../..
make linux
c. 參照下述流程將編譯后的文件更新至SD卡系統(tǒng)中。
Edit the file $PSDK_PATH/Rules.make
Set DESTDIR=/media/$USER/rootfs
cd $PSDK_PATH
sudo make linux_install
d. 參照下述流程進(jìn)行驗證
cat /sys/class/thermal/thermal_zone*/temp
其中patch一共添加了五個域中kernel的溫度值,其打印如圖3所示:
圖 3 thermal溫度值讀取
其中對應(yīng)了五個Linux中的設(shè)備節(jié)點,所輸出的值單位為毫攝氏度,例如圖3中所示結(jié)果以及硬件對應(yīng)關(guān)系為:
thermal_zone0 -> WKUP domain DMSC core -> 67.640℃
thermal_zone1 -> MAIN domain MPU A72 core -> 68.074℃
thermal_zone2 -> MAIN domain C7x core -> 68.507℃
thermal_zone3 -> MAIN domain GPU core -> 69.371℃
thermal_zone4 -> MAIN domain R5F core -> 68.074℃
5. TDA4核心動態(tài)調(diào)頻控制
獲取到TDA4內(nèi)部各個核心實時的thermal值后,可以通過上層邏輯對讀取到的溫度值與預(yù)設(shè)的報警閾值進(jìn)行邏輯比較,然后采取對應(yīng)的措施進(jìn)行核心頻率調(diào)整。
在TDA4默認(rèn)文件系統(tǒng)中,提供k3conf通過指定的device ID以及clock ID來實現(xiàn)對各個核心頻率的讀取以及控制。
5.1 Device ID的獲取:
可通過TISCI手冊J721E部分對各個模塊的device ID進(jìn)行查詢:
https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/08_00_00_12/exports/docs/pdk_jacinto_08_00_00_37/packages/ti/drv/sciclient/soc/sysfw/binaries/system-firmware-public-documentation/5_soc_doc/j721e/devices.html#soc-doc-j721e-public-devices-desc-device-list
圖4中列出了常用幾個核心的device ID。
圖 4 processor device ID
5.2 Clock ID的獲取:
為了標(biāo)識在一個核心中多個不同模塊的頻率設(shè)置,引入了clock ID對其進(jìn)行區(qū)分,可在TISCI J721E部分對clock ID進(jìn)行查詢。
https://software-dl.ti.com/jacinto7/esd/processor-sdk-rtos-jacinto7/08_00_00_12/exports/docs/pdk_jacinto_08_00_00_37/packages/ti/drv/sciclient/soc/sysfw/binaries/system-firmware-public-documentation/5_soc_doc/j721e/clocks.html?highlight=a72ss0_core0
5.3對應(yīng)核心運行頻率檢測:
獲取到對應(yīng)核心device ID后,可通過下述指令打印出當(dāng)前對應(yīng)核心的運行頻率。
k3conf dump clock DEVICE_ID
以A72_CORE0為例,可以得到其當(dāng)前運行頻率為2GHz如圖5所示。
圖 5 A72 CORE0 運行頻率
5.4設(shè)置對應(yīng)核心運行頻率:
若按照第三章中的流程計算,當(dāng)前運行頻率需要進(jìn)行調(diào)整,可使用下述指令對當(dāng)前指定device ID以及clock ID 的模塊進(jìn)行頻率控制。在對其核心頻率進(jìn)行修改之前,需要首先對其對應(yīng)的鎖相環(huán)進(jìn)行修改,以A72_CORE0核心為例:
devmem2 0x00688040 w 0x80000001
k3conf set clock 202 2 1000000000
其修改過程如圖6所示:
圖 6 A72 CORE0頻率修改流程
其中每個TDA4內(nèi)部核心所支持的最大頻率受硬件限制,以TDA4VM為例,如圖7所示為不同PN中各核心所支持的最大頻率,詳情參照TDA4VM Datasheet。
圖 7 TDA4VM中各核心所支持最大頻率
同樣的,在最大頻率之下,各核心的頻率設(shè)置并非隨機(jī)設(shè)置,其必須滿足內(nèi)部分頻器等硬件時鐘要求,此相關(guān)設(shè)置參照TI Clock Tree Tools。
審核編輯:湯梓紅
-
處理器
+關(guān)注
關(guān)注
68文章
19811瀏覽量
233603 -
控制
+關(guān)注
關(guān)注
5文章
1021瀏覽量
123549 -
檢測
+關(guān)注
關(guān)注
5文章
4605瀏覽量
92543
發(fā)布評論請先 登錄
使用TDA4仿真器遇到的幾個疑問求解
J721S2/TDA4VE/TDA4VL/TDA4AL EVM用戶指南

Jacinto處理器TDA4AP/TDA4VP/TDA4AH/TDA4VH EVM用戶指南

J721S2、TDA4VE、TDA4AL、TDA4VL、AM68功耗估算工具

J784S4、TDA4VH、TDA4AH、TDA4VP、TDA4AP、AM69功耗估算工具用戶指南

TDA4泊車應(yīng)用中的超聲波雷達(dá)集成方案

TDA4 HS Prime密鑰燒錄以及vHSM的集成

基于Pytorch訓(xùn)練并部署ONNX模型在TDA4應(yīng)用筆記

TDA4 Edge AI處理器的性能和效率基準(zhǔn)測試

適用于ADAS和自動駕駛汽車的TDA4VH-Q1、TDA4AH-Q1、TDA4VP-Q1、TDA4AP-Q1 Jacinto? 處理器數(shù)據(jù)表

TDA4VE TDA4AL TDA4VL Jacinto?處理器數(shù)據(jù)表

評論