In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Changes

Jump to navigation Jump to search
34 bytes added ,  01:17, 13 April 2021
m
Small cleanup
Line 1: Line 1:  
{{lowercase title}}
 
{{lowercase title}}
   −
boot0 is the first-stage bootloader in the [[Starlet]] ARM core on board the [[Hollywood]]; it's contained in 4K of Mask ROM (only 1.5K of which is actually used).
+
'''boot0''' is the first-stage bootloader of the [[Starlet]] ARM core on board the [[Hollywood]]; it's contained in 4K of Mask ROM (only 1.5K of which is actually used).
   −
It contains code to read the first 48 pages of the attached [[Hardware/NAND|NAND flash]], decrypt them with a fixed AES key, hash them with {{hw|SHA-1 Engine}}, and compare the hash with a value read from {{hw|OTP}} memory. If the hashes do not match. The system will refuse to boot. If the hash in OTP is all zeroes. Then the system will always boot -- this is true of development consoles and probably also during the manufacturing process. For more discussion on this subject, see [http://hackmii.com/2008/05/boot0/ bushing's HackMii post].
+
It contains code to read the first 48 pages of the attached [[Hardware/NAND|NAND flash]], decrypt them with a fixed AES key, hash them with {{hw|SHA-1 Engine}}, and compare the hash with a value read from {{hw|OTP}} memory. If the hashes do not match, the system will refuse to boot. However, if the hash in OTP is all zeroes, then the system will always boot this is true of development consoles and probably also during the manufacturing process. For more discussion on this subject, see [http://hackmii.com/2008/05/boot0/ bushing's HackMii post].
    
The division between boot0/boot1 allows the RSA signature verification to be done using trusted code loaded from flash. It would not have fit into the 4K of space available. It is coded in a mixture of C and assembly.
 
The division between boot0/boot1 allows the RSA signature verification to be done using trusted code loaded from flash. It would not have fit into the 4K of space available. It is coded in a mixture of C and assembly.
 +
 +
== boot0 dump ==
    
           ; reset vectors
 
           ; reset vectors
5,579

edits

Navigation menu