|
|
| 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.]] |
|
| |
|