Line 12: |
Line 12: |
| |- | | |- |
| | 60 | | | 60 |
− | | [[#WriteOperation]] | + | | [[#WriteOperation|WriteOperation]] |
| |- | | |- |
| | 61 | | | 61 |
− | | [[#FinishOperation]] | + | | [[#FinishOperation|FinishOperation]] |
| |- | | |- |
| | 62 | | | 62 |
− | | [[#Sleep]] | + | | [[#Sleep|Sleep]] |
| |- | | |- |
| | 63 | | | 63 |
− | | [[#UpdateKey]] | + | | [[#UpdateKey|UpdateKey]] |
| |} | | |} |
| | | |
Line 57: |
Line 57: |
| | | |
| == OperationId == | | == OperationId == |
− | The Gamecard ASIC supports a total of 20 operation commands. These commands are passed to the ASIC using the [[#WriteOperation]] MMC command. | + | The Gamecard ASIC supports a total of 20 operation commands. These commands are passed to the ASIC using the [[#WriteOperation|WriteOperation]] MMC command. |
| | | |
| Additional data buffers are then read/written as pages of 0x200 bytes each, using standard MMC read/write commands. | | Additional data buffers are then read/written as pages of 0x200 bytes each, using standard MMC read/write commands. |
Line 67: |
Line 67: |
| |- | | |- |
| | 0x01 | | | 0x01 |
− | | [[#SendFirmware]] | + | | [[#SendFirmware|SendFirmware]] |
| |- | | |- |
| | 0x02 | | | 0x02 |
− | | [[#ReceiveCertificate]] | + | | [[#ReceiveCertificate|ReceiveCertificate]] |
| |- | | |- |
| | 0x03 | | | 0x03 |
− | | [[#SendSocCertificate]] | + | | [[#SendSocCertificate|SendSocCertificate]] |
| |- | | |- |
| | 0x04 | | | 0x04 |
− | | [[#ReceiveRandomValue]] | + | | [[#ReceiveRandomValue|ReceiveRandomValue]] |
| |- | | |- |
| | 0x05 | | | 0x05 |
− | | [[#SendRandomValue]] | + | | [[#SendRandomValue|SendRandomValue]] |
| |- | | |- |
| | 0x06 | | | 0x06 |
− | | [[#ReceiveDeviceChallenge]] | + | | [[#ReceiveDeviceChallenge|ReceiveDeviceChallenge]] |
| |- | | |- |
| | 0x07 | | | 0x07 |
− | | [[#RespondDeviceChallenge]] | + | | [[#RespondDeviceChallenge|RespondDeviceChallenge]] |
| |- | | |- |
| | 0x08 | | | 0x08 |
− | | [[#SendHostChallenge]] | + | | [[#SendHostChallenge|SendHostChallenge]] |
| |- | | |- |
| | 0x09 | | | 0x09 |
− | | [[#ReceiveChallengeResponse]] | + | | [[#ReceiveChallengeResponse|ReceiveChallengeResponse]] |
| |- | | |- |
| | 0x0A | | | 0x0A |
− | | [[#ChangeModeToSecure]] | + | | [[#ChangeModeToSecure|ChangeModeToSecure]] |
| |- | | |- |
| | 0x0B | | | 0x0B |
− | | [[#WriteRegister]] | + | | [[#WriteRegister|WriteRegister]] |
| |- | | |- |
| | 0x0C | | | 0x0C |
− | | [[#ReadRegister]] | + | | [[#ReadRegister|ReadRegister]] |
| |- | | |- |
| | 0x0D | | | 0x0D |
− | | [[#ChangeGcModeToDebug]] | + | | [[#ChangeGcModeToDebug|ChangeGcModeToDebug]] |
| |- | | |- |
| | 0x0E | | | 0x0E |
− | | [[#GetCardHeader]] | + | | [[#GetCardHeader|GetCardHeader]] |
| |- | | |- |
| | 0x0F | | | 0x0F |
− | | [[#ChangeGcModeToSecure]] | + | | [[#ChangeGcModeToSecure|ChangeGcModeToSecure]] |
| |- | | |- |
| | 0x10 | | | 0x10 |
− | | [[#SendCardCommand]] | + | | [[#SendCardCommand|SendCardCommand]] |
| |- | | |- |
| | 0x11 | | | 0x11 |
− | | [[#EnableCardBus]] | + | | [[#EnableCardBus|EnableCardBus]] |
| |- | | |- |
| | 0x12 | | | 0x12 |
− | | [[#ExchangeRandomValuesInSecureMode]] | + | | [[#ExchangeRandomValuesInSecureMode|ExchangeRandomValuesInSecureMode]] |
| |- | | |- |
| | 0x13 | | | 0x13 |
− | | [[#ReadRmaInformation]] | + | | [[#ReadRmaInformation|ReadRmaInformation]] |
| |- | | |- |
| | 0x14 | | | 0x14 |
− | | [9.0.0+] [[#ChallengeCardExistence]] | + | | [9.0.0+] [[#ChallengeCardExistence|ChallengeCardExistence]] |
| |} | | |} |
| | | |
Line 462: |
Line 462: |
| | | |
| == CommandId == | | == CommandId == |
− | These commands are issued by the Gamecard ASIC to the actual Gamecard using the [[#AsicOperation|OperationData]] passed to [[#SendCardCommand]]. | + | These commands are issued by the Gamecard ASIC to the actual Gamecard using the [[#AsicOperation|OperationData]] passed to [[#SendCardCommand|SendCardCommand]]. |
| | | |
| Additional data buffers are then read/written as pages of 0x200 bytes each, using standard MMC read/write commands. | | Additional data buffers are then read/written as pages of 0x200 bytes each, using standard MMC read/write commands. |
Line 602: |
Line 602: |
| | | |
| = AsicFirmware = | | = AsicFirmware = |
− | This is the Gamecard ASIC's user firmware (Lotus ASIC Firmware or LAFW) uploaded through the [[#SendFirmware]] operation. | + | This is the Gamecard ASIC's user firmware (Lotus ASIC Firmware or LAFW) uploaded through the [[#SendFirmware|SendFirmware]] operation. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |