sbi-spec 0.0.8

Definitions and constants in the RISC-V Supervisor Binary Interface (RISC-V SBI)
Documentation
# Changelog


All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]


### Added


### Modified


### Fixed


## [0.0.8] - 2024-10-25


### Added


- base: add Coreboot and Oreboot to `impl_id` module
- binary: add counter index mask type ([#71]https://github.com/rustsbi/rustsbi/pull/71)
- pmu: add `shmem_size` module for PMU snapshot shared memory, add unit test for `pmu::shmem_size::SIZE`
- binary: add function `is_ok_and`, `is_err_and`, `inspect` and `inspect_err` for `SbiRet` structure
- base: impl `Eq`, `PartialEq`, `Ord`, `PartialOrd` and `Hash` for `Version`, add unit tests

### Modified


- binary: amend documentation on `SbiRet::denied()` error.
- binary: change `SbiRet::and` signature to `fn and<U>(self, res: Result<U, Error>) -> Result<U, Error>`

### Fixed


- pmu: fix serial number issues in docs.

## [0.0.7] - 2024-02-05


`sbi-spec` crate now supports RISC-V SBI version 2.0 ratified.

### Added


- Support to PMU events in Chapter 11
- Support `NACL` extension in Chapter 15
- Support `STA` extension in Chapter 16
- Add new SBI error `NoShmem`
- binary: add `SharedPtr` struct to represent shared memory range feature.
- nacl: add `shmem_size` module
- Move `HartMask` structure to `sbi-spec` crate from `rustsbi` crate.

### Modified


- Rearrange `HSM` constants into modules.

### Fixed


- Remove redundant prefixes in `PMU`
- Add new function id `SNAPSHOT_SET_SHMEM` in `PMU`
- Grammar fixes on documents

## [0.0.6] - 2023-04-04


### Added


- `Physical` shared memory physical address range with type annotation in Chapter 3
- Support to RISC-V SBI System Suspend extension
- Support to CPPC extension

## [0.0.5] - 2023-02-16


### Added


- Adapt to RISC-V SBI specification version 2.0-rc1
- `PMU_COUNTER_FW_READ_HI` function in `pmu` module for RV32 systems
- SBI DBCN extension support
- `Result`-like documents to `SbiRet`

### Modified


- style: add period to docs

## [0.0.4] - 2022-10-10


### Added


- Various convenient functions to `SbiRet` structure
- Add documents on whole `sbi-rt` crate to coply with `deny(missing_docs)`
- Feature `legacy` to gate legacy SBI extension

### Modified


- Rename `SbiRet::ok` to `SbiRet::success`
- Rename `SbiSpecVersion` to struct `Version` 

## [0.0.3] - 2022-10-06


### Added


- deps: static_assertions
  check implementations during compilation, and provide an item list for developers
- denied: warnings and unsafe code
- a github workflow to check building
- `SbiSpecVersion` type defination for sbi base

### Modified


- rename `GET_SPEC_VERSION` to `GET_SBI_SPEC_VERSION`
- rename `impl_id::IMPL_XXX` to `impl_id::XXX`

### Removed


- default target to RISC-V

## [0.0.2] - 2022-07-21


### Added


- A changelog to this project

### Modified


- Lift build target limit; now this crate would build on targets other than RISC-V

## [0.0.1] - 2022-07-11


This is the first release of sbi-spec crate. This crate includes definition of RISC-V Supervisor Binary Interface (SBI) including structures and constants.

### Added


- Adapt to SBI specification version 1.0.0 ratified

[Unreleased]: https://github.com/rustsbi/sbi-spec/compare/v0.0.7...HEAD
[0.0.7]: https://github.com/rustsbi/sbi-spec/compare/v0.0.6...v0.0.7
[0.0.6]: https://github.com/rustsbi/sbi-spec/compare/v0.0.5...v0.0.6
[0.0.5]: https://github.com/rustsbi/sbi-spec/compare/v0.0.4...v0.0.5
[0.0.4]: https://github.com/rustsbi/sbi-spec/compare/v0.0.3...v0.0.4
[0.0.3]: https://github.com/rustsbi/sbi-spec/compare/v0.0.2...v0.0.3
[0.0.2]: https://github.com/rustsbi/sbi-spec/compare/v0.0.1...v0.0.2
[0.0.1]: https://github.com/rustsbi/sbi-spec/releases/tag/v0.0.1