只有SCR_EL3,没有SCR_EL1和SCR_EL2 只有EL3才能读写此寄存器. NS 标记processor element的secure/non-secure的安全位 IRQ、FIQ标志中断是routing到EL3是routing到ELx. 如果为1则routing到EL3 5、SCTLR_EL1, System Control Register (EL1) 在AArch64状态下,其实是有三个sctlr寄存器: SCTLR_EL1 SCTLR_EL2 S...
设置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 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用来取消一个寄存器...
在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,...
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 msr sctlr_el1, x0
1.ARM64的异常等级 ARM64包含4个异常等级: EL0:非特权模式,常用来跑应用程序; EL1:特权模式,常用来跑内核; EL2:虚拟化监控程序,例如hypervisor; EL3:安全模式,例如secure monitor; 2.同步异常和异步异常 同步异常是由正在运行的指令,或指令运行的结果,出错造成的异常;而异步异常则不必由运行的指令造成,可以在...
16. create_pgd_entry创建了PGD和PUD,但只用了他们的index0这一个表项,如下图,实际上这两级页表位置可以不连续. 这两级页表项都还是页表属性,下一级创建的是block entity 5_2_memory_mapping.PNG MMU Enable 将sctlr_el1bit0 置位即打开了MMU.
PMUSERENR_EL0RPerformance Monitors User Enable Register REVIDR_EL1RRevision ID Register RNDRRRandom Number RNDRRSRReseeded Random Number SCR_EL3[3]Secure Configuration Register (EL3) SCTLR_EL1R/WSystem Control Register (EL1) SCTLR2_EL1R/WSystem Control Register 2 (EL1) ...