The OpenSBI platform support allows an implementation to define a set of platform-specific hooks (hardware manipulation functions) in the form of a struct sbi_platform data structure instance. This instance is required by the platform-independent libsbi.a to execute platform-specific operations.
Each of the reference platform supports provided by OpenSBI defines an instance
of the struct sbi_platform data structure. For each supported platform,
libplatsbi.a integrates this instance with libsbi.a to create a
platform-specific OpenSBI static library. This library is installed
in /platform//lib/libplatsbi.a
OpenSBI also provides implementation examples of bootable runtime firmwares for
the supported platforms. These firmwares are linked against libplatsbi.a.
Firmware binaries are installed in
/platform//bin. These firmwares can be
used as executable runtime firmwares on the supported platforms as a replacement
for the legacy riskv-pk boot loader (BBL).
A complete doxygen-style documentation of struct sbi_platform and related
APIs is available in the file include/sbi/sbi_platform.h. Support for a new platform named can be added as follows:
A platform support code template is available under the platform/template
directory. Copying this directory and its content as a new directory named
under the platform/ directory will create all the files mentioned
above.
Adding support for a new platform