title: “OpenTitan 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 [Mask ROM]({{< relref “sw/device/silicon_creator/mask_rom/docs” >}}) (in sw/device/mask_rom), executed at chip reset;
  2. The ROM_EXT (in sw/device/silicon_creator/rom_exts), the second stage Silicon Creator code, executed from flash; and
  3. The [Tock Image]({{< relref “sw/device/tock/README.md” >}}) (in sw/device/tock), the Silicon Owner code, also executed from flash.

Testing-only Images

There are also some other standalone firmware images in the repository, which are only used for testing.

  • [sw/device/tests]({{< relref “sw/device/tests/README.md” >}}) contains many standalone smoke test images. This directory also contains unit tests for software modules, which are executed on host (not device) systems using GoogleTest.

  • [sw/device/benchmarks/coremark]({{< relref “sw/device/benchmarks/coremark/README.md” >}}) contains infrastructure for running the CoreMark benchmark suite on the OpenTitan device.

  • sw/device/riscv_compliance_support contains infrastructure so we can run the RISC-V 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]({{< relref “sw/device/examples/hello_world/README.md” >}}).

There are also prototype versions of some of the boot stages, now only used for testing:

  • [sw/device/boot_rom]({{< relref “sw/device/boot_rom/README.md” >}}) is a previous, testing-only version of the Mask ROM.
  • sw/device/exts contains software for our prototype second boot stage images.

Documentation Index

{{% sectionContent %}}