Line 1:
Line 1:
−
== Stage 1 ==
−
−
[[Image:boot-stage1-error.jpeg|frame|When the Stage 1 bootloader (in ROM) fails, it displays a 32-bit hexadecimal number on the top screen.]]
−
−
The first stage of the DSi's bootloader lives in ROM, presumably on the CPU die. It loads further encrypted+signed stages from [[NAND]] flash, starting with a plaintext offset table in the sector at offset 0x200.
−
−
Not much is known about this bootloader yet, but it presumably knows how to:
−
# Initialize the encryption hardware
−
# Read the contents of [[NVRAM]]
−
# Initialize both LCDs
−
# Read blocks (but not files) from the [[NAND]] flash
−
# Perform some variety of integrity check on all data it reads (signature, CRC, ?)
−
# Display basic hexadecimal error codes
−
# Possibly factory-programming the [[NAND]] flash?
−
# Might also do basic power-on self test of peripherals
−
−
Known error codes:
−
−
{| border="1" cellpadding="3" cellspacing="0"
−
! Error Code !! Description
−
|-
−
| 0000FE00 || Error communicating with NAND chip. (It's missing, CLK is shorted, etc.)
−
|-
−
| 0000FEFC || Integrity error in first block of Stage 2 (address at 0x220)
−
|-
−
| 0000FEFD || Integrity error in second block of Stage 2 (address at 0x230)
−
|-
−
| 0000FEFE || Boot sector integrity error (Sector 0x200 not valid), or error in [[NVRAM]] contents.
−
|}
−
−
== Stage 2 ==
−
[[Image:boot-stage2-error.jpeg|frame|This may have been a Stage 2 bootloader error.]]
[[Image:boot-stage2-error.jpeg|frame|This may have been a Stage 2 bootloader error.]]