Changes

1,365 bytes added ,  18 October
Add some """"low-hanging"""" SD driver error code bits
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 ===
Trusted
225

edits