Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/riscv-non-isa/riscv-sbi-doc

Documentation for the RISC-V Supervisor Binary Interface
https://github.com/riscv-non-isa/riscv-sbi-doc

Last synced: 14 days ago
JSON representation

Documentation for the RISC-V Supervisor Binary Interface

Lists

README

        

= RISC-V SBI specification

SBI (Supervisor Binary Interface) is an interface between the Supervisor
Execution Environment (SEE) and the supervisor. It allows the supervisor to
execute some privileged operations by using the ecall instruction. Examples of
SEE and supervisor are: M-Mode and S-Mode on Unix-class platforms, where SBI is
the only interface between them, as well as the Hypervisor extended-Supervisor
(HS) and Virtualized Supervisor (VS).

Discussion of SBI occurs on the
https://lists.riscv.org/g/tech-prs[RISC-V Platform Runtime Services
list]. It is publicly readable but posting requires being a member of the
RISC-V Foundation. Any new SBI extension needs to be discussed and approved
there before being merged.

A list of implementations introduces SBI to M-Mode and HS-Mode software.
See section "SBI Implementation IDs"

= Licensing

The files in this repository are licensed under the Creative Commons
Attribution 4.0 International License (CC-BY 4.0). The full license
text is available at https://creativecommons.org/licenses/by/4.0/.

= Dependencies
The PDF built in this project uses AsciiDoctor (Ruby). For more information
on AsciiDoctor, specification guidelines, or building locally, see the
https://github.com/riscv/docs-dev-guide[RISC-V Documentation Developer Guide].

= Cloning the Project
This project uses
https://git-scm.com/book/en/v2/Git-Tools-Submodules[GitHub Submodules] to
include the RISC-V
https://github.com/riscv/docs-resources[docs-resources project]
to achieve a common look and feel.

When cloning this repository for the first time, you must either use
`git clone --recurse-submodules` or execute `git submodule init` and
`git submodule update` after the clone to populate the `docs-resources`
directory. Failure to clone the submodule, will result in the PDF build
fail with an error message like the following:

....
$ make
asciidoctor-pdf \
-a toc \
-a compress \
-a pdf-style=docs-resources/themes/riscv-pdf.yml \
-a pdf-fontsdir=docs-resources/fonts \
--failure-level=ERROR \
-o profiles.pdf profiles.adoc
asciidoctor: ERROR: could not locate or load the built-in pdf theme `docs-resources/themes/riscv-pdf.yml'; reverting to default theme
No such file or directory - notoserif-regular-subset.ttf not found in docs-resources/fonts
Use --trace for backtrace
make: *** [Makefile:7: profiles.pdf] Error 1
....

= Building Documents

The final specification in form of PDF and HTML can be generated using
`make` command. The `makefile` internally uses asciidoctor so the packages
required by the `makefile` need to be installed on the build system using
`make install-debs` or `make install-rpms`.