You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This adds a personalized prodc OTP image with SPX+ sigverify enabled for
the purposes of splicing the latest cached bitstreams with this OTP
image for validating owner firmware payloads.
Additionally this adds instructions to the website to explain how to use
the `universal_splice` Bazel target to splice custom bitstreams.
Signed-off-by: Tim Trippel <[email protected]>
Copy file name to clipboardExpand all lines: doc/getting_started/setup_fpga.md
+26-3Lines changed: 26 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,7 +26,7 @@ export BOARD=cw340
26
26
```
27
27
### Download a Pre-built Bitstream
28
28
29
-
If you are using the ChipWhisperer CW340 board with the Xilinx XCKU095-1FFVA1156C Kintex UltraScale or the CW310 board with the Xilinx Kintex 7 XC7K410T FPGA, you can download the latest passing [pre-built bitstream](https://storage.googleapis.com/opentitan-bitstreams/master/bitstream-latest.tar.gz).
29
+
If you are using the ChipWhisperer CW340 board with the Xilinx XCKU095-1FFVA1156C Kintex UltraScale or the CW310 board with the Xilinx Kintex 7 XC7K410T FPGA, you can download the latest passing [pre-built bitstream](https://storage.googleapis.com/opentitan-bitstreams/master/bitstream-latest.tar.gz) from our public bistream cache GCS bucket.
30
30
31
31
For example, to download and unpack the bitstream, run the following:
#### Splicing a different ROM or OTP into a Cached Bitstream
61
+
62
+
As mentioned above, the default bitstreams cached in our public GCS bucket are built with a test version of the boot ROM and a minimally configured OTP image.
63
+
If you desire a bitstream with _only_ a different combination of ROM / OTP images (say if you want to build and splice in the production mask ROM), you can do so without rebuilding the entire bitstream from scratch.
64
+
Specifically, you can build the [`//hw/bitstream/universal:splice`](https://github.com/lowRISC/opentitan/blob/e439226b6c5314be12ccf5cc055f2d4b8149d0ab/hw/bitstream/universal/BUILD#L30) Bazel target and specify any combination of:
65
+
1. ROM image (using the `--//hw/bitstream/universal:rom=<ROM image Bazel target>` label flag),
1.`exec_env` (using the `--//hw/bitstream/universal:env=<exec_env Bazel target>` label flag; `exec_env`s define a collection of ROM, OTP, and base bitstream targets to use).
68
+
69
+
For example, to splice a CW310 bitstream with the mask ROM image and a specific OTP image, you can run
>**Note**: Splicing bitstreams will require the (free) Lab Edition of Vivado to be installed on your system, described [here](./install_vivado/README.md).
78
+
>General software development on the FPGA requires this as well, since bitstreams will be spliced locally by Bazel during test builds.
79
+
80
+
#### From Scratch
81
+
82
+
If you would like to synthesize a bitstream from scratch (e.g., to test a new RTL change), you can synthesize one locally.
59
83
Synthesizing a design for an FPGA board is simple with Bazel.
60
84
While Bazel is the entry point for kicking off the FPGA synthesis, under the hood, it invokes FuseSoC, the hardware package manager / build system supported by OpenTitan.
61
85
During the build process, the boot ROM is baked into the bitstream.
>**Note**: Building these bitstreams will require Vivado be installed on your system, with access to the proper licenses, described [here](./install_vivado/README.md).
77
-
>For general software development on the FPGA, Vivado must still be installed, but the Lab Edition is sufficient.
100
+
>**Note**: Building these bitstreams will require Vivado to be installed on your system, with access to the proper (paid) licenses, described [here](./install_vivado/README.md).
0 commit comments