0%

本文分析riscv内存管理相关的指令,主要包括,内存序、TLB无效化以及cache无效化 的相关指令。分析使用的内核版本是v6.0,qemu版本是7.1.50,opensbi的版本是v1.1, riscv privilige ISA的版本是20211203,CMO的版本是20220513。

阅读全文 »

本文主要分析riscv aclint的定义和内核实现。aclint使用https://github.com/riscv/riscv-aclint 上发布的版本,内核使用v5.19-rc8,qemu使用7.1.50。

阅读全文 »

本文介绍Linux内核里软中断的基本逻辑,分析基于内核代码v5.19-rc8,体系结构基于 riscv。目前,没有实际案例帮助继续分析细节。

阅读全文 »

本文分析Linux内核里KVM相关的逻辑,体系架构基于riscv。具体调试的时候,我们 使用了两层的qemu模型,第一层qemu使能了riscv的h扩展,第二层qemu使用kvm启动。 全文使用从上到下的思路分析,如果需要了解相关的硬件特性可以直接跳到最后。 使用v5.19-rc8内核代码、6.2.0 qemu代码作为分析代码。

阅读全文 »

可以构建一个两层qemu的环境来调试问题,第一层qemu启动的时候打开qemu的虚拟化 扩展,这个可以作为一个支持虚拟化扩展的riscv硬件平台,第二层qemu启动的时候 打开kvm支持。用这样的方式,我们可以去学习kvm虚拟化相关的东西。本文记录这个 环境搭建的过程,使用的环境是ubuntu 20.04 arm64版本。

阅读全文 »

本文梳理riscv上timer的基本软硬件逻辑,硬件模型基于qemu,使用的qemu版本是6.2.0, 内核代码分析使用的版本是v5.12-rc8。本文尽可能多的梳理riscv上timer相关的内容,需要独立描述的会在文中指出来。

阅读全文 »