GICv3-4零散的寄存器解读(1)

ICC_SRE_EL3:控制EL3下选择系统寄存器接口,或内存映射接口,作为GIC CPU接口;(非正规表述就是对ICC_*/ICH*寄存器的访问是通过寄存器接口还是内存映射接口,如果使用内存映射接口,则访问寄存器会发生异常,并被本异常等级捕获)

    bit3 Enable:使能低异常等级对ICC_SRE_EL1/2的访问;

        0-将Secure/non-Secure EL1(ICC_SRE_EL3的SRE==1即使用系统寄存器接口)对ICC_SRE_EL1的访问、EL2对ICC_SRE_EL1/2的访问捕获到EL3;

        1-不捕获;

    bit2 DIB:禁用IRQ bypass;

        0-使能IRQ bypass;

        1-禁用IRQ bypass;

    bit1 DFB:禁用FIQ bypass,同DIB;

    bit0 SRE:使能系统寄存器;

        0-必须使用内存映射接口,EL3访问任意ICH_*或ICC_*寄存器(除了ICC_SRE_EL1/2/3)都会捕获到EL3;

        1-系统寄存器接口到ICH_*寄存器和EL1/2/3的ICC_*寄存器在EL3中使能;


ICC_SRE_EL2:控制EL2下选择系统寄存器接口或内存映射接口作为GIC CPU接口;

    bit3 Enable:使能低异常等级对ICC_SRE_EL1的访问;

        0-Non-secure EL1对ICC_SRE_EL1的访问会被捕获到EL2

        1-Non-secure EL1对ICC_SRE_EL1的访问不会被捕获到EL2

    bit2 DIB:禁用IRQ bypass

    bit1 DFB:禁用FIQ bypass

    bit0 SRE:使能系统寄存器;

        0-必须使用内存映射接口,EL2访问任意ICH_*或ICC_*寄存器(除了ICC_SRE_EL1、ICC_SRE_EL2)都会被捕获到EL2;

        1-在EL2中使用系统寄存器接口对ICH_*以及EL1/2的ICC_*寄存器访问;


ICC_SRE_EL1:控制EL1下选择系统寄存器接口或内存映射接口作为GIC CPU接口;

    bit2 DIB,bit1 DFB;不比赘述;

    bit0 SRE:同EL3/2

        0-必须使用内存映射接口,从EL1访问任意ICC*系统寄存器(除了ICC_SRE_EL1)都会被捕获到EL1;

        1-当前异常状态使用系统寄存器接口;


msr SCR_EL3, xzr  // 开机处于EL3,NS位置零,于是访问ICC_SRE_EL1其实处理的是ICC_SRE_EL1的安全域接口;

mov x0, #15
msr ICC_SRE_EL3, x0

isb
即设置EL3不捕获对ICC_SRE_EL1/2的访问;IRQ、FIQ的bypass禁用;使用系统寄存器接口。

msr ICC_SRE_EL1, x0

设置ICC_SRE_EL1的安全域接口

mov x3, #(SCR_EL3_RW  | \
              SCR_EL3_SMD | \
              SCR_EL3_HCE |  /*add hce, enable el2*/ \
              SCR_EL3_NS)
msr SCR_EL3, x3
isb

在EL3中切换低异常等级到Non-secure域,这样访问ICC_SRE_EL1就是处理其Non-secure域接口,同样,仅有Non-secure接口的ICC_SRE_EL2也可以处理。

mov x0, #15
msr ICC_SRE_EL2, x0
isb
msr ICC_SRE_EL1, x0

EL3/2/1 Secure/Non-secure域的ICC_SRE_ELx都设置完成;


 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值