Skip to content

Latest commit

 

History

History
69 lines (53 loc) · 2.11 KB

README.md

File metadata and controls

69 lines (53 loc) · 2.11 KB

librpmi - RPMI Protocol Implementation

Introduction

The librpmi is an implementation of RISC-V Platform Management Interface.

The librpmi implements RPMI shared memory transport, RPMI message protocol and various Service groups and Services as defined in the RPMI specification.

librpmi high level architecture

The librpmi can be used by -

  1. RISC-V platform vendors to implement RPMI services in their platform microcontroller firmware.

  2. System-level partitions to implement RPMI services running as separate OpenSBI domain

  3. Hypervisors/emulators/simulators to emulate RPMI services for the Guest/VM

Features

  • RPMI Transport (shared memory)
    • Multiple RPMI shared memory based transports capability.
    • Configurable transport where service groups can be enabled or disabled for specific transport (except Base group).
  • RPMI Service Groups
    • Base
    • System Reset
    • System Suspend
    • Hart State Management
    • Clock
    • CPPC
  • Platform HAL interface.
  • Test framework to test librpmi which is easy to extend and add more service group test cases.
  • HTML and PDF documentation generated by doxygen.

The librpmi is a new project and is in development. More capabilities and service groups will be added soon.

Development

The librpmi supports GNU Make and comes with a simple Makefile generates librpmi.a under build directory and test applications in build\test directory.

librpmi.a

make

The platform vendors may also integrate librpmi sources directly into the platform microcontroller firmware and extend firmware build system to build the librpmi sources rather than using librpmi.a.

Documentation

The librpmi supports doxygen which can generate both html and pdf documentation under build\docs directory.

make docs

This generates pdf file build/docs/latex/refman.pdf and html documentation at build/docs/html.

Test

Refer: README in test folder

License

The librpmi is provided under 2-Clause BSD License