计划启动背景:d1 板上外设驱动计划。
- OpenSBI 引导流程复杂,设备树修改麻烦,更新不及时(带 d1-哪吒支持的分支已落后主分支 1000+ 次提交);
oreboot
已吸纳 d1-哪吒支持,能够烧写到内存且正确启动 RustSBI;oreboot
不需要静态链接设备树,RustSBI 以库形式接入,只需要 Rust 工具链即可编译,使用十分方便;- 尝试直接引导未经修改的
zCore
,失败;
- 理解
oreboot
引导流程; - 修改
zCore
使其可由oreboot
引导在 d1-哪吒运行; - 全面修改
zCore
脚本,使 qemu、测试等环境,x86/Arm/RiscV 全部可由oreboot
引导;
阶段 | 计划完成时间 | 开始时间 | 实际完成时间 | 内容 | 备注 |
---|---|---|---|---|---|
1 | - | 4/14 | 4/14 | 试用 oreboot ,将示例烧写到开发板 |
到本文写时已完成 |
2 | 4/18 | 4/15 | - | 编写一个内核态裸机程序,尝试调用 RustSBI 服务,参悟 oreboot 工作流程 |
重做,看来科研性质工作做时间表意义不大 |
3 | 4/22 | - | - | 在开发板上引导 zCore ,并编写一键烧写 Makefile |
|
4 | - | - | - | 在 qemu-system-riscv64 引导 zCore |
|
5 | - | - | - | 在所有环境使用 oreboot 引导 zCore |