Difference between revisions of "Hardware/Starlet"
< Hardware
Jump to navigation
Jump to search
Hallowizer (talk | contribs) (Added patent from OTP page) |
Hallowizer (talk | contribs) (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:
- 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