Difference between revisions of "Hardware/Starlet"

From WiiBrew
Jump to navigation Jump to search
(→‎Hardware: added thumb instructions)
(Added what IOP stands for, since the Starbuck on the Wii U is also known as IOP according to Wikipedia, and Wikipedia states that IOP is short for Input/Output Processor)
 
(23 intermediate revisions by 13 users not shown)
Line 1: Line 1:
The [[Hollywood]] includes an ARM9 core to handle I/O and security, nicknamed the '''Starlet'''.
+
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.
 
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!''
 
''Note: this page is incomplete. Please expand it as you see fit!''
  
== Hardware ==
+
== Specs ==
  
* NEC ARM SoC.   Might be [http://www.eu.necel.com/products/asic/4_system_on_chip/060_soc_smart/index.html this ARM946E core].  See also [http://www.chipworks.com/seamark.aspx?sm=s4%3BDatedfl14%3BDeviceCategory6%3BMemoryfl10%3BReportCode12%3BCAR-0703-201&cw=detail ChipWorks].
+
* NEC ARM926EJ-S SoC. See also [https://www.techinsights.com/products/nec-c10046f5-211-pn2-circuit-analysis-report ChipWorks].
 
* Big endian for compatibility with the Broadway
 
* Big endian for compatibility with the Broadway
* ARM thumb instructions
+
* ARM and thumb instruction set
* AES and SHA-1 hardware engines
+
* Clocked at 243MHz (Hollywood clock)
* 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 ==
 
== Boot ==
 +
{{Seealso|boot process}}
 
Starlet is the first processor to run code in the Wii.
 
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)
+
*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 48 pages of flash)
* BOOT1 locates, loads, decrypts, verifies, and runs BOOT2
+
* [[boot1]] locates, loads, decrypts, verifies, and runs BOOT2
* The BOOT2 bootstrap then loads the embedded ELF file.
+
*[[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}}
At some point, Starlet loads code into an EXI buffer and bootstraps Broadway.
 
  
 
== Links ==
 
== Links ==
 
More information about the Starlet:
 
More information about the Starlet:
  
 +
* [http://infocenter.arm.com/help/topic/com.arm.doc.ddi0198d/DDI0198_926_TRM.pdf ARM926EJ-S Technical Reference Manual] - CPU, MMU, Cache specs and programmer's interface
 +
* [https://web.archive.org/web/20050308211243/http://www.arm.com:80/pdfs/DDI0222B_9EJS_r1p2.pdf ARM9EJ-S Technical Reference Manual] - CPU specs and programmer's interface
 +
* [https://web.archive.org/web/20081221072959/http://www.arm.com/miscPDFs/14128.pdf 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.
 
* [[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
 
* [[ARM Binaries]] - the formats used for Starlet executable code
 
* [[WAD Files]] are used for BOOT2 and the IOS
 
* [[WAD Files]] are used for BOOT2 and the IOS
[[Category:Wii_Hardware]]
+
 
 +
[[Category:Hardware]]

Latest revision as of 01:11, 1 May 2021

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.

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)

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: