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