计划启动背景: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 |