当这个 异常处理程序在aarch64时,异常既可以来自aarch64,也可以来自aarch32 4、SCR_EL3, Secure Configuration Register 只有SCR_EL3,没有SCR_EL1和SCR_EL2 只有EL3才能读写此寄存器. NS 标记processor element的secure/non-secure的安全位 IRQ、FIQ标志中断是routing到EL3是routing到ELx. 如果为1则routing到EL3...
将scr.fiq设置为1,以使中断路由到EL3 (2)当前执行在non secure EL1,则触发方式为fiq 将scr.fiq设置为1,以使中断路由到EL3 (3)当前执行在EL3,则触发方式为fiq 将scr.fiq设置为1,以使中断路由到EL3 根据上面的几种情况,即可知道异常等级切换时只要将SCR.f...
将scr.fiq设置为 1,以使中断路由到 EL3 当前执行在EL3,则触发方式为 fiq, 将scr.fiq设置为 1,以使中断路由到EL3 根据上面的几种情况,即可知道异常等级切换时只要将 SCR.fiq 和 SCR.irq 值按下表设置,及可正确地配置中断路由关系: 异常等级 scr.irq scr.fiq secure EL1 0 1 non secure EL1 0 1 ...
u_register_t scr_el3; unsigned int icc_sre_el3; assert(gicv3_driver_data != NULL); assert(proc_num < gicv3_driver_data->rdistif_num); assert(gicv3_driver_data->rdistif_base_addrs != NULL); assert(IS_IN_EL3()); /* Mark the connected core as awake */ /* 表示要connect redis...
在EL3 中运行的软件会切换 SCR_EL3.NS 位。 异常返回,处理器从 EL3返回到S.EL1。 更改安全状态不仅仅是在异常级别之间移动和更改 SCR_EL3.NS 位。我们还必须考虑处理器状态。 向量寄存器、通用寄存器和大多数系统寄存器只有一份副本。当在安全状态之间移动时,保存和恢复寄存器状态是软件而非硬件的责任。按照惯例...
通过配置SCR_EL3寄存器,ARM架构允许异步异常被路由到EL3。 基于选择的中断路由模型,TF-A适当的配置SCR_EL3的FIQ和IRQ来决定次路由。 除非为了实现安全和非安全世界切换,大多数情况下,路由到EL3的FIQ和IRQ不需要在EL3中处理。 4.2 The role of Exception Handling Framework ...
也就是说,当FEAT_DoubleFault开启之后,且SCR_EL3.EASE比特设置为1, 那么此时target到EL3的 Synchronous External abort将会跳转到Serror offset。 在中断产生之后,PC(或PE 或 Core 或 cpu)将跳转到VBAR + 中断offset处。事实上在armv8-aarch64或armv9体系中,有3个VBARELx寄存器,另外对于VBAREL1虽然只有一个,...
4.1、EL3 is AArch64: 4.2、EL3 is AArch32: AArch32和AArch64 secure monitor的理解: 如果secureos和monitor都是64位,secureos跑在el1, monitor跑在el3; 如果secureos和monitor都是32位,secureos和monitor都跑在EL3(secureos在svc模式、monitor在svc模式),它俩共用页表; ...
中断的路由规则,决定了中断发生时,哪个异常级别处理该中断。如果要路由到EL3,需要设置SCR_EL3.{EA,IRQ,FIQ}。 示例3:展示了如何将SError、IRQ和FIQ路由到EL3异常级别的设置 代码语言:javascript 复制 MRSX0,SCR_EL3ORRX0,X0,#(1<<3)// 设置EA位ORRX0,X0,#(1<<1)// 设置IRQ位ORRX0,X0,#(1<<...
(3)对于异步异常,可以路由到EL1/EL2/EL3处理,需要配置HCR以及SCR相关寄存器; 路由方法: 1.选择异常级别: 当异常发生时,PC可以有三个基地址VBAR_EL1、VBAR_EL3、VBAR_EL1(secure)供选择;路由规则如下: 举两例来说明下: 第一个红色框的内容表示:在此种配置(安全模式)下,EL0和EL1状态下产生的异步异常,会...