kernel启动流程-head.S的执行__7.__cpu_setup

ARM64 MMU 初始化

1. 前言

kernel版本:5.10
平台:arm64

本专题主要基于《arm64_linux head.S的执行流程》系列文章,前者是基于3.18,本专题针对的是内核5.10。主要分析head.S的执行过程。本文主要记录head.S的__cpu_setup执行过程。

2. __cpu_setup

#arch/arm64/mm/proc.S
/*
 *      __cpu_setup
 *
 *      Initialise the processor for turning the MMU on.
 *
 * Output:
 *      Return in x0 the value of the SCTLR_EL1 register.
 */
        .pushsection ".idmap.text", "awx"
SYM_FUNC_START(__cpu_setup)

为开启mmu做一些cpu的初始化工作

TLB/FP/ASIMD/DCC/PMU/AMU初始化

tlbi    vmalle1                         // Invalidate local TLB
dsb     nsh 

mov     x1, #3 << 20
msr     cpacr_el1, x1                   // Enable FP/ASIMD
mov     x1, #1 << 12                    // Reset mdscr_el1 and disable
msr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值