5、SCTLR_EL1, System Control Register (EL1) 在AArch64状态下,其实是有三个sctlr寄存器: SCTLR_EL1 SCTLR_EL2 SCTLR_EL3 在AArch32状态下,有HSCTLR和sctlr寄存器,其中sctlr寄存器是banked: SCTLR (NS) HSCTLR SCTLR (S) 重要的三个bit位: I : Instruction cache enable C : data cache enable M : ...
在ARMV8-aarch64架构下有三个sctlr寄存器 SCTLR_EL1SCTLR_EL2SCTLR_EL3以SCTLR_EL3,该系统寄存器的SCTLR_EL3.EE(BIT[25])定义了MMU访问页表的方式:小端方式读、还是大端方式读 (4)、Address size configuration Physical address size – 告诉cpu,当前系统的物理地址是多少位 Output address size – 告诉mmu,...
设置HCR_EL2寄存器,特别是Bit 31的RW域,表示EL1要运行在AArch64还是AArch32的执行环境中。 设置SCTLR_EL1寄存器,需要设置大小端( M, bit[0] )和关闭MMU(EOE,bit[24], EE,bit[25]) 设置异常返回的执行模式 设置SPSR_EL2寄存器,记录返回(切换后)的异常等级和运行状态,设置模式 M 域为EL1h, 另外需要关...
msr tcr_el1, tcr//Translation Control Register (EL1)真正的设置动作 /* * Prepare SCTLR */ mov_q x0, INIT_SCTLR_EL1_MMU_ON// ---(2.5.11) ret// return to head.S .unreq mair//.unreq用来取消一个寄存器的别名 .unreq tcr SYM_FUNC_END(__cpu_setup) 2.5.1 设置EL0和EL1异常等级...
(3)对于异步异常,可以路由到EL1/EL2/EL3处理,需要配置HCR以及SCR相关寄存器; 路由方法: 1.选择异常级别: 当异常发生时,PC可以有三个基地址VBAR_EL1、VBAR_EL3、VBAR_EL1(secure)供选择;路由规则如下: 举两例来说明下: 第一个红色框的内容表示:在此种配置(安全模式)下,EL0和EL1状态下产生的异步异常,会...
aarch64中寄存器: TCR_ELx: 地址翻译控制寄存器 T0SZ, bits[5:0] : 定义TTBR0_EL1 虚拟内存地址范围. TG0, bit[15:14] : 用户态 Page size, 0[4k] 1[64k] 2[16k]. IPS : 物理内存地址宽度. T1SZ, bits[21:16] : 定义TTBR1_EL1 虚拟内存地址范围. ...
* SCTLR_ELx.EOS is clear), we place an ISB prior to ERET. * * Returns either BOOT_CPU_MODE_EL1 or BOOT_CPU_MODE_EL2 in w0 if * booted in EL1 or EL2 respectively. */ SYM_FUNC_START(init_kernel_el) mrs x0, CurrentEL'获取当前PSTATE异常等级' ...
3.3 初始化系统控制寄存器 某些系统寄存器上电时不会复位。因此,必须在使用它们之前,根据软件需求初始化这些寄存器。下面的示例展示了如何初始化HCR_EL2、SCTLR_EL2和SCTLR_EL1这些系统控制寄存器。 MSR HCR_EL2, XZRLDR X1, =0x30C50838MSR SCTLR_EL2, X1MSR SCTLR_EL1, X1 ...
缓存项被移除时, RemovalListener会获取移除通知[RemovalNotification],其中包含移除原因[RemovalCause]、键...