Line 5: |
Line 5: |
| On Nintendo consoles, '''eFuse'''s are used as irreversible data storage for keeping values which are set while the chip is being manufactured and will never be updated again. They are mostly used to store information which is sensitive and cannot be changed for security purposes. | | On Nintendo consoles, '''eFuse'''s are used as irreversible data storage for keeping values which are set while the chip is being manufactured and will never be updated again. They are mostly used to store information which is sensitive and cannot be changed for security purposes. |
| | | |
− | == Wii == | + | ==Wii== |
| <span style="background: #F1EBEB; border: 2px #CACACA solid; padding: 2px 1px 2px 4px;"> | | <span style="background: #F1EBEB; border: 2px #CACACA solid; padding: 2px 1px 2px 4px;"> |
| [[File:Wii.png |30px]] This topic has a Wiibrew article. For more information, check [https://wiibrew.org/wiki/Hardware/OTP here].</span> | | [[File:Wii.png |30px]] This topic has a Wiibrew article. For more information, check [https://wiibrew.org/wiki/Hardware/OTP here].</span> |
Line 25: |
Line 25: |
| Retail consoles typically have everything disabled except for trace, resulting in a byte value of 0x07. | | Retail consoles typically have everything disabled except for trace, resulting in a byte value of 0x07. |
| | | |
− | An [[NDEV]] 2.1 prototype was observed to have everything enabled except for debug boot, resulting in a byte value of 0x04. It is unknown if this value is used in other NDEV revisions or other development consoles.
| + | [[boot0]] checks the integrity of boot1 by ensuring that it matches the hash stored in eFuses, but it will skip verification if the hash is blank.<ref>[[unsorted.7z]]/d1/routefree/ng/depot/sw/rvl/boot/boot0/bootc.c - loop at line 458 enables verification only if the hash is not blank</ref> |
− | | |
− | All NDEVs have a blank [[boot1]] hash in their eFuses. This makes boot1 updateable on NDEVs, and in theory it could be replaced with homebrew as there is no other verification. [[boot0]] checks the integrity of boot1 by ensuring that it matches the hash stored in eFuses, but it will skip verification if the hash is blank.<ref>[[unsorted.7z]]/d1/routefree/ng/depot/sw/rvl/boot/boot0/bootc.c - loop at line 458 enables verification only if the hash is not blank</ref>
| |
| | | |
| The Wii's eFuses are normally programmed (or "cut") during production of the Hollywood package. They cannot be programmed afterwards on most systems, as the only mechanism to do so is through the JTAG, which is locked out by the eFuses on retail consoles.<ref>[[emeralds.7z]]/052306/doc/hw/chip/vegas_datasheet.doc - pg 20</ref><ref>[[emeralds.7z]]/052306/hw/sys/jtag/jtag_bfm.v - has code to cut an eFuse at line 655</ref> | | The Wii's eFuses are normally programmed (or "cut") during production of the Hollywood package. They cannot be programmed afterwards on most systems, as the only mechanism to do so is through the JTAG, which is locked out by the eFuses on retail consoles.<ref>[[emeralds.7z]]/052306/doc/hw/chip/vegas_datasheet.doc - pg 20</ref><ref>[[emeralds.7z]]/052306/hw/sys/jtag/jtag_bfm.v - has code to cut an eFuse at line 655</ref> |
Line 36: |
Line 34: |
| | | |
| [[Category:Hardware]] | | [[Category:Hardware]] |
| + | <references /> |