RISC-V Supervisor二进制接口(SBI)是以下之间的推荐接口:
OpenSBI项目的目标是为在M模式下执行的平台特定固件(上面提到的情况1)提供RISC-V SBI规范的开源参考实现。 RISC- V平台和片上系统供应商可以轻松扩展OpenSBI实现,以适应特定的硬件配置。
OpenSBI的主要组件以独立于平台的静态库libsbi.a的形式提供,实现了SBI接口。固件或引导加载程序实现可以链接到此库,以确保符合SBI接口规范。 libsbi.a还定义了用于与平台固件实现提供的平台特定操作集成的接口(例如,控制台访问功能,处理器间中断控制等)。
为了说明libsbi.a库的使用,OpenSBI还提供了一组特定于平台的支持示例。对于每个示例,都可以编译特定于平台的静态库libplatsbi.a。该库通过将libsbi.a与必要的平台相关硬件操作函数集成来实现SBI调用处理。对于所有支持的平台,OpenSBI还提供了使用平台libplatsbi.a构建的多个运行时固件示例。这些示例固件可用于替换传统的riscv- pk引导加载程序(也称为BBL),并允许使用众所周知的引导加载程序,如U-Boot(https://git.denx.de/u-boot.git)。