The Hollywood includes an ARM9 core to handle I/O and security, nicknamed the Starlet by fail0verflow, but internally known as the IOP, short for Input/Output Processor. This is a very interesting piece of hardware, as it basically does everything that makes a Wii different from a GameCube.
Note: this page is incomplete. Please expand it as you see fit!
- NEC ARM926EJ-S SoC. See also ChipWorks.
- Big endian for compatibility with the Broadway
- ARM and thumb instruction set
- Clocked at 243MHz (Hollywood clock)
Exception vectors are located at
ffff0000. Each exception is given 4 bytes, and usually branches elsewhere.
|0||v_reset||Hardware reset. Typically the entrypoint for official software.|
|1||v_undf||Undefined instruction, used as handler for IOS syscalls|
|2||v_swi||SVC/SWI instruction, used for IOS SWI syscalls|
- See also: boot process
Starlet is the first processor to run code in the Wii.
- Starlet boots from an internal Mask ROM, BOOT0 (about 1300 bytes of code out of 4K possible)
- boot0 decrypts, verifies, and runs the first few blocks of NAND, BOOT1 (up to the first 47 pages of flash)
- boot1 locates, loads, decrypts, verifies, and runs BOOT2
- boot2 starts the IOS
- IOS loads System Menu into memory and bootstraps the Broadway using the EXI boot vector
More information about the Starlet:
- ARM926EJ-S Technical Reference Manual - CPU, MMU, Cache specs and programmer's interface
- ARM9EJ-S Technical Reference Manual - CPU specs and programmer's interface
- ARM Architecture Reference Manual - Documentation about the ARMv5 architecture.
- IOS - the OS that runs on the Starlet and handles calls from the Broadway during game execution and while in the system menu.
- ARM Binaries - the formats used for Starlet executable code
- WAD Files are used for BOOT2 and the IOS
- Patent for Starlet and IOS