RISC-V UEFI 启动流程分析与 EDK2 移植
现阶段 RISC-V 主要专注于嵌入式领域,供学习和开发用的评估板一般是单板计算机的形式(Single Board Computer),软件方面基本上是依赖半导体厂商发布完整的 SDK,在 bootloader 这方面轻量级的 U-Boot 成为了首选。
随着厂商不断提高 RISC-V 的硬件性能,将不可避免地向上进入台式机甚至是服务器领域。届时,RISC-V 需要面对一个成熟的、分散的、玩家众多的和重度依赖生态的市场。而 UEFI 是市场给出的选择和答案,RISC-V 也必须遵守。
目前的 RISC-V UEFI 的支持现状:
本项目以 RISC-V EDK2 为例,分析 UEFI 的启动流程,对以下部分分别进行分析:
中等
Bin Meng <bmeng@tinylab.org>
UEFI 部分之前有同学做了一点工作:https://tinylab.org/riscv-uefi-part1/
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
目前社区对于本 issue 的解读有如下三篇文章:
Linux 内核中的 UEFI 支持 (EFI stub/ efi_init / runtime init) 在上面两篇 Linux 相关的文章中已经分析的差不多了。
本 issue 后续工作可以主要集中在 edk2/edk2-platform 项目中,目前整理的一些方向:
RISC-V edk2 分析
RISC-V edk2 系统表的构建
Linux EFI Stub 作为一种 EFI App,采用系统表做前期的初始化,为文章 2 补充系统表在 edk2 中构建过程
RISC-V edk2 的启动过程
edk2 启动过程的各个阶段如何利用 OpenSBI
RISC-V edk2 实践 (参考 EDK2 RISC-V Platform Project)
实现 PcdDxeCorePrivilegeMode 配置
此选项用于指定 edk2 DXE 阶段的特权模式,目前默认支持模式是 S-mode,M-mode 还未支持
实现 PEI OpenSBI PPI
PEI OpenSBI PPI 是 edk2 PEI 阶段调用的 OpenSBI 的接口,目前还未实现
我看基于StarFive星光2和Qemu上是不相同的诶,星光2上是用的edk2-platform中对于riscv的支持来统一了opensbi和sec阶段,但是在qemu上,是把opensbi来加载了sec和pei阶段,这俩好像不太一样。
登录 后才可以发表评论