Changes

1,293 bytes removed ,  03:59, 23 August 2021
m
Removed boot0 stuff
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.]]
  
322

edits