Lotus3: Difference between revisions
No edit summary |
|||
(18 intermediate revisions by the same user not shown) | |||
Line 185: | Line 185: | ||
== ReadAsicRegister == | == ReadAsicRegister == | ||
Signals the Gamecard ASIC to send a 0x30 byte sized buffer containing the values of all ASIC registers. | Signals the Gamecard ASIC to send a 0x30 byte sized buffer containing the values of all ASIC registers as follows. | ||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x4 | |||
| Status | |||
|- | |||
| 0x4 | |||
| 0x4 | |||
| Access Control | |||
|- | |||
| 0x8 | |||
| 0x4 | |||
| | |||
|- | |||
| 0xC | |||
| 0x4 | |||
| | |||
|- | |||
| 0x10 | |||
| 0x4 | |||
| | |||
|- | |||
| 0x14 | |||
| 0x4 | |||
| | |||
|- | |||
| 0x18 | |||
| 0x4 | |||
| | |||
|- | |||
| 0x1C | |||
| 0x4 | |||
| | |||
|- | |||
| 0x20 | |||
| 0x4 | |||
| | |||
|- | |||
| 0x24 | |||
| 0x4 | |||
| | |||
|- | |||
| 0x28 | |||
| 0x4 | |||
| | |||
|- | |||
| 0x2C | |||
| 0x4 | |||
| | |||
|} | |||
== ChangeDebugMode == | == ChangeDebugMode == | ||
Line 200: | Line 255: | ||
|- | |- | ||
| 0x0 | | 0x0 | ||
| | | 0x4 | ||
| | | [[Gamecard_Format#Gamecard_Info|CUP Version]] | ||
|- | |||
| 0x4 | |||
| 0x4 | |||
| [[#ReadId1Normal.2C_ReadId1Secure.2C_ReadId1Writer|Gamecard ID1]] | |||
|- | |- | ||
| 0x8 | | 0x8 | ||
| 0x100 | | 0x100 | ||
| [[Gamecard_Format#Gamecard_Header|Gamecard | | [[Gamecard_Format#Gamecard_Header|Gamecard Header]] (without the signature) | ||
|} | |} | ||
== GetCardKeyArea == | == GetCardKeyArea == | ||
Signals the Gamecard ASIC to send a 0x800 byte sized buffer containing the current Gamecard's key area sectors. | Signals the Gamecard ASIC to send a 0x800 byte sized buffer containing the current Gamecard's key area sectors as follows. | ||
{| class="wikitable" border="1" | |||
|- | |||
! Sector | |||
! Size | |||
! Description | |||
|- | |||
| 0 | |||
| 0x200 | |||
| Gamecard specific data | |||
|- | |||
| 1 | |||
| 0x200 | |||
| [[Gamecard_Format#Gamecard_Certificate|Gamecard Certificate]] | |||
|- | |||
| 2 | |||
| 0x200 | |||
| Empty sector (all 0xFF) | |||
|- | |||
| 3 | |||
| 0x200 | |||
| [[Gamecard_Format#Initial_Data|Gamecard Initial Data]] | |||
|} | |||
== SendCardCommand == | == SendCardCommand == | ||
Line 225: | Line 307: | ||
|- | |- | ||
| 0x1 | | 0x1 | ||
| | | 0x1 | ||
| | | Page size | ||
|- | |||
| 0x2 | |||
| 0x1 | |||
| Direction (0 = read, 1 = write) | |||
|- | |||
| 0x3 | |||
| 0x1 | |||
| Padding | |||
|- | |||
| 0x4 | |||
| 0x4 | |||
| Page count | |||
|- | |- | ||
| 0x8 | | 0x8 | ||
Line 310: | Line 404: | ||
|- | |- | ||
| 0x2E | | 0x2E | ||
| | | [[#UnlockForceErase]] | ||
|- | |- | ||
| 0x30 | | 0x30 | ||
Line 316: | Line 410: | ||
|- | |- | ||
| 0x39 | | 0x39 | ||
| | | [[#UpdateKey]] | ||
|- | |- | ||
| 0x56 | | 0x56 | ||
Line 334: | Line 428: | ||
|- | |- | ||
| 0xB8 | | 0xB8 | ||
| | | [[#Refresh]] | ||
|- | |- | ||
| 0xC4 | | 0xC4 | ||
Line 340: | Line 434: | ||
|- | |- | ||
| 0xE0 | | 0xE0 | ||
| | | ReadInitialData | ||
|- | |- | ||
| 0xE2 | | 0xE2 | ||
| | | EnterSecureMode | ||
|} | |} | ||
Line 831: | Line 925: | ||
| 0x10 | | 0x10 | ||
| 0x10 | | 0x10 | ||
| Empty | |||
|- | |||
| 0x20 | |||
| 0x20 | |||
| Command verification value | |||
|} | |||
== UpdateKey == | |||
Updates the Gamecard's internal key data. This command is only available in [[#Gamecard modes|Secure]] mode. | |||
The [[#OperationBuffer]] is as follows. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x1 | |||
| Gamecard ASIC operation command (0x10) | |||
|- | |||
| 0x1 | |||
| 0x1 | |||
| Set to 0 | |||
|- | |||
| 0x2 | |||
| 0x1 | |||
| Set to 0 | |||
|- | |||
| 0x3 | |||
| 0x1 | |||
| Padding | |||
|- | |||
| 0x4 | |||
| 0x4 | |||
| Set to 0 | |||
|- | |||
| 0x8 | |||
| 0x1 | |||
| Gamecard command (0x39) | |||
|- | |||
| 0x9 | |||
| 0x4 | |||
| Set to 0 | |||
|- | |||
| 0xD | |||
| 0x2 | |||
| Set to 0 | |||
|- | |||
| 0xF | |||
| 0x1 | |||
| Set to 0 | |||
|- | |||
| 0x10 | |||
| 0x10 | |||
| Empty | |||
|- | |||
| 0x20 | |||
| 0x20 | |||
| Command verification value | |||
|} | |||
== Refresh == | |||
Resets the Gamecard's internal status. This command is only available in [[#Gamecard modes|Secure]] mode. | |||
The [[#OperationBuffer]] is as follows. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x1 | |||
| Gamecard ASIC operation command (0x10) | |||
|- | |||
| 0x1 | |||
| 0x1 | |||
| Set to 2 | |||
|- | |||
| 0x2 | |||
| 0x1 | |||
| Set to 0 | |||
|- | |||
| 0x3 | |||
| 0x1 | |||
| Padding | |||
|- | |||
| 0x4 | |||
| 0x4 | |||
| Set to 0 | |||
|- | |||
| 0x8 | |||
| 0x1 | |||
| Gamecard command (0xB8) | |||
|- | |||
| 0x9 | |||
| 0x4 | |||
| Set to 0 | |||
|- | |||
| 0xD | |||
| 0x2 | |||
| Set to 0 | |||
|- | |||
| 0xF | |||
| 0x1 | |||
| Set to 0 | |||
|- | |||
| 0x10 | |||
| 0x10 | |||
| Empty | |||
|- | |||
| 0x20 | |||
| 0x20 | |||
| Command verification value | |||
|} | |||
== UnlockForceErase == | |||
Used by [[Filesystem_services#OpenGameCardStorage|OpenGameCardStorage]]. This command is only available in [[#Gamecard modes|Normal]] mode. | |||
The [[#OperationBuffer]] is as follows. | |||
{| class="wikitable" border="1" | |||
|- | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x1 | |||
| Gamecard ASIC operation command (0x10) | |||
|- | |||
| 0x1 | |||
| 0x1 | |||
| Set to 1 | |||
|- | |||
| 0x2 | |||
| 0x1 | |||
| Set to 0 | |||
|- | |||
| 0x3 | |||
| 0x1 | |||
| Padding | |||
|- | |||
| 0x4 | |||
| 0x4 | |||
| Set to 0 | |||
|- | |||
| 0x8 | |||
| 0x1 | |||
| Gamecard command (0x2E) | |||
|- | |||
| 0x9 | |||
| 0xF | |||
| Unlock password | |||
|- | |||
| 0x18 | |||
| 0x8 | |||
| Empty | | Empty | ||
|- | |- | ||
Line 884: | Line 1,138: | ||
| 0x0 | | 0x0 | ||
| 0x100 | | 0x100 | ||
| RSA-PKCS#1 signature | | RSA-2048 PKCS #1 signature over the firmware (data from 0x100 to 0x7800) | ||
|- | |- | ||
| 0x100 | | 0x100 | ||
Line 896: | Line 1,150: | ||
| 0x108 | | 0x108 | ||
| 0x4 | | 0x4 | ||
| | | Empty | ||
|- | |- | ||
| 0x10C | | 0x10C | ||
| 0x4 | | 0x4 | ||
| | | Empty | ||
|- | |- | ||
| 0x110 | | 0x110 | ||
Line 916: | Line 1,170: | ||
| 0x11C | | 0x11C | ||
| 0x4 | | 0x4 | ||
| | | Empty | ||
|- | |- | ||
| 0x120 | | 0x120 | ||
| 0x10 | | 0x10 | ||
| | | Encrypted data IV/CTR | ||
|- | |- | ||
| 0x130 | | 0x130 |