Hardware/Starlet

From WiiBrew
< Hardware
Jump to navigation Jump to search

The Hollywood includes an ARM9 core to handle I/O and security, nicknamed the Starlet. 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!

Hardware

  • NEC ARM SoC. Might be this ARM946E core. See also ChipWorks.
  • Big endian for compatibility with the Broadway
  • AES and SHA-1 hardware engines
  • Boot ROM
  • OTP key/hash area

Starlet Register List

Tasks

The Starlet handles at least these tasks in the Wii

  • NAND access / filesystem
  • DVD subsystem
  • Authentication (RSA, EC, SHA1, HMAC-SHA1) and encryption/decryption (AES, RSA, EC)
  • USB HCD (generic USB interface), Keyboard driver, Ethernet driver
  • WiFi (both for networking and communication with Nintendo DS devices)
  • TCP/IP and UDP
  • SD card
  • GPIO (Sensor bar, drive LED, power LED, etc)
  • Audio/Video encoder (I2C) bus

Boot

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 48 pages of flash)
  • BOOT1 locates, loads, decrypts, verifies, and runs BOOT2
  • The BOOT2 bootstrap then loads the embedded ELF file.
  • BOOT2 starts the IOS.

At some point, Starlet loads code into an EXI buffer and bootstraps Broadway.

Links

More information about the Starlet:

  • 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