# Test Boot ROM

The Boot ROM is a **testing-only** device image.
The [ROM](https://docs.opentitan.org/sw/device/silicon_creator/rom/docs/) is the reference implementation of the OpenTitan Secure Boot specification.

The boot ROM is always the first piece of code run in the system.
At the moment, it serves 2 functions:

* Bootstrap additional code if requested.
* Jump to embedded flash and begin execution.

## Bootstrap Overview

The boot ROM bootstrap function differs between Verilator, DV and FPGA.

In DV and in Verilator, embedded flash code can be backdoor loaded.
So, for most of the tests, the run times can be sped up by bypassing the code load.
However, both do support the bootstrap function and can be used similarly to the FPGA in loading code.
In DV, a subset of tests will indeed exercise the the bootstrap code paths since it is a system level usecase.

In FPGA, bootstrap is required and requested by an external host via GPIO.
Bootstrap can be requested by driving TAP\_STRAP0 (USB\_A18) and TAP\_STRAP1 (USB\_A19) to 0 and 1, respectively, and presenting strong pull-ups on all SW\_STRAP* pins (USB\_A15, USB\_A16, and USB\_A17).
If bootstrap is requested, the boot ROM initializes the SPI interface and flash controller.
OpenTitan uses a SPI Flash based bootstrap protocol and can be programmed using the `opentitantool`.

## Puppeteer Boot Rom

`Puppeteer` is a debug-only bootrom used to remotely control the Shodan hardware over a UART or similar byte-oriented port.
