In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Difference between revisions of "Hardware/Starlet"

From WiiBrew
Jump to navigation Jump to search
(Added patent from OTP page)
(added section for exceptions)
Line 12: Line 12:
 
* ARM and thumb instruction set
 
* ARM and thumb instruction set
 
* Clocked at 243MHz (Hollywood clock)
 
* Clocked at 243MHz (Hollywood clock)
 +
 +
== Exceptions ==
 +
Exception vectors are located at <code>ffff0000</code>. Each exception is given 4 bytes, and usually branches elsewhere.
 +
 +
{| class="wikitable"
 +
! Index
 +
! [[mini]] name
 +
! Description
 +
|-
 +
| 0
 +
| v_reset
 +
| Hardware reset
 +
|-
 +
| 1
 +
| v_undf
 +
| Undefined instruction
 +
|-
 +
| 2
 +
| v_swi
 +
| ?
 +
|-
 +
| 3
 +
| v_instr_abrt
 +
| Instruction abort
 +
|-
 +
| 4
 +
| v_data_abrt
 +
| Data abort
 +
|-
 +
| 5
 +
| v_reserved
 +
| ?
 +
|-
 +
| 6
 +
| v_irq
 +
| [[Hollywood/IRQs|IRQ]]
 +
|-
 +
| 7
 +
| v_fiq
 +
| FIQ
 +
|}
  
 
== Boot ==
 
== Boot ==

Revision as of 08:50, 8 April 2022

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.

The Starlet contains an internal 24MB SRAM; if IOS needs more memory, it can lock part of MEM2 to prevent Broadway access.

Note: this page is incomplete. Please expand it as you see fit!

Specs

  • NEC ARM926EJ-S SoC. See also ChipWorks.
  • Big endian for compatibility with the Broadway
  • ARM and thumb instruction set
  • Clocked at 243MHz (Hollywood clock)

Exceptions

Exception vectors are located at ffff0000. Each exception is given 4 bytes, and usually branches elsewhere.

Index mini name Description
0 v_reset Hardware reset
1 v_undf Undefined instruction
2 v_swi ?
3 v_instr_abrt Instruction abort
4 v_data_abrt Data abort
5 v_reserved ?
6 v_irq IRQ
7 v_fiq FIQ

Boot

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 48 pages of flash)
  • boot1 locates, loads, decrypts, verifies, and runs BOOT2
  • boot2 bootstrap then loads the embedded ELF file
  • boot2 starts the IOS
  • IOS loads code into the EXI buffer and bootstraps the Broadway

Links

More information about the Starlet: