Fuses: Difference between revisions
No edit summary |
No edit summary |
||
Line 594: | Line 594: | ||
| 0x7000F9B4 | | 0x7000F9B4 | ||
|- | |- | ||
| FUSE_ARM_JTAG_DIS | | [[#FUSE_ARM_JTAG_DIS|FUSE_ARM_JTAG_DIS]] | ||
| 0x7000F9B8 | | 0x7000F9B8 | ||
|- | |- | ||
Line 978: | Line 978: | ||
Stores the 160-bit private key (128 bit SBK + 32-bit device key). | Stores the 160-bit private key (128 bit SBK + 32-bit device key). | ||
Reads to these registers after | Reads to these registers after [[#FUSE_PRIVATEKEYDISABLE|FUSE_PRIVATEKEYDISABLE]] is set produce all-FF output. | ||
==== FUSE_ARM_JTAG_DIS ==== | |||
Controls access to the Arm JTAG interface. | |||
Production Erista and Mariko units have this value set to 0x1, while development Erista and Mariko units do not. | |||
==== FUSE_RESERVED_SW ==== | ==== FUSE_RESERVED_SW ==== | ||
Line 1,005: | Line 1,010: | ||
Stores software reserved configuration values. | Stores software reserved configuration values. | ||
Production Erista and Mariko units have the forced RCM two button mode set, while development Erista and Mariko units do not. | |||
Original Erista units have the RCM USB controller mode set to USB 2.0, while the first batch of patched Erista units have the RCM USB controller mode set to XUSB. | Original Erista units have the RCM USB controller mode set to USB 2.0, while the first batch of patched Erista units have the RCM USB controller mode set to XUSB. | ||
Line 1,150: | Line 1,157: | ||
==== FUSE_PKC_DISABLE ==== | ==== FUSE_PKC_DISABLE ==== | ||
Returns if public key crypto is used or not. | Returns if public key crypto is used or not. | ||
==== FUSE_ODM_INFO ==== | |||
{| class="wikitable" border="1" | |||
! Bits | |||
! Description | |||
|- | |||
| 0-7 | |||
| Reserved | |||
|- | |||
| 8 | |||
| Disable DBGEN | |||
|- | |||
| 9 | |||
| Disable NIDEN | |||
|- | |||
| 10 | |||
| Disable SPIDEN | |||
|- | |||
| 11 | |||
| Disable SPNIDEN | |||
|- | |||
| 12 | |||
| Disable DEVICEEN | |||
|} | |||
Production Erista and Mariko units have this value set to 0x1F00 (all signals disabled). | |||
Development Erista and Mariko units have this value set to 0x0000 (all signals enabled). | |||
==== FUSE_ECO_RESERVE_0 ==== | ==== FUSE_ECO_RESERVE_0 ==== | ||
Line 1,182: | Line 1,217: | ||
==== FUSE_SPARE_BIT_5 ==== | ==== FUSE_SPARE_BIT_5 ==== | ||
Must be non-zero on | Must be non-zero on production units, otherwise the first bootloader panics. | ||
On prototype units it can be zero, which tells the bootloader to choose from two pre-production master key seeds. If set to non-zero on a prototype unit, it tells the bootloader to choose from two master key seeds (with the second one being the same as the | On prototype units it can be zero, which tells the bootloader to choose from two pre-production master key seeds. If set to non-zero on a prototype unit, it tells the bootloader to choose from two master key seeds (with the second one being the same as the production master key seed). | ||
[4.0.0+] This value is no longer used during boot. | [4.0.0+] This value is no longer used during boot. | ||
Line 1,242: | Line 1,277: | ||
| 0x7000F8CC | | 0x7000F8CC | ||
|- | |- | ||
| FUSE_KEK00 | | [[#FUSE_KEK|FUSE_KEK00]] | ||
| 0x7000F8D0 | | 0x7000F8D0 | ||
|- | |- | ||
| FUSE_KEK01 | | [[#FUSE_KEK|FUSE_KEK01]] | ||
| 0x7000F8D4 | | 0x7000F8D4 | ||
|- | |- | ||
| FUSE_KEK02 | | [[#FUSE_KEK|FUSE_KEK02]] | ||
| 0x7000F8D8 | | 0x7000F8D8 | ||
|- | |- | ||
| FUSE_KEK03 | | [[#FUSE_KEK|FUSE_KEK03]] | ||
| 0x7000F8DC | | 0x7000F8DC | ||
|- | |- | ||
| FUSE_BEK00 | | [[#FUSE_BEK|FUSE_BEK00]] | ||
| 0x7000F8E0 | | 0x7000F8E0 | ||
|- | |- | ||
| FUSE_BEK01 | | [[#FUSE_BEK|FUSE_BEK01]] | ||
| 0x7000F8E4 | | 0x7000F8E4 | ||
|- | |- | ||
| FUSE_BEK02 | | [[#FUSE_BEK|FUSE_BEK02]] | ||
| 0x7000F8E8 | | 0x7000F8E8 | ||
|- | |- | ||
| FUSE_BEK03 | | [[#FUSE_BEK|FUSE_BEK03]] | ||
| 0x7000F8EC | | 0x7000F8EC | ||
|- | |- | ||
Line 1,803: | Line 1,838: | ||
| 0x7000FBF4 | | 0x7000FBF4 | ||
|} | |} | ||
==== FUSE_KEK ==== | |||
Stores the 128-bit KEK (Key Encryption Key) encrypted with the FEK (Fuse Encryption Key) selected by [[#FUSE_RESERVED_PRODUCTION|FUSE_RESERVED_PRODUCTION]] and [[#FUSE_BOOT_SECURITY_INFO|FUSE_BOOT_SECURITY_INFO]]. | |||
Reads to these registers after [[#FUSE_PRIVATEKEYDISABLE|FUSE_PRIVATEKEYDISABLE]] is set produce all-FF output. | |||
==== FUSE_BEK ==== | |||
Stores the 128-bit BEK (Boot Encryption Key) encrypted with the FEK (Fuse Encryption Key) selected by [[#FUSE_RESERVED_PRODUCTION|FUSE_RESERVED_PRODUCTION]] and [[#FUSE_BOOT_SECURITY_INFO|FUSE_BOOT_SECURITY_INFO]]. | |||
Reads to these registers after [[#FUSE_PRIVATEKEYDISABLE|FUSE_PRIVATEKEYDISABLE]] is set produce all-FF output. | |||
==== FUSE_RESERVED_PRODUCTION ==== | ==== FUSE_RESERVED_PRODUCTION ==== | ||
Line 1,808: | Line 1,853: | ||
! Bits | ! Bits | ||
! Description | ! Description | ||
|- | |||
| 0-1 | |||
| Reserved | |||
|- | |- | ||
| 2 | | 2 | ||
Line 1,848: | Line 1,896: | ||
Stores configuration values for the new boot security mechanism. | Stores configuration values for the new boot security mechanism. | ||
Mariko units have authentication set to PKC_RSA, encryption enabled, fuse encryption enabled and fuse encryption select set to OEM_KEY_0 (development) or OEM_KEY_1 ( | Mariko units have authentication set to PKC_RSA, encryption enabled, fuse encryption enabled and fuse encryption select set to OEM_KEY_0 (development units) or OEM_KEY_1 (production units). | ||
= Bitmap = | = Bitmap = | ||
Line 3,595: | Line 3,643: | ||
|- | |- | ||
! System version | ! System version | ||
! Expected number of burnt fuses ( | ! Expected number of burnt fuses (production) | ||
! Expected number of burnt fuses ( | ! Expected number of burnt fuses (development) | ||
|- | |- | ||
| 1.0.0 | | 1.0.0 |