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 section for exceptions)
m (whoops, should've done a full page edit)
 
(3 intermediate revisions by 3 users not shown)
Line 2: Line 2:
 
This is a very interesting piece of hardware, as it basically does everything that makes a Wii different from a GameCube.
 
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.
+
The Starlet contains an internal 96KB 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!''
 
''Note: this page is incomplete. Please expand it as you see fit!''
Line 23: Line 23:
 
| 0
 
| 0
 
| v_reset
 
| v_reset
| Hardware reset
+
| Hardware reset. Typically the entrypoint for official software.
 
|-
 
|-
 
| 1
 
| 1
 
| v_undf
 
| v_undf
| Undefined instruction
+
| Undefined instruction, used as handler for [[IOS/Syscalls|IOS syscalls]]
 
|-
 
|-
 
| 2
 
| 2
 
| v_swi
 
| v_swi
| ?
+
| SVC/SWI instruction, used for [[IOS/Syscalls#Syscalls_.28via_ARM_syscall_instruction.29|IOS SWI syscalls]]
 
|-
 
|-
 
| 3
 
| 3
Line 43: Line 43:
 
| 5
 
| 5
 
| v_reserved
 
| v_reserved
| ?
+
| Reserved
 
|-
 
|-
 
| 6
 
| 6
Line 59: Line 59:
  
 
*Starlet boots from an internal Mask ROM, BOOT0 (about 1300 bytes of code out of 4K possible)
 
*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)
+
*[[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
+
*[[boot1]] locates, loads, decrypts, verifies, and runs BOOT2
*[[boot2]] bootstrap then loads the embedded ELF file
 
 
*[[boot2]] starts the IOS
 
*[[boot2]] starts the IOS
*[[IOS]] loads code into the EXI buffer and bootstraps the {{hw|Broadway}}
+
*[[IOS]] loads [[System Menu]] into memory and bootstraps the {{hw|Broadway}} using the [[Hardware/External_Interface#EXI_boot_vector|EXI boot vector]]
  
 
== Links ==
 
== Links ==

Latest revision as of 08:13, 27 September 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 96KB 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. 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
3 v_instr_abrt Instruction abort
4 v_data_abrt Data abort
5 v_reserved 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 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

Links

More information about the Starlet: