作者
鄭文灝
IAR中國現場應用工程師
陳光愛
本文得到了英飛凌中國區的大力支持,特別感謝英飛凌汽車電子事業部大中華區首席現場應用工程師陳光愛在技術指導和專業意見方面給予的寶貴幫助。
隨著汽車電子系統變得越來越智能,對功能安全(Safety)的要求越來越高,同時信息安全(Security)也越來越被關注,安全調試(Secure Debug)機制已成為一個重要的信息安全特性。Infineon TRAVEO T2G系列MCU在滿足高性能需求的同時,集成了完整的硬件安全特性,包括生命周期管理、安全啟動(Secure Boot)、硬件加密引擎以及調試端口訪問控制(安全調試)等。這些機制協同作用,可有效防止未經授權的訪問與代碼數據篡改。
本文主要介紹如何在IAR Embedded Workbench for Arm中實現Infineon TRAVEO T2G的安全調試。
01Infineon TRAVEO T2G生命周期管理
設備生命周期是 TRAVEO T2G MCU 安全機制中的核心環節。其各個階段按照嚴格的、不可逆的流程推進,并通過電子保險絲(eFuse)實現狀態切換(將保險絲位從“1”永久熔斷為“0”)。這種機制確保了生命周期一旦進入新的階段便無法回退,從而能夠根據客戶需求,可靠地對設備內部的數據與代碼實施不同層級的保護。
TRAVEO T2G MCU 生命周期共分NORMAL_PROVISIONED, SECURE, SECURE_WITH_DEBUG, RMA(Return Material Authorization), CORRUPTED 5個階段,如下兩圖展示的是生命周期的切換順序,以及對應的保護狀態(NORMAL, SECURE, DEAD)。


02調試端口訪問控制機制
CYT2B7x 調試架構簡介
CYT2B7x 的物理調試接口支持 JTAG接口和SWD接口,內接的Arm 調試端口(DAP)有三組訪問端口(access port),分別為SYSTEM-AP(AP0),CM0-AP(AP1),CM4-AP(AP2)。其中,CM0-AP用于訪問CM0+,CM4-AP用于訪問CM4,SYSTEM-AP用于訪問System ROM table,以及AHB總線上的組件資源。

用戶可以通過編寫程序通過CPUSS_AP_CTL寄存器可單獨設置3個AP端口的調試器訪問權限。

調試端口控制策略
調試端口控制(Access restriction)共分為4種:Normal, Normal Dead, Secure, Secure Dead。下圖是調試端口控制(Access restriction)與生命周期(Lifecycle stage)、保護狀態(Protection state)的關系,以及Boot階段從哪組配置字(SFlash或者eFuse)獲取調試端口訪問權限配置,并由Boot代碼寫入到CPUSS_AP_CTL寄存器中。

以下是MCU復位后的boot階段,配置調試端口訪問權限的流程。

以下是eFuse中的Secure Access Restrictions 和 Secure Dead Access Restrictions 配置字。


下表顯示了 SFLASH Row 13 配置字。Normal Access Restrictions 和 Normal Dead Access Restrictions 分別存儲在 SFLASH Row 13 配置字(0x17001A00~0x17001BFF)的第一個字(0x17001A00)和第二個字(0x17001A04)中。

AP_CTL_ M0/M4/SYS_ DISABLE 定義了 M0/M4/SYS 調試端口 (DAP) 的調試器訪問權限。根據 AP_CTL_ M0/M4/SYS_ DISABLE 提供的配置字信息,Boot 代碼向 CPUSS_AP_CTL.CM0/CM4/SYS_ENABLE 和 CPUSS_AP_CTL.CM0/CM4/SYS_ DISABLE 位寫入對應的值,如下表所示:

03安全調試示例
示例簡介
本示例來自于“AN228680 – Secure system configuration in TRAVEO T2G family”應用手冊的“16.1.1 Debug access port authentication”
軟硬件環境:IAR Embedded Workbench for Arm 9.70.1 + KitProg3 CMSIS-DAP 硬件調試器 + Infineon CYT2B7x MCU
生命周期配置為NORMAL_PROVISIONED
SFlash Row 13 配置字Normal Access Restrictions為AP_CTL_CM0 / CM4 / SYS -> 01 – Temporary Disable
CM0+ 程序來自于sdl_additional_code_examples_v8.3.0和T2G_Sample_Driver_Library_8.3.0,負責配置Sflash調試端口配置字,確保MCU上電后,CM0+和CM4調試端口關閉,僅打開SYS-AP端口,以便硬件調試器訪問調試解鎖認證數據區域。 CM0+程序還負責MCU側的CM4調試端口解鎖流程。
通過IAR Embedded Workbench for Arm C-SPY調試腳本與CYT2B7x CM0+程序進行調試端口解鎖流程交互。
調試端口加鎖
由CM0+軟件工程將Normal Access Restrictions 配置字布局到SFlash Row 13區域,下載CM0+軟件工程時,相應的配置字就會寫入到SFlash區域。
Normal Access Restrictions 配置:
o AP_CTL_M0_DISABLE: 01 - Temporary Disable
o AP_CTL_M4_DISABLE: 01 - Temporary Disable
o AP_CTL_SYS_DISABLE: 01 - Temporary Disable
128 位調試解鎖密鑰(key0 - key3)存儲在Work Flash中(地址 = 0x14012000)。
調試端口解鎖流程
下圖為調試端口解鎖流程圖,其中:
CM0+側:
Boot代碼設置所有調試端口CM0/CM4/SYSTEM關閉(取決于 SFLASH)
CM0+程序打開SWD/JTAG引腳,并打開SYSTEM_DAP端口(下圖步驟4-6)
CM0+程序等待IPC中斷
當中斷到來時,通過SRAM_SCRATCH地址檢查128 位密鑰值,如果與Work Flash中(地址 = 0x14012000)中的預設密鑰值匹配正確,則開啟調試端口AP_CTL (下圖步驟10-17)
IAR Embedded Workbench for Arm C-SPY調試平臺側:
通過SYSTEM_DAP(DAP端口號0)(下圖步驟7,8)將值寫入指定地址
通過IPC寄存器生成中斷 (下圖步驟9)
等待 CM0+ 側通過AP_CTL打開CM0+和CM4的調試端口 (下圖步驟18)

