展示代码
/*
* Prepare SCTLR
*/
mov_q x0, SCTLR_EL1_SET
ret // return to head.S
SYM_FUNC_END(__cpu_setup)
分析代码
第1行到第3行是注释,准备寄存器 SCTLR,SCTLR 是什么东东我们继续分析
第4行涉及宏定义 SCTLR_EL1_SET,定义如下
#define SCTLR_EL1_SET (SCTLR_ELx_M | SCTLR_ELx_C | SCTLR_ELx_SA |\
SCTLR_EL1_SA0 | SCTLR_EL1_SED | SCTLR_ELx_I |\
SCTLR_EL1_DZE | SCTLR_EL1_UCT |\
SCTLR_EL1_NTWE | SCTLR_ELx_IESB | SCTLR_EL1_SPAN |\
SCTLR_ELx_ITFSB| SCTLR_ELx_ATA | SCTLR_EL1_ATA0 |\
ENDIAN_SET_EL1 | SCTLR_EL1_UCI | SCTLR_EL1_RES1)
该宏涉及到了寄存器 SCTLR_EL1, System Control Register (EL1)
其作用如下 Provides top level control of the system, including its memory system, at EL1 and EL0.
它是ARM64架构中的一个系统控制寄存器,用于控制处理器的操作和行为。它影响内存管理、缓存、中断处理等多个方面。
代码中涉及的宏定义对应的BIT位定义如下
#define SCTLR_ELx_M (BIT(0))
#define SCTLR_ELx_C (BIT(2))
#define SCTLR_ELx_SA

最低0.47元/天 解锁文章
8131

被折叠的 条评论
为什么被折叠?



