Lotus3: Difference between revisions

No edit summary
No edit summary
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"