IAR Embedded Workbench for Arm進行CYT2B7x MCU CM4工程安全調試流程
1. 準備工作
CM0+軟件示例工程已經成功下載到CYT2B7x MCU中。
任一個CM4軟件示例工程。
2. 配置硬件調試器,本示例使用KitProg3 CMSIS-DAP 硬件調試器(如左下圖配置),用戶也可以使用I-jet硬件調試器(如右下圖配置)

3. 在Debugger選項中,按下圖格式輸入密鑰,本示例正確密鑰為0x00112233445566778899AABBCCDDEEFF。
* MCU側,密鑰已由CM0+工程預先下載保存在Work Flash中。

4. 啟動調試后,在連接內核時,會調用C-SPY調試腳本的函數_ExecDeviceCoreConnect() -> TVII_CheckDAP()&TVII_IsAPEnabled(1) ->TVII_Unlock(),將密鑰寫入相應的寄存器。

5. TVII_Unlock()函數在執行完密鑰寫入后,通過TVII_WaitForResponse()函數來檢查認證結果狀態字,來判斷DAP調試端口是否認證成功(如果認證成功,CM0+側程序會修改狀態字0x55000000變為0xAA000000,狀態字位于0x08002700地址)。密鑰匹配成功后,調試器成功連接CM4調試端口。

6. 在Debugger選項中,如果輸入不正確的密鑰0x22112233445566778899AABBCCDDEEFF。本示例正確密鑰為0x00112233445566778899AABBCCDDEEFF。

7. TVII_Unlock()函數在執行完密鑰寫入后,通過TVII_WaitForResponse()函數來檢查認證結果狀態字,來判斷DAP調試端口是否認證成功。由于輸入密鑰錯誤,調試器連接CM4內核失敗,退出調試界面。

04總結
本文以Infineon TRAVEO T2G CYT2B7x為例介紹了如何在IAR Embedded Workbench for Arm中實現TRAVEO T2G的安全調試。TRAVEO T2G的調試端口解鎖流程由CM0+控制,因此用戶也可以根據項目需求重新設計CM0+程序代碼來進行調試端口解鎖流程(比如:基于加密認證算法的身份認證機制來解鎖),IAR Embedded Workbench for Arm C-SPY調試腳本也完全可以適配實現用戶的自定義調試端口解鎖流程。
其他TRAVEO T2G型號的 MCU 也有相似的安全調試機制, 如有任何問題或需求,歡迎聯系IAR中國獲取更多詳細信息。
參考資料:
1. TRAVEO T2G Automotive MCU body controller entry architecture technical reference manual
2. Infineon an228680 secure system configuration in TRAVEO T2G family
3. Infineon TRAVEO T2G boot training
4. Infineon TRAVEO T2G device security training
5. Infineon TRAVEO T2G program and debug interface training
6. Configure Normal (Dead) Access Restriction on TRAVEO T2G MCU
7. IAR Embedded Workbench for Arm C-SPY Debugging Guide
-
英飛凌
+關注
關注
68文章
2518瀏覽量
142872 -
mcu
+關注
關注
147文章
18924瀏覽量
397980 -
調試
+關注
關注
7文章
646瀏覽量
35648 -
Infineon
+關注
關注
2文章
108瀏覽量
31295 -
Traveo
+關注
關注
0文章
4瀏覽量
7964
原文標題:在IAR Embedded Workbench for Arm中實現Infineon TRAVEO? T2G安全調試
文章出處:【微信號:IAR愛亞系統,微信公眾號:IAR愛亞系統】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
英飛凌攜手Green Hills Software,提供基于TRAVEO? T2G 系列微控制器的、完整的汽車安全解決方案
汽車安全與網絡安全:英飛凌AURIX? TC3xx、TC4x、TRAVEO? T2G 和 PSoC 系列微控制器支持 Rust 語言
英飛凌推出TRAVEO T2G-C系列圖形MCU,以MCU的成本為汽車圖形應用提供堪比MPU的性能
TRAVEO T2G支持freeRTOS嗎?
在Traveo T2G CYT2B73BADQ0AZSGS上運行JTAG邊界掃描,為什么無法從設備的JTAG端口獲得任何響應?
如何使用DFU或MCUboot啟動TRAVEO2引導加載程序?
英飛凌AURIX TC3xx和TRAVEO T2G系列微控制器介紹
IAR全面支持英飛凌最新的TRAVEO T2G CYT6BJ車身控制MCU家族產品
如何實現Infineon TRAVEO T2G系列MCU的安全調試
評論