User:Hallowizer/Draft Factory64+
This article describes the process of how production Bollywood Wii consoles are set up at the factory, from initial manufacturing of the chips to retail shipment.
Basic Overview
- During hardware manufacturing, boot0 is imprinted into the Mask ROM inside the Hollywood/Bollywood.
- During initial programming of the NAND chip, a "prewrite" image is flashed to NAND. This image contains boot1 and a special boot2 known as "sd_boot".
- At the packaging plant, the Wii is powered on for the first time with SD card number 1 inserted. This SD card contains an image with various BroadOn-format WADs; sd_boot will load one of these WADs, an installer program which installs the other WADs to NAND. These WADs include the System Menu and IOS4.
- The contents of the update partition of a disc called 122E are then installed, containing the standard set of channels for retail along with the production Wii System Menu and Data Check and Log Check.
- Data Check and Log Check (0002) runs a set of tests from another SD card.
- A title called "0003" is found in uid.sys as well. It's currently unknown what it does, but it may be responsible for stubbing IOS3 and IOS4 after they are no longer needed.
Contents
Preloading
Every Wii is preloaded at the hardware level with a few pieces of software; these are already present on the Wii and will run when the Wii is powered on at the factory. The first of these pieces of software is boot0, the first piece of code ran on the Wii after power-on (which will stay the same from when it is physically programmed onto the chip to after factory setup, since it cannot physically be modified), which will check the stored boot1 hash in the Wii's eFuses, and seeing that it is blank (as it is written to later in the process, using up its one opportunity to program it), determines that it is in the factory and continues with boot by loading boot1 from the NAND. boot1 works as usual by verifying the signature of the boot2 on the NAND, then loading it.
Next, boot2 loads; the version of boot2 installed at the factory is "sd_boot", a special boot2 which does not read or write to NAND and instead boots from the SD card; a SD card (designated as SD#1) is prepared containing a number of BroadOn-format WAD files (stored raw with no filesystem); one of these files has its contents executed as an ARM binary on the IOP, said file being an installer program which will install the other WADs on the SD card to the NAND. On production systems, this typically includes a NDEV Menu and IOS4, although other variations have been seen such as images which install BC and MIOS. The NDEV Menu will then be booted, performing some filesystem tests using the disc ID 0000. The menu then loads from the disc slot, allowing for the next phase of setup to occur when a disc is inserted.
122E
See also: Data Check and Log Check
122E is a disc which has a game partition and an update partition; the game partition installs the title "0002" from the SD card (with filename "DataChk.wad"), and the update partition contains the final set of retail Wii System Menu/IOS/Channel data for production.
0002
0002 (DATA CHECK & LOG CHECK) is a program which runs tests found on an SD card. While this program is meant to be deleted before the process finishes, for unknown reasons it is still present intact on some Wiis and versions 1.5.0 and 1.5.1 have been recovered.
0002's title ID makes it look like a disc, however, it is very clearly installed to the NAND.
0003
0003 is another disc-like title that is installed to the NAND. Not much is known about it, and it is unclear whether 122E or 0002 installs it.