The code components involved in the Wii's boot process are, in order:
- boot0 A mask rom, run by the Starlet
- boot1 Lives in a modifiable area of the NAND but cannot be changed due to its hash being stored in the OTP. Run by the Starlet.
- boot2 A modifiable area of Flash, signature checked by Boot1, Run by the Starlet. it writes to nand what state the wii is in and starts the system menu IOS
- IOS sees its being booted thanks to the writes of boot2 and starts the System Menu title (00000001/00000002).
- System Menu / System Menu's IOS The System Menu is the first visible user interface since it is the first code running on the PowerPC. It has higher access privileges compared to games (e.g. it can read and write to every savegame). Its signature is only checked upon installation. boot2 only makes sure that the HMAC signatures on the NAND's filesystem are valid.