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
[doc] Replace old snippets & pkgmrg_cmd shortcodes
The 'snippets' shortcode can be replaced with mdbook's built in #include
pre-processor.
The 'pkgmgr_cmd' shortcode is only used once
and can be replaced with a command that doesn't need to change
when `apt_requirements.txt` is updated.
`util/rewrite_frontmatter.py` can be removed
because it won't be needed again.
Signed-off-by: Amaury Pouly <[email protected]>
Co-authored-by: Hugo McNally <[email protected]>
Signals marked with an asterisk (Y\*) are only asserted under certain conditions as explained in detail below.
157
157
@@ -232,7 +232,7 @@ For details on the clock switch, please see [clkmgr](../clkmgr/README.md#life-cy
232
232
233
233
The individual signals summarized in the table below are described in the following subsections.
234
234
235
-
{{< snippet "lc_ctrl_access_signals_table.md" >}}
235
+
{{#include doc/lc_ctrl_access_signals_table.md}}
236
236
237
237
Signals marked with an asterisk (Y\*) are only asserted under certain conditions as explained in detail below.
238
238
@@ -267,7 +267,7 @@ The following is a list of all life cycle related collateral stored in OTP.
267
267
Most collateral also contain associated metadata to indicate when the collateral is restricted from further software access, see [accessibility summary](#otp-accessibility-summary-and-impact-of-provision_en) for more details.
268
268
Since not all collateral is consumed by the life cycle controller, the consuming agent is also shown.
269
269
270
-
{{< snippet "lc_ctrl_otp_collateral.md" >}}
270
+
{{#include doc/lc_ctrl_otp_collateral.md}}
271
271
272
272
The TOKENs and KEYS are considered secret data and are stored in [wrapped format](#conditional-transitions).
273
273
Before use, the secrets are unwrapped.
@@ -313,7 +313,7 @@ These are
313
313
314
314
The table below summarizes the software accessibility of all life cycle collateral.
315
315
316
-
{{< snippet "lc_ctrl_otp_accessibility.md" >}}
316
+
{{#include doc/lc_ctrl_otp_accessibility.md}}
317
317
318
318
Note that CREATOR_SEED_SW_RW_EN is set to OFF if SECRET2_DIGEST has a nonzero value in PROD, PROD_END and DEV states.
319
319
SEED_HW_RD_EN only becomes active if SECRET2_DIGEST has a nonzero value in DEV, PROD, PROD_END and RMA states.
@@ -325,11 +325,11 @@ As it pertains to life cycle, the flash contains two sets of important collatera
325
325
They are enumerated in the table below.
326
326
Just as with OTP, the consumer and usage of each is also described.
327
327
328
-
{{< snippet "lc_ctrl_flash_collateral.md" >}}
328
+
{{#include doc/lc_ctrl_flash_collateral.md}}
329
329
330
330
Each collateral belongs to a separate flash partition, the table below enumerates the partition and whether the partition is memory mapped.
331
331
332
-
{{< snippet "lc_ctrl_flash_partitions.md" >}}
332
+
{{#include doc/lc_ctrl_flash_partitions.md}}
333
333
334
334
The general flash partition refers to any software managed storage in flash, and is not a specific carve out in the non-memory mapped area.
335
335
@@ -342,7 +342,7 @@ It is expected that ROM_ext during secure boot programs the protection correctly
342
342
The CREATOR_DATA partitions however, are further qualified based on the personalization state of the device.
343
343
Just as with OTP, the table below enumerates accessibility of flash collateral.
344
344
345
-
{{< snippet "lc_ctrl_flash_accessibility.md" >}}
345
+
{{#include doc/lc_ctrl_flash_accessibility.md}}
346
346
347
347
Note that CREATOR_SEED_SW_RW_EN is set to OFF if SECRET2_DIGEST has a nonzero value in PROD, PROD_END and DEV states.
348
348
SEED_HW_RD_EN only becomes active if SECRET2_DIGEST has a nonzero value in DEV, PROD, PROD_END and RMA states.
@@ -503,7 +503,7 @@ See [pinmux documentation](../pinmux/README.md#strap-sampling-and-tap-isolation)
503
503
The encoding of the life-cycle state is used both for OTP storage and as part of the FSM state in the life cycle controller.
504
504
In other words the state stored within OTP is not re-encoded before it is consumed as part of the life cycle controller FSM state.
505
505
506
-
{{< snippet "lc_ctrl_encoding_table.md" >}}
506
+
{{#include doc/lc_ctrl_encoding_table.md}}
507
507
508
508
Any decoding that does not fall into the table above is considered **INVALID**.
509
509
@@ -537,7 +537,7 @@ The second readout pass uses a linearly increasing address sequence, whereas the
537
537
The life cycle transition counter has 24 strokes where each stroke maps to one 16bit OTP word.
538
538
The strokes are similarly encoded as the life cycle state in the sense that upon the first transition attempt, all words are initialized with unique Cx values that can later be overwritten with unique Dx values without producing an ECC error.
539
539
540
-
{{< snippet "lc_ctrl_counter_table.md" >}}
540
+
{{#include doc/lc_ctrl_counter_table.md}}
541
541
542
542
Upon each life cycle transition attempt, the life cycle controller **FIRST** increments the transition counter before initiating any token hashing and comparison operations.
Copy file name to clipboardExpand all lines: hw/ip/otp_ctrl/README.md
+3-3
Original file line number
Diff line number
Diff line change
@@ -103,7 +103,7 @@ Thus the security of both volatile (OTP controller) and non-volatile (OTP IP) st
103
103
104
104
The OTP controller for OpenTitan contains the seven logical partitions shown below.
105
105
106
-
{{< snippet "otp_ctrl_partitions.md" >}}
106
+
{{#include doc/otp_ctrl_partitions.md}}
107
107
108
108
Generally speaking, the production life cycle of a device is split into 5 stages "Manufacturing" -> "Calibration and Testing" -> "Provisioning" -> "Mission" -> "RMA".
109
109
OTP values are usually programmed during "Calibration and Testing", "Provisioning" and "RMA" stages, as explained below.
@@ -928,14 +928,14 @@ Hence, a read access to those windows will take in the order of 10-20 cycles unt
928
928
929
929
Sizes below are specified in multiples of 32bit words.
930
930
931
-
{{< snippet "otp_ctrl_mmap.md" >}}
931
+
{{#include doc/otp_ctrl_mmap.md}}
932
932
933
933
Note that since the content in the SECRET* partitions are scrambled using a 64bit PRESENT cipher, read and write access through the DAI needs to occur at a 64bit granularity.
934
934
Also, all digests (no matter whether they are SW or HW digests) have an access granule of 64bit.
935
935
936
936
The table below lists digests locations, and the corresponding locked partitions.
937
937
938
-
{{< snippet "otp_ctrl_digests.md" >}}
938
+
{{#include doc/otp_ctrl_digests.md}}
939
939
940
940
Write access to the affected partition will be locked if the digest has a nonzero value.
0 commit comments