blob: 16e046da7b384d45025fcaa247e65d31f7f9c122 [file] [log] [blame] [view]
# Device Libraries
## Overview
The OpenTitan repository contains device libraries which are used within our
Reference Firmware Images, and can (and should) be used by other OpenTitan
device software.
These are organised into the `sw/device/lib` directory.
- [`sw/device/lib/base`](https://github.com/lowRISC/opentitan/tree/master/sw/device/lib/base)
contains the Base Libraries, including
[freestanding C library headers](https://github.com/lowRISC/opentitan/tree/master/sw/device/lib/base/freestanding).
The Base Libraries are simple libraries that can be used by any other OpenTitan device software libraries.
- [`sw/device/lib/dif`](./dif/README.md)
contains the [Device Interface Functions](../../../doc/contributing/sw/device_interface_functions.md).
- `sw/device/lib/arch` contains the libraries to be used on specific device
configurations (for instance FPGA, Simulation, etc.).
- [`sw/device/lib/runtime`](https://github.com/lowRISC/opentitan/tree/master/sw/device/lib/runtime)
contains general libraries for more advanced on-device functionality
(including logging, printing, and interacting with the RISC-V core).
- [`sw/device/lib/testing`](./testing/README.md)
contains test library code. Test library code is any (reusable) code that
could aid in the writing of smoke, IP integration, or system-level tests,
that is a layer of above the DIFs. In other words, this code may make use
of the DIFs to actuate the hardware, and chip-level test code may make use
of this code to actuate the DIFs.
## Documentation Index
{{% sectionContent %}}