OpenSBI - RISC-V开源 Supervisor 二进制接口


BSD
Linux
C/C++

软件简介

RISC-V Supervisor二进制接口(SBI)是以下之间的推荐接口:

  • 在M模式下运行的特定于平台的固件,以S模式或HS模式执行的引导加载程序,管理程序或通用OS。
  • 在HS模式下运行的管理程序,以及在VS模式下执行的引导加载程序或通用OS。

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)。