Line 129:
Line 129:
* 3rd line is: <code>print_string(..., "%08X %08X", *((unsigned int*)(0x1FFFE000+0x10))`, `*((unsigned int*)(0x1fffe000+0x14)));//See below memory notes.</code>
* 3rd line is: <code>print_string(..., "%08X %08X", *((unsigned int*)(0x1FFFE000+0x10))`, `*((unsigned int*)(0x1fffe000+0x14)));//See below memory notes.</code>
* 4th line is: <code>print_string(..., "%08X %08X",*((unsigned int*)(0x1FFFE000+0x18))`, `*((unsigned int*)(0x1fffe000+0x1C)));//See below memory notes.</code>
* 4th line is: <code>print_string(..., "%08X %08X",*((unsigned int*)(0x1FFFE000+0x18))`, `*((unsigned int*)(0x1fffe000+0x1C)));//See below memory notes.</code>
+
=== 0x1FFFE000 memory ===
=== 0x1FFFE000 memory ===
Line 141:
Line 142:
* s8[8] 0x1FFFE000+0x10: Status-codes originally from nand_findfirmpartition_loadfirm(), for each of the 8 NCSD partitions.
* s8[8] 0x1FFFE000+0x10: Status-codes originally from nand_findfirmpartition_loadfirm(), for each of the 8 NCSD partitions.
* u32 0x1FFFE000+0x18: SD driver internal error bitfield
* u32 0x1FFFE000+0x18: SD driver internal error bitfield
−
* u32 0x1FFFE000+0x1C: SD driver SD hardware status bits from the controller, AND-ed with 0xFDFF0080 if eMMC, and 0xFDF90008 if SD.
+
* u32 0x1FFFE000+0x1C: R1 status bits received from the SD device, AND-ed with 0xFDFF0080 if eMMC (NAND), otherwise 0xFDF90008 if SD.
+
+
=== BootROM SD driver error bits ===
+
{| class="wikitable" border="1"
+
|-
+
! Value
+
! Description
+
|-
+
| 0x1
+
| STATUS2: received cmd field does not match what was sent
+
|-
+
| 0x2
+
| STATUS2: received CRC does not match what was calculated
+
|-
+
| 0x4
+
| STATUS2: framing error, stop bit was not encountered
+
|-
+
| 0x8
+
| STATUS2: data was not received within the timeout period
+
|-
+
| 0x10
+
| STATUS2: RX FIFO overflow
+
|-
+
| 0x20
+
| STATUS2: TX FIFO overflow
+
|-
+
| 0x40
+
| STATUS2 (bit31): illegal access error (???)
+
|-
+
| 0x80
+
| At least one error bit was set in the command reply from the SD device, or other unexpected state is reported.
+
|-
+
| 0x100
+
| An illegal command was received by the SD device (ILLEGAL_COMMAND bit set).
+
|-
+
| 0x200
+
| Timer-based timeout while waiting for SD device operations to finish.
+
|-
+
| 0x400
+
| Got a timer-based timeout during MMC initialization sequence.
+
|-
+
| 0x800
+
| ??? some sort of timeout
+
|-
+
| 0x8000
+
| Timeout while trying to perform AES operation on sector data
+
|-
+
| 0x80000
+
| Tried to perform AES operation while another AES operation is taking place
+
|}
+
+
=== BootROM SD device error bits ===
+
These error codes are received directly from the device, and are in the same format as received in an R1 type reply.
+
+
See [https://www.sdcard.org/downloads/pls/ SD Specifications Part 1 Physical Layer Simplified Specification] for the error bit list.
=== BootROM Status Codes ===
=== BootROM Status Codes ===