慢慢欣赏arm64内核启动24 primary_entry之__cpu_setup代码第六部分

展示代码

	/*
	 * 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	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值