blob: 3f9fb540ea8190305a1a027cb8edc57b7b3652a2 [file] [log] [blame] [view]
# Device Software
## Reference Firmware Images
The OpenTitan Reference Firmware Images together make up the Opentitan Reference Firmware Stack.
Different images are used for different boot stages.
The Reference Firmware Images are, in boot order:
1. The [ROM](./silicon_creator/rom/README.md) (in `sw/device/silicon_creator/rom`), executed at chip reset;
2. The ROM_EXT (in `sw/device/silicon_creator/rom_ext`), the second stage Silicon Creator code, executed from flash; and
### Testing-only Images
There are also some other standalone firmware images in the repository, which are only used for testing.
- [`sw/device/tests`](./tests/README.md) contains several categories of chip-level tests, including smoke, IP integration, and system-level (use case) tests.
- [`sw/device/benchmarks/coremark`](https://github.com/lowRISC/opentitan/tree/master/sw/device/benchmarks/coremark) contains infrastructure for running the [CoreMark](https://github.com/eembc/coremark) benchmark suite on the OpenTitan device.
- `sw/device/riscv_compliance_support` contains infrastructure so we can run the [RISC-V Compliance](https://github.com/riscv/riscv-compliance) tests on the OpenTitan core.
- `sw/device/sca` contains on-device software used for Side-Channel Analysis.
- `sw/device/prebuilt` contains pre-built Tock images, which may not be up-to-date.
- `sw/device/examples` contains example images, including a simple [Hello World](https://github.com/lowRISC/opentitan/tree/master/sw/device/examples/hello_world).
There are also prototype versions of some of the boot stages, now only used for testing:
- [`sw/device/lib/testing/test_rom`](https://github.com/lowRISC/opentitan/tree/master/sw/device/lib/testing/test_rom) is a previous, testing-only version of the ROM.
- `sw/device/exts` contains software for our prototype second boot stage images.
## Documentation Index
{{% sectionContent %}}