Skip to content

Conversation

@sameo
Copy link
Contributor

@sameo sameo commented Nov 28, 2025

This is a refresh of the OTP map for integrated OpenTitan designs, e.g.
Darjeeling:

  • Added SoC fuses partitions, to hold non-RoT but SoC specific fuse
    values. We define one partition for the Chip Probe (CP) manufacturing
    stage and one for the following Factory Testing (FT) stage.
  • Added a SCRATCH_FUSES partition as an unstructured, scratch partition
    for SW implementations to share.
  • Added RoT chicken bits, for controlling secure boot verification.
    Secure boot is enabled when those items are fused with a MuBi32 True
    value.
  • Added a HW_CFG2 partition for the SoC debug and manufacturing states.
    Moving those to their own dedicated partition allows for a more
    controlled locking of the other HW_CFG partitions, as the parts move
    through the manufacturing stages.
  • Added documentation for all OTP items.
  • Updated the alert configuration items.
  • Moved the RoT certificate and its MAC into a dedicated partition so
    that the RoT owner authentication slot can be locked as soon as all
    keys are provisioned (i.e. before personalization even starts).
  • Removed all flash related items.
  • Removed all Earlgrey specific items.

Fixes #28447

@sameo sameo requested review from a team and cfrantz as code owners November 28, 2025 06:12
@sameo sameo requested review from Razer6, pamaury and rswarbrick and removed request for a team November 28, 2025 06:12
@andreaskurth andreaskurth self-requested a review December 1, 2025 10:24
sameo added 4 commits December 1, 2025 11:58
We may want to define unsized but absorbent items within a partition,
similar to how absorbent partitions behave within an OTP map.

When not all reserved bits within a partition are allocated, the
unallocated ones will be equally distributed between all absorbent items
within that partition.

Signed-off-by: Samuel Ortiz <[email protected]>
Integrated OpenTitan allows for defining multiple key roles. A key role
defines what kind of asset a specific key should sign.

Key manifest bundles in external flash and OTP authentication slots can
hold multiple keys, each bound to a specific role. At a minimum, OT
slots must hold a ownership transfer key and a key manifest one. The
former is required for handling ownership transfer operation from a
bootstrapped firmware while the latter allows for verifying all other
keys made available from a signed key manifest bundle.

Signed-off-by: Samuel Ortiz <[email protected]>
This is a refresh of the OTP map for integrated OpenTitan designs, e.g.
Darjeeling:

- Added SoC fuses partitions, to hold non-RoT but SoC specific fuse
  values. We define one partition for the Chip Probe (CP) manufacturing
  stage and one for the following Factory Testing (FT) stage.
- Added a SCRATCH_FUSES partition as an unstructured, scratch partition
  for SW implementations to share.
- Added RoT chicken bits, for controlling secure boot verification.
  Secure boot is enabled when those items are fused with a MuBi32 True
  value.
- Added a HW_CFG2 partition for the SoC debug and manufacturing states.
  Moving those to their own dedicated partition allows for a more
  controlled locking of the other HW_CFG partitions, as the parts move
  through the manufacturing stages.
- Added documentation for all OTP items.
- Updated the alert configuration items.
- Moved the RoT certificate and its MAC into a dedicated partition so
  that the RoT owner authentication slot can be locked as soon as all
  keys are provisioned (i.e. before personalization even starts).
- Removed all flash related items.
- Removed all Earlgrey specific items.

Fixes lowRISC#28447

Signed-off-by: Samuel Ortiz <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[top_darjeeling] OTP map refresh

1 participant