RISC-V Linux的汇编启动部分比较简单,不算复杂。有两个部分比较核心:页表创建和重定向。页表创建是用C语言写的,今天先分析汇编部分,先带大家分析整体汇编启动流程,然后分析重定向。
注意:本文基于linux5.10.111内核
汇编启动流程
先从整体分析汇编做的事情,有个大体框架。
路径:arch/riscv/kernel/head.S
,入口是ENTRY(_start_kernel)

从ENTRY(_start_kernel)
开始进行启动前的一些初始化,建立页表前的主要工作:
-
关闭所有中断
/* 关闭所有中断 */ csrw CSR_IE, zero csrw CSR_IP, zero