Fuses for OEM Field Ratcheting
|
Fuse Ownership |
Fuse Name |
Bits |
|---|---|---|
|
NV Owned |
N/A |
N/A |
|
OEM Owned (Field) |
fuse_system_fw_field_ratchet0[31:0] |
32 Bits |
|
fuse_system_fw_field_ratchet1[31:0] |
32 Bits |
|
|
fuse_system_fw_field_ratchet2[31:0] |
32 Bits |
|
|
fuse_system_fw_field_ratchet3[31:0] |
32 Bits |
Passing Ratchet Status to Guest OSes
Ratchet fuse burning status is passed to guest OS via the kernel device tree. There are
separate nodes for MB1, MTS, and MB1-BCT at the following location under the
/proc interface.
/proc/device-tree/chosen/ratchet-status
Each node has two fields: status and error.
- "error" has the appropriate ratchet error value.
- "status" can have following status strings:
|
Ratcheting Status |
Description |
|---|---|
|
not_tried |
Default status. Ratchet check path is skipped. |
|
skipped_a |
Active Boot Chain firmware ratchet matches with HW fuses. |
|
skipped_b |
Inactive Boot Chain firmware ratchet matches with HW fuses. |
|
updated |
Ratchet fuses are successfully updated with SW ratchet value. |
|
failed |
Ratchet fuse update(burning) failed. |
|
no_option |
Ratchet update check skipped as Opt-in fuse is not set by OEM |
Lock Fuse Burning
If the SecurityMode fuse is burned, the quickboot locks fuse burning at the end of ratchet handling before kernel handoff to prevent malicious over-ratcheting.
Set bit #0 of register FUSE_DISABLEREGPROGRAM_0.