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 : ...
(3)、Enable mmu and endianness的相关寄存器 在ARMV8-aarch64架构下有三个sctlr寄存器 SCTLR_EL1SCTLR_EL2SCTLR_EL3以SCTLR_EL3,该系统寄存器的SCTLR_EL3.EE(BIT[25])定义了MMU访问页表的方式:小端方式读、还是大端方式读 (4)、Address size configuration Physical address size – 告诉cpu,当前系统的物理地...
MAIR_EL1, (Memory Attribute Indirection Register) 内存属性寄存器配置内存的属性,如Tagged Normal Memory、normal memory、device memory如果是normal memory,那么inner和Outer的配置是Write-Through /Write-back/write Allocate/write non-Allocate等 SCTLR_EL1, (System Control Register) 系统控制寄存器如d-cache/i-...
msr mair_el1, mair//Memory Attribute Indirection Register (EL1)真正的设置动作 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用来取消一个寄存...
(2)同步异常是可以在当前EL处理的,比如在EL1里发生的同步异常; (3)对于异步异常,可以路由到EL1/EL2/EL3处理,需要配置HCR以及SCR相关寄存器; 路由方法: 1.选择异常级别: 当异常发生时,PC可以有三个基地址VBAR_EL1、VBAR_EL3、VBAR_EL1(secure)供选择;路由规则如下: ...
SYM_FUNC_START(init_kernel_el) mrs x0, CurrentEL'获取当前PSTATE异常等级' cmp x0, #CurrentEL_EL2 b.eq init_el2'如果PSTATE异常等级为EL2,则跳转到init_el2' SYM_INNER_LABEL(init_el1, SYM_L_LOCAL) mov_q x0, INIT_SCTLR_EL1_MMU_OFF ...
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 虚拟内存地址范围. ...
3.3 初始化系统控制寄存器 某些系统寄存器上电时不会复位。因此,必须在使用它们之前,根据软件需求初始化这些寄存器。下面的示例展示了如何初始化HCR_EL2、SCTLR_EL2和SCTLR_EL1这些系统控制寄存器。 MSR HCR_EL2, XZRLDR X1, =0x30C50838MSR SCTLR_EL2, X1MSR SCTLR_EL1, X1 ...
缓存项被移除时, RemovalListener会获取移除通知[RemovalNotification],其中包含移除原因[RemovalCause]、键...