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
Currently, the perso firmware remains executable even after personalization is complete. The Perso firmware lacks an embedded immutable ROM extension, despite having a valid signature. If the immutable ROM extension feature is enabled and the corresponding hash is provisioned, running perso again may result in ROM self-shutdown due to an invalid immutable ROM extension hash. Consequently, ROM will not attempt to boot from an alternative slot, eliminating the possibility of booting into a valid ROM extension under these circumstances. This situation renders the device bricked until another image is bootstrapped. To mitigate this, we propose binding the creator manufacturing state within usage constraints, ensuring the perso firmware's signature is invalidated once the device is fully personalized. More details described here
The goal is to implement the new FT flow below
Individualization:
a. Skip the provisioning of the immutable ROM extension OTP fields, CREATOR_SW_CFG_MANUF_STATE and OWNER_SW_CFG_ROM_KEYMGR_OTP_MEAS_EN,
Bootstrap with Perso + ROM_EXT bundle.
Personalization:
a. Configure the secret1 (flash scrambling seed) and part of SW_CFG regions.
b. Reboot and re-bootstrap (required when flash scrambling is enabled).
c. Personalize the device.
d. Fully provision the SW_CFG regions, including immutable ROM extension OTP fields and enabling ROM_KEYMGR_OTP_MEAS_EN.
e. Transitions the CREATOR_SW_CFG_MANUF_STATE to Personalized.
f. Write-lock both SW_CFG regions.
Reboot to ROM_EXT.
Tasks
Update the manuf lib to:
Move the provisioning of immutable ROM extension OTP fields, CREATOR_SW_CFG_MANUF_STATE and OWNER_SW_CFG_ROM_KEYMGR_OTP_MEAS_EN from FT individualization stage to the FT personalization stage
Update the bazel rules (potentially under //hw/ip/otp_ctrl/data) to:
Define two manufacturing state transitions: Initial -> Personalized.
Description
Currently, the perso firmware remains executable even after personalization is complete. The Perso firmware lacks an embedded immutable ROM extension, despite having a valid signature. If the immutable ROM extension feature is enabled and the corresponding hash is provisioned, running perso again may result in ROM self-shutdown due to an invalid immutable ROM extension hash. Consequently, ROM will not attempt to boot from an alternative slot, eliminating the possibility of booting into a valid ROM extension under these circumstances. This situation renders the device bricked until another image is bootstrapped. To mitigate this, we propose binding the creator manufacturing state within usage constraints, ensuring the perso firmware's signature is invalidated once the device is fully personalized. More details described here
The goal is to implement the new FT flow below
Individualization:
a. Skip the provisioning of the immutable ROM extension OTP fields, CREATOR_SW_CFG_MANUF_STATE and OWNER_SW_CFG_ROM_KEYMGR_OTP_MEAS_EN,
Bootstrap with Perso + ROM_EXT bundle.
Personalization:
a. Configure the secret1 (flash scrambling seed) and part of SW_CFG regions.
b. Reboot and re-bootstrap (required when flash scrambling is enabled).
c. Personalize the device.
d. Fully provision the SW_CFG regions, including immutable ROM extension OTP fields and enabling ROM_KEYMGR_OTP_MEAS_EN.
e. Transitions the CREATOR_SW_CFG_MANUF_STATE to
Personalized
.f. Write-lock both SW_CFG regions.
Reboot to ROM_EXT.
Tasks
CREATOR_SW_CFG_MANUF_STATE
andOWNER_SW_CFG_ROM_KEYMGR_OTP_MEAS_EN
from FT individualization stage to the FT personalization stage//hw/ip/otp_ctrl/data
) to:Initial
->Personalized
.OWNER_SW_CFG_ROM_KEYMGR_OTP_MEAS_EN
by default.Personalized
state during the build of perso.binding_value
field to pre-calculated OTP measurement on perso’s manifestselector_bits
(mapped tomanuf_state_creator
) field to 1 on perso/rom_ext's manifest.manuf_state_creator
field toInitial
on perso’s manifestmanuf_state_creator
field toPersonalized
on rom_ext's manifestThe text was updated successfully, but these errors were encountered: