本文是公开课Arm TrustZone之安全中断的应用参与感想。
观后感
- 异常和中断是ARM中非常重要的组成部分。学习Arm安全架构就需要把异常和中断这两个学好。硬件外设产生外部中断,传到中断控制器中,根据中断enable和分组优先级,来路由到对应target来处理。周贺贺老师给我们讲解了大系统中断路由的9种示例,由当前Runtime在ATF、REE、TEE三种状态以及需要响应NS-Group1、S-Group1、Group0这三种中断两两组成。
- 其中,当CPU处在ATF状态,处理中断需要分类讨论,分为SCR.FIQ是否置1两种情况。
- CPU在context阶段中,中断会被Mask掉。FIQ本质是转发中断,而不是Fast中断,可以翻译为forward中断。IRQ和FIQ是同优先级的。安全,委托中断属于group0中断。ARMv9.2 core加入NMI中断的支持,目前还没有对应的硬件产品。使用硬件NMI中断的特性,可以利用ATF状态将中断注册为委托中断。中断路由配置的最佳做法是将SCR.FIQ配置为1,将中断全部路由到ATF(EL3)。在特权操作系统中构造快速响应的中断可以利用gic。在ATF中初始化中断时都初始化为NS-Group1中断。