资料介绍
在M模式下运行的特定于平台的固件和在 S 模式或 HS 模式下运行的引导加载程序、管理程序或通用操作系统。
在HS模式下运行的管理程序和在 VS 模式下运行的引导加载程序或通用操作系统。
RISC-V SBI 规范作为一个独立项目由 RISC-V 基金会在Github上维护。
OpenSBI 项目的目标是为在 M 模式下执行的特定于平台的固件(上述案例 1)提供 RISC-V SBI 规范的开源参考实现。RISC-V 平台和片上系统供应商可以轻松扩展 OpenSBI 实现,以适应特定的硬件配置。
OpenSBI的主要组件以实现 SBI 接口的独立于平台的静态库libsbi.a的形式提供。固件或引导加载程序实现可以链接到该库,以确保符合 SBI 接口规范。libsbi.a还定义了一个接口,用于与平台固件实现提供的平台特定操作集成(例如控制台访问功能、处理器间中断控制等)。
为了说明libsbi.a库的使用,OpenSBI 还提供了一组特定于平台的支持示例。对于每个示例,可以编译特定于平台的静态库libplatsbi.a 。该库通过将libsbi.a与必要的平台相关硬件操作函数集成来实现 SBI 调用处理。对于所有支持的平台,OpenSBI 还提供了几个使用平台 libplatsbi.a构建的运行时固件示例。这些示例固件可用于替换传统的 riscv-pk引导加载程序(又名 BBL),并支持使用众所周知的引导加载程序,例如U-Boot。
支持的SBI版本
目前,OpenSBI 完全支持 SBI 规范v0.2。OpenSBI 还支持从 OpenSBI v0.7 开始的 Hart 状态管理 (HSM) SBI 扩展。HSM 扩展允许 S 模式软件以定义的顺序引导所有 harts,而不是传统的随机引导 harts 方法。因此,在 S 模式下也可以轻松支持许多必需的功能,例如 CPU 热插拔、kexec/kdump。OpenSBI 中的 HSM 扩展以非向后兼容的方式实现,以减少维护负担并避免混淆。这就是为什么如果 S-mode 不支持 HSM 扩展,任何使用 OpenSBI 的 S-mode 软件都无法启动超过 1 个 hart。
Linux 内核从 v5.7-rc1开始已经支持 SBI v0.2 和 HSM SBI 扩展。如果您使用的是早于5.7-rc1的 Linux 内核或任何其他没有 HSM SBI 扩展的 S-mode 软件,您应该坚持使用 OpenSBI v0.6 来引导所有 harts。对于 UMP 系统,这无关紧要。
注意 任何 S-mode 引导加载程序(即 U-Boot)都不需要支持 HSM 扩展,因为它不需要引导所有的 harts。操作系统应该有足够的能力使用 HSM 扩展启动所有其他非启动 hart。
所需工具链
OpenSBI 可以本地编译或在 x86 主机上交叉编译。对于交叉编译,您可以构建自己的工具链,从Bootlin 工具链存储库下载预构建的工具链或安装发行版提供的工具链;如果您选择使用 LLVM/Clang,由于 LLVM 能够在同一二进制文件中支持多个后端,因此大多数分发工具链将支持使用与本地 LLVM/Clang 工具链相同的工具链对 RISC-V 进行交叉编译,因此通常很容易获得有效的交叉编译工具链的方法。
基本上,我们更喜欢具有位置无关可执行文件 (PIE) 支持的工具链,例如riscv64-linux-gnu-gcc、riscv64-unknown-freebsd-gcc或 Clang/LLVM,因为它们生成的 PIE 固件映像可以在任意地址运行并进行适当对齐。如果使用裸机 GNU 工具链(例如 riscv64-unknown-elf-gcc),则会生成静态链接固件映像。如果使用裸机三元组(例如-target riscv64-unknown-elf),Clang/LLVM仍然可以生成 PIE 图像。
请注意,目前 Bootlin 工具链存储库中仅提供 64 位版本的工具链。
- Arduino二进制骰子
- 二进制数开源分享
- 二进制解码器开源设计
- 微型二进制时钟开源分享
- OpenSBI RISC-V开源Supervisor二进制接口
- 【2021-04-05】二进制中的原码反码补码与二进制数的左移右移
- C-SKY V2 CPU应用程序二进制接口标准手册 11次下载
- 基于FPGA的二进制相移键控设计方案 11次下载
- KEIL C51二进制数输入宏的详细方法程序说明 17次下载
- LabVIEW二进制数组转换二进制字符串的详细资料免费下载 16次下载
- C6000系列嵌入式应用二进制接口 3次下载
- “非二进制”中的新结构 5次下载
- 二进制逻辑运算详解 13次下载
- 二进制加法程序【C语言版】 0次下载
- 二进制加法程序【汇编版】 0次下载
- 二进制处理中的一些技巧 337次阅读
- 十进制、十六进制和二进制数制的区别 1236次阅读
- 二进制加法的实现细节 2207次阅读
- 二进制编码器和二-十进制编码器讲解 1.1w次阅读
- 格雷码与二进制转换 4547次阅读
- RISC-V SIG成功将Chromium等桌面软件适配到openEuler RISC-V 2018次阅读
- 数字二进制计数器的设计和实现 1656次阅读
- 基于FPGA的二进制时钟设计方案 2065次阅读
- 二进制解码器到底是什么 6078次阅读
- 如何利用二进制数实现BCD码的转换 2.7w次阅读
- 函数转换BCD编码二进制数为整型数 6404次阅读
- 格雷码与二进制的转换 1.7w次阅读
- 8421bcd码转换二进制 7.1w次阅读
- 二进制数据压缩算法 1.9w次阅读
- 解析二进制指数退避算法的过程 1w次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多