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
The old Hugo documentation would set IDs for Markdown headings using {#id}
syntax. Mdbook will assign IDs automatically from the heading text.
Signed-off-by: James Wainwright <[email protected]>
Copy file name to clipboardexpand all lines: doc/contributing/hw/comportability/README.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -163,7 +163,7 @@ By "care" an example would be to reset their value synchronously at a time after
163
163
164
164
Based upon this and the fact that much of the team history was with asynchronous active low reset, we chose that methodology with added requirements that special care be applied for security state, the details of which will come at a later date.
165
165
166
-
### Bus Interfaces {#bus-interfaces}
166
+
### Bus Interfaces
167
167
168
168
Peripherals can connect to the chip bus.
169
169
All peripherals are assumed to have registers, and are thus required to expose at least one device interface on the chip bus.
@@ -245,7 +245,7 @@ The connection between the modules are defined in the top-level configuration fi
245
245
246
246
See the section on [Inter Signal Handling](#inter-signal-handling) below for detailed data structure in the configuration file.
247
247
248
-
### Security countermeasures {#countermeasures}
248
+
### Security countermeasures
249
249
250
250
If this IP block is considered security-critical, it will probably have design features that try to mitigate against attacks like fault injection or side channel analysis.
251
251
These features can be loosely categorised and named with identifiers of the following form:
@@ -444,7 +444,7 @@ This is done with a list with key `countermeasures`.
444
444
Each item is a dictionary with keys `name` and `desc`.
445
445
The `desc` field is a human-readable description of the countermeasure.
446
446
The `name` field should be either of the form `ASSET.CM_TYPE` or `INSTANCE.ASSET.CM_TYPE`.
447
-
Here, `ASSET` and `CM_TYPE` should be one of the values given in the tables in the [Security countermeasures](#countermeasures) section.
447
+
Here, `ASSET` and `CM_TYPE` should be one of the values given in the tables in the [Security countermeasures](#security-countermeasures) section.
448
448
If specified, `INSTANCE` should name a submodule of the IP block holding the asset.
449
449
It can be used to disambiguate in situations such as where there are two different keys that are protected with different countermeasures.
Refer to the output of `riscv32-unknown-elf-objdump --help` for a full list of options.
302
302
303
-
## Troubleshooting {#troubleshooting}
303
+
## Troubleshooting
304
304
305
-
### Check CI {#troubleshooting-check-ci}
305
+
### Check CI
306
306
307
307
First, [check the GitHub repository](https://github.com/lowRISC/opentitan/commits/master) to make sure the CI check is succeeding for the commit you cloned.
308
308
If there's an issue with that commit (it would have a red "X" next to it), check out the most recent commit that passed CI (indicated by a green check mark).
309
309
We try to always keep the main branch healthy, but the project is in active development and we're not immune to temporary breaks.
310
310
311
-
### Debugging a failed verilator test {#troubleshooting-verilator-test-failure}
311
+
### Debugging a failed verilator test
312
312
313
313
If your `bazelisk.sh` build failed trying to run a test on Verilator, the first step is to see if you can build the chip simulation on its own:
Copy file name to clipboardexpand all lines: doc/security/specs/ownership_transfer/README.md
+6-6
Original file line number
Diff line number
Diff line change
@@ -54,7 +54,7 @@ They send it back in an `UNLOCKED_OWNERSHIP` state.
54
54
(This unlocking step is vital, although the Silicon Creator can endorse a new owner, they cannot unlock ownership for a device that is in a `LOCKED_OWNERSHIP` state.)
55
55
The Silicon Creator can later endorse the ownership transfer payload of whoever buys the device, without further involvement from the previous owner.
56
56
57
-
## Owner Keys {#owner-keys}
57
+
## Owner Keys
58
58
59
59
The following keys are provisioned as part of this flow.
60
60
@@ -104,7 +104,7 @@ Boot stages:
104
104
*`BL0`: Bootloader. Signed by the Silicon Owner.
105
105
*`KERNEL`: Signed by the Silicon Owner.
106
106
107
-
## Key Provisioning {#key-provisioning}
107
+
## Key Provisioning
108
108
109
109
As part of the Ownership Transfer flow, the Silicon Owner keys are endorsed
110
110
either by the Silicon Creator or by the Current Owner of the device. This is
@@ -290,7 +290,7 @@ However, there must be at least one mechanism available to perform ownership
290
290
transfer at manufacturing time using an implementation compatible with ATE[^2]
291
291
infrastructure.
292
292
293
-
### Unlock Ownership {#unlock-ownership}
293
+
### Unlock Ownership
294
294
295
295
This flow implements transition from `LOCKED_OWNERSHIP` to `UNLOCKED_OWNERSHIP` states. It
296
296
is used by the Silicon Owner to relinquish ownership of the device and enable
@@ -374,7 +374,7 @@ before propagating the result to the Host. The Host propagates the unlock result
374
374
to the Device Registry. The Device Registry may opt to remove the device from
375
375
its allow-list.
376
376
377
-
### Ownership Transfer {#ownership-transfer-device}
377
+
### Ownership Transfer
378
378
379
379
An ownership transfer command sent by a host to OpenTitan, is serviced by the
380
380
ROM extension (`ROM_EXT`) allowing the Silicon Owner to take ownership of the
@@ -525,7 +525,7 @@ Detailed steps:
525
525
shared memory region and triggers a reset to perform ownership transfer on
526
526
the next boot cycle.
527
527
7. The `ROM_EXT` executes the ownership transfer flow described in the
528
-
[Ownership Transfer](#ownership-transfer-device) section with the following
528
+
[Ownership Transfer](#ownership-transfer) section with the following
529
529
differences:
530
530
1. Flash erase and flash image stages are not executed.
531
531
2. The activate owner stage may be delayed and executed later depending on
@@ -545,7 +545,7 @@ implemented by storing the Silicon Owner BL0 verification keys in the `ROM_EXT`.
545
545
The `ROM_EXT` is thus not required to implement ownership transfer in this
546
546
configuration.
547
547
548
-
## Flash Layout {#flash-layout}
548
+
## Flash Layout
549
549
550
550
To simplify the implementation, the flash layout implements fixed offset and
551
551
size allocations for the `ROM_EXT` and the certificate storage regions. This
ROM is a region of read-only memory that cannot be updated at all after an OpenTitan device is manufactured.
@@ -40,7 +40,7 @@ On boot, the ROM code does the following:
40
40
5. Check the signature from the manifest against the digest and the selected Silicon Creator public key.
41
41
* Unlock flash execution, configure ePMP so that the `ROM_EXT` region is executable, and jump to the start of `ROM_EXT`.
42
42
43
-
## `ROM_EXT` {#rom-ext}
43
+
## `ROM_EXT`
44
44
45
45
The `ROM_EXT` ("ROM extension") stage is another region of read-only memory that is controlled by the Silicon Creator.
46
46
However, unlike the ROM, it *can* be updated after the device is manufactured, as long as the new version is signed by the Silicon Creator.
@@ -69,7 +69,7 @@ Once the code has jumped into the Silicon Owner code at BL0, secure boot in its
69
69
The Silicon Owner may choose to extend the secure boot process with multiple boot stages of their own; this will differ between device owners, while the stages described here are guaranteed by the Silicon Creator and will be shared by all OpenTitan implementations.
70
70
If any signature verification in the above process fails, or there is any kind of unexpected error, the device will fail to boot.
71
71
72
-
# Silicon Creator Keys {#silicon-creator-keys}
72
+
# Silicon Creator Keys
73
73
74
74
The Silicon Creator has multiple public keys.
75
75
This redundancy partially protects against the scenario in which one of the keys is compromised; any OpenTitan devices produced after the key is known to be compromised can mark the compromised key invalid, without requiring a full new ROM implementation.
@@ -129,7 +129,7 @@ The Silicon Owner can change during the lifetime of the device, but the Silicon
129
129
*`BL0`: Bootloader. Signed by the Silicon Owner.
130
130
*`Kernel`: Post-bootloader code. Signed by the Silicon Owner.
131
131
132
-
# Boot Policy {#boot-policy}
132
+
# Boot Policy
133
133
134
134
In order to provide a flexible boot mechanism the Boot Info page will store a
135
135
structure called the Boot Policy. The boot policy dictates the boot flow,
@@ -138,7 +138,7 @@ the ROM code to decide when to mark a `ROM_EXT` good or bad. The boot policy
138
138
also contains directions to `ROM_EXT` about which slot it loads silicon owner
139
139
code from. TODO(gdk): Expand on policy.
140
140
141
-
# Memory Layout {#memory-layout}
141
+
# Memory Layout
142
142
143
143
<imgsrc="flash_layout.svg"style="width: 800px;">
144
144
@@ -151,7 +151,7 @@ beginning of each physical flash bank. It is expected that a Silicon Owner might
151
151
arbitrarily reserve space at the end of each flash bank to use as additional
152
152
storage.
153
153
154
-
# Boot Services {#boot-services}
154
+
# Boot Services
155
155
156
156
Boot Services refers to the functionality stored inside of `ROM`/`ROM_EXT` that
157
157
can be controlled via specific messages passed between from Silicon Owner code
Copy file name to clipboardexpand all lines: hw/ip/edn/doc/theory_of_operation.md
+1-1
Original file line number
Diff line number
Diff line change
@@ -122,7 +122,7 @@ CSRNG application commands will be sent immediately.
122
122
Once these commands have completed, a status bit will be set.
123
123
At this point, firmware can later come and reconfigure the EDN block for a different mode of operation.
124
124
125
-
The recommended write sequence for the entire entropy system is one configuration write to ENTROPY_SRC, then CSRNG, and finally to EDN (also see [Module enable and disable](#enable-disable)).
125
+
The recommended write sequence for the entire entropy system is one configuration write to ENTROPY_SRC, then CSRNG, and finally to EDN (also see [Module enable and disable](./programmers_guide.md#module-enable-and-disable)).
0 commit comments