本文梳理CPU核在中断上的高层逻辑,分析围绕软硬件接口,而不关注硬件内部的实现 逻辑。本文是高层逻辑上的分析,不会涉及具体体系架构上的中断设计,如果有必要, 我们用riscv作为具体体系构架分析具体内容。
riscv plic基本逻辑分析
本文分析riscv下plic中断控制器的基本逻辑,分析基于plic-1.0.0_rc5, qemu代码基于v7.1.50, Linux内核代码基于v6.1。
riscv AIA逻辑分析
本文分析riscv AIA的基本逻辑。目前,相关的代码还在社区review,分析使用的代码为, qemu使用v7.1.50主线代码,kvmtool使用https://github.com/avpatel/kvmtool riscv_aia_v1分支, 内核使用https://github.com/avpatel/linux riscv_kvm_aia_v1分支。
多核启动基本逻辑分析
本文分析CPU多核启动的基本逻辑,我们分析基于riscv的qemu虚拟机,固件基于opensbi, 内核采用Linux。各个分析内容的版本是:qemu v7.1.50, opensbi v1.0, Linux v6.0。
Linux initramfs分析
本文分析Linux内核里initramfs的代码逻辑。分析基于的内核版本是v6.0,qemu版本是v7.1.50。
riscv内存管理相关指令整理
本文分析riscv内存管理相关的指令,主要包括,内存序、TLB无效化以及cache无效化 的相关指令。分析使用的内核版本是v6.0,qemu版本是7.1.50,opensbi的版本是v1.1, riscv privilige ISA的版本是20211203,CMO的版本是20220513。
opensbi逻辑分析
本文分析opensbi的基本逻辑,分析基于opensbi 1.1版本。
riscv中断异常委托关系分析
本文分析riscv构架下,中断和异常在各个特权级下的委托关系。
riscv aclint逻辑分析
本文主要分析riscv aclint的定义和内核实现。aclint使用https://github.com/riscv/riscv-aclint 上发布的版本,内核使用v5.19-rc8,qemu使用7.1.50。
riscv qemu virt平台外设分析
本文分析riscv架构qemu virt虚拟机上各种外设的逻辑,分析基于qemu v7.1.50(d29201ff3), Linux内核基于v5.19。