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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

03-Arm SiP Services

發布時間:2025/3/21 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 03-Arm SiP Services 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關鍵詞: TF-A,TF-M,ATF,TrustedFirmware,trustzone,TEE,optee,trusty,tlk,lk,armv8,armv9,arm,secureboot,BL31,BL32,BL1,BL2,hypervisor,終端安全,secureboot,security,virtulization

快速鏈接:
.
👉👉👉 個人博客筆記導讀目錄(全部) 👈👈👈


👉[專欄目錄]-ATF/FF-A/specification學習👈


目錄

        • 3.1. Performance Measurement Framework (PMF)
        • 3.2. Execution State Switching service
          • 3.2.1. ARM_SIP_SVC_EXE_STATE_SWITCH
        • 3.3. DebugFS interface

本文列舉并描述了 Arm SiP(Silicon Provider)服務。

SiP 服務是由芯片實施者或平臺提供商提供的非標準、特定于平臺的服務。 它們通過從低于 EL3 的異常級別執行的 SMC(“SMC 調用”)指令訪問。 SMC 要求 SiP 服務:

遵從SMC Calling Convention規范,使用屬于 SiP 范圍的 SMC 功能 ID,對于 64 位調用,它們是 0xc2000000 - 0xc200ffff,對于 32 位調用,它們是 0x82000000 - 0x8200ffff。

Arm SiP 提供以下服務:

  • Performance Measurement Framework (PMF)
  • Execution State Switching service
  • DebugFS interface

Arm SiP 服務定義位于 arm_sip_svc.h 頭文件中。

3.1. Performance Measurement Framework (PMF)

性能測量框架(Performance Measurement Framework)允許調用者檢索在 TF-A 執行中在不同路徑上捕獲的時間戳。

3.2. Execution State Switching service

執行狀態切換服務為非安全的較低異常級別(EL2 或 NS EL1,如果未實現 EL2)請求切換其執行狀態(又名寄存器寬度),從 AArch64 到 AArch32,或從 AArch32 到 AArch64,用于調用 CPU。 此服務僅在為 AArch64 構建 Trusted Firmware-A (TF-A) 時可用(即當構建選項 ARCH 設置為 aarch64 時)。

3.2.1. ARM_SIP_SVC_EXE_STATE_SWITCH
Arguments:uint32_t Function IDuint32_t PC hiuint32_t PC louint32_t Cookie hiuint32_t Cookie loReturn:uint32_t

函數 ID 參數必須為 0x82000020。它唯一標識所請求的執行狀態切換服務。

參數 PC hi 和 PC lo 分別定義了執行狀態切換后應該開始執行的入口點(物理地址)的高位字和低位字。從 AArch64 調用時,PC hi 必須為 0。

當執行狀態切換后從提供的入口點開始執行時,參數 Cookie hi 和 Cookie lo 分別被傳遞到 CPU 寄存器 0 和 1。從 AArch64 調用時,Cookie hi 必須為 0。

此調用只能在主 CPU 上進行,然后才通過 CPU_ON PSCI 調用啟動任何輔助 CPU。否則,調用將始終失敗。

切換執行狀態的效果就像上電后第一次進入異常級別一樣。這意味著具有架構定義的復位值的 CPU 寄存器將采用該值。在進行調用之前,不應期望其他寄存器保持它們的值。但是,CPU 字節序保留了先前的執行狀態。請注意,這僅切換調用 CPU 的執行狀態。這不能替代 PSCI SYSTEM_RESET。

該服務可能會返回以下錯誤代碼:

STATE_SW_E_PARAM:如果任何參數被認為對特定請求無效。

STATE_SW_E_DENIED:如果調用不成功,或者當為 AArch32 構建 TF-A 時。

如果調用成功,調用者將不會觀察到 SMC 返回。相反,執行從提供的入口點開始,CPU 寄存器 0 和 1 分別填充有提供的 Cookie hi 和 Cookie lo 值。

3.3. DebugFS interface

通過 SMC SiP 服務訪問可選的 DebugFS 接口。 有關詳細信息,請參閱組件文檔。

字符串參數通過使用特定聯合的共享緩沖區傳遞:

union debugfs_parms {struct {char fname[MAX_PATH_LEN];} open;struct mount {char srv[MAX_PATH_LEN];char where[MAX_PATH_LEN];char spec[MAX_PATH_LEN];} mount;struct {char path[MAX_PATH_LEN];dir_t dir;} stat;struct {char oldpath[MAX_PATH_LEN];char newpath[MAX_PATH_LEN];} bind; };

dir_t 結構的格式如下:

typedef struct {char name[NAMELEN];long length;unsigned char mode;unsigned char index;unsigned char dev;qid_t qid; } dir_t;

總結

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

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