Line 3:
Line 3:
'''boot1''' is the second stage loader for the Wii. It is loaded by [[boot0]], which is stored inside a Mask ROM inside the [[Hollywood]]. boot1 is contained inside the first block of [[NAND]] flash and encrypted with a key stored in the Mask ROM as part of boot0. As part of the [[boot process]], boot0 will decrypt and hash boot1, and then compare it to a SHA1 hash stored in on-die OTP memory; if they do not match, then boot1 will not be executed. This means that any attempt to modify boot1 on a retail Wii will cause it to fail to boot.
'''boot1''' is the second stage loader for the Wii. It is loaded by [[boot0]], which is stored inside a Mask ROM inside the [[Hollywood]]. boot1 is contained inside the first block of [[NAND]] flash and encrypted with a key stored in the Mask ROM as part of boot0. As part of the [[boot process]], boot0 will decrypt and hash boot1, and then compare it to a SHA1 hash stored in on-die OTP memory; if they do not match, then boot1 will not be executed. This means that any attempt to modify boot1 on a retail Wii will cause it to fail to boot.
−
There is a hard limit on the size of boot1: 48 pages of 2K each, or 96K. Of that, approximately 17K is actually used.
+
There is a hard limit on the size of boot1: 47 pages of 2K each, or 94K. Of that, approximately 17K is actually used.
boot1 runs entirely out of on-die SRAM and performs initialization of the external DDR3 memory. It then loads [[boot2]] (from a special partition in NAND), decrypts it and performs an RSA verification on it. Splitting the first part of the bootloader into boot0 and boot1 allows Nintendo to change RAM chips and also to fix bugs in RSA verification without respinning the Starlet core; at least 5 known versions of boot1 exist, most of which only differ in small ways in the DDR3 initialization code.
boot1 runs entirely out of on-die SRAM and performs initialization of the external DDR3 memory. It then loads [[boot2]] (from a special partition in NAND), decrypts it and performs an RSA verification on it. Splitting the first part of the bootloader into boot0 and boot1 allows Nintendo to change RAM chips and also to fix bugs in RSA verification without respinning the Starlet core; at least 5 known versions of boot1 exist, most of which only differ in small ways in the DDR3 initialization code.