????????作為支持兩個安全狀態的一部分,該架構包括了Secure Monitor Call(SMC)指令。執行SMC會引發Secure Monitor Call異常,該異常目標是EL3。
????????通常,SMC用于請求服務,可以是來自駐留在EL3中的固件,也可以是由受信任的執行環境托管的服務。SMC最初傳遞到EL3,其中SMC分發程序(SMC dispatcher)確定將由哪個實體處理該調用。如下圖所示:
????????為了規范接口,Arm提供了SMC調用約定(DEN0028)和Power State Coordination Interface平臺設計文檔(DEN0022)。這些規范詳細說明了SMC如何用于請求服務。
????????在EL1執行SMC可以被trap到EL2。這對于虛擬化管理程序是有用的,因為虛擬化管理程序可能希望模擬虛擬機看到的固件接口。
【注意】:在任一安全狀態下,EL0中都不可用SMC指令。我們將在后面的“中斷”部分討論異常時再看中斷控制器。