Wii U Hardware/Starbuck

From Wii-Linux Wiki
Jump to navigation Jump to search

The Starbuck is an NEC ARM926EJ-S (similar to the Wii's Starlet) inside of the Latte SoC of the Wii U. It is a small ARM9 chip that handles many features of the Wii U. It's internally known as the IOP, or I/O Processor. It handles security, many features of the Wii U, and booting the console. It is the first processor to turn on when the power button is pressed. A simplified version of the boot process is listed here for completion sake, as it relates to the Starbuck. A more in depth explanation can be found on WiiBrew.

  • boot0 is stored in mask ROM, loads boot1 from NAND and verifies its hash
  • boot1 is stored in NAND, and loads IOSU from NAND and verifies its signature
  • IOSU starts, loads the CafeOS kernel into memory, and enables Espresso
  • The Espresso Boot ROM starts, it validates the CafeOS kernel
  • The CafeOS kernel starts

Starbuck locks down the AHBPROT feature, much like Starlet does.

A notable difference compared to Starlet, is that IOSU generally stays resident indefinitely once the console is turned on. It also doesn't generally reset Espresso into other apps like IOS did with Broadway, since Espresso now runs a real permanently-resident kernel (CafeOS), running apps in userspace.