【RISCV64移植】开发进度跟踪

【RISCV64移植】开发进度跟踪

该帖子用于跟进DragonOS的riscv64移植相关进度,将持续更新。

计划任务 内容描述 开发进度 帖子链接 相关链接
DragonStub 仿照EFIStub,实现standalone版本的EFI Stub,让DragonOS“一次编译,到处启动” 已完成 GitHub - DragonOS-Community/DragonStub: A generic standalone EFI stub for DragonOS kernel, which based on the Linux EFI stub.
UEFI初始化 在内存管理初始化之前。获取必要的信息 已完成 riscv: 完成UEFI初始化,能正确设置memblock的信息 by fslongjin · Pull Request #501 · DragonOS-Community/DragonOS · GitHub
内存管理移植 移植MM模块 Review中 初始化riscv的内存管理模块,并且设置保留内存 by fslongjin · Pull Request #506 · DragonOS-Community/DragonOS · GitHub
中断及异常管理重构 现有的中断/异常处理模块没有架构可移植性,需要先重写。 未开始
进程管理移植 未开始

以上内容持续更新中。

1月24日更新:
在vision five 2上运行的时候,发现head.S里面,一旦启用分页之后就会卡住(应该是fault了)。但虚拟机,哪怕是最新版的qemu8.1都能正常运行。正在寻找原因。

这个原因是riscv新映射的页面需要填写以下页表项:

    const ENTRY_FLAG_DEFAULT_PAGE: usize = Self::ENTRY_FLAG_PRESENT
        | Self::ENTRY_FLAG_READWRITE
        | Self::ENTRY_FLAG_DIRTY
        | Self::ENTRY_FLAG_ACCESSED
        | Self::ENTRY_FLAG_GLOBAL;