Changes

1,979 bytes added ,  21:01, 10 December 2024
From SendCardSelfRefresh and SendCardReadRefreshStatus
Line 386: Line 386:  
| 0x10
 
| 0x10
 
| 0x40
 
| 0x40
| CardUid
+
| [[#CardUid|CardUid]]
 
|-
 
|-
 
| 0x50
 
| 0x50
Line 430: Line 430:  
| 0x10
 
| 0x10
 
| 0x40
 
| 0x40
| CardUid
+
| [[#CardUid|CardUid]]
 
|-
 
|-
 
| 0x50
 
| 0x50
Line 444: Line 444:  
| [[XCI#InitialData|InitialData]]
 
| [[XCI#InitialData|InitialData]]
 
|}
 
|}
 +
 +
= CardUid =
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x1
 +
| [[#MakerId|MakerId]]
 +
|-
 +
| 0x1
 +
| 0x1
 +
|
 +
|-
 +
| 0x2
 +
| 0x1
 +
|
 +
|-
 +
| 0x3
 +
| 0xD
 +
| [[#UniqueData|UniqueData]]
 +
|-
 +
| 0x10
 +
| 0x1
 +
| Reserved (always 0)
 +
|-
 +
| 0x11
 +
| 0xB
 +
| Reserved (always all 0xFF)
 +
|-
 +
| 0x1C
 +
| 0x4
 +
| [[#CardId1Mirror|CardId1Mirror]]
 +
|-
 +
| 0x20
 +
| 0x20
 +
| Hash
 +
|}
 +
 +
== MakerId ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Value
 +
! Description
 +
|-
 +
| 0
 +
| MegaChips (Macronix)
 +
|-
 +
| 1
 +
| Lapis
 +
|-
 +
| 2
 +
|
 +
|}
 +
 +
== UniqueData ==
 +
While presumed to be random, this field actually has some degree of determinism depending on the [[#MakerId|MakerId]].
 +
 +
MakerId 0:
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x1
 +
| Type (4 = [[Filesystem_services#MemoryType|T1RomLate]], 8 = [[Filesystem_services#MemoryType|T1RomFast]])
 +
|-
 +
| 0x1
 +
| 0x1
 +
| Line (0x21 for [[Filesystem_services#MemoryType|T1RomLate]], incrementing value for [[Filesystem_services#MemoryType|T1RomFast]])
 +
|-
 +
| 0x2
 +
| 0x3
 +
| Id
 +
|-
 +
| 0x5
 +
| 0x2
 +
| X (16-bit coordinate?)
 +
|-
 +
| 0x7
 +
| 0x2
 +
| Y (16-bit coordinate?)
 +
|-
 +
| 0x9
 +
| 0x4
 +
| Random
 +
|}
 +
 +
MakerId 1:
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x2
 +
| Line (incrementing value)
 +
|-
 +
| 0x2
 +
| 0x3
 +
| Id
 +
|-
 +
| 0x5
 +
| 0x1
 +
|
 +
|-
 +
| 0x6
 +
| 0x1
 +
| Version (0 or 1)
 +
|-
 +
| 0x7
 +
| 0x2
 +
|
 +
|-
 +
| 0x9
 +
| 0x4
 +
| Random
 +
|}
 +
 +
MakerId 2:
 +
{| class="wikitable" border="1"
 +
|-
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
| 0x0
 +
| 0x4
 +
| Random
 +
|-
 +
| 0x4
 +
| 0x1
 +
|
 +
|-
 +
| 0x5
 +
| 0x1
 +
|
 +
|-
 +
| 0x6
 +
| 0x4
 +
| Id (ASCII string)
 +
|-
 +
| 0xA
 +
| 0x1
 +
|
 +
|-
 +
| 0xB
 +
| 0x1
 +
|
 +
|-
 +
| 0xC
 +
| 0x1
 +
|
 +
|}
 +
 +
== CardId1Mirror ==
 +
This field mirrors bit 5 of the [[Filesystem_services#MemoryType|MemoryType]] field from the [[Filesystem_services#CardId1|CardId1]].
    
= CardCommand =
 
= CardCommand =
Line 472: Line 634:  
|-
 
|-
 
| 0x6
 
| 0x6
|  
+
| SelfRefresh
 
|-
 
|-
 
| 0xF
 
| 0xF
|  
+
| T1ReadUid
 
|-
 
|-
 
| 0x10
 
| 0x10
| ReadId1Write
+
| DebugReadId1
 
|-
 
|-
 
| 0x11
 
| 0x11
| ReadId2Write
+
| DebugReadId2
 
|-
 
|-
 
| 0x12
 
| 0x12
| ReadId3Write
+
| DebugReadId3
 
|-
 
|-
 
| 0x13
 
| 0x13
|  
+
| DebugReadUid
 
|-
 
|-
 
| 0x15
 
| 0x15
| ReadCrc
+
| DebugReadCrc
 
|-
 
|-
 
| 0x16
 
| 0x16
| WritePage
+
| DebugWritePage
 
|-
 
|-
 
| 0x17
 
| 0x17
Line 499: Line 661:  
|-
 
|-
 
| 0x18
 
| 0x18
| Erase
+
| DebugErase
 
|-
 
|-
 
| 0x19
 
| 0x19
| ReadParameter
+
| DebugReadParameter
 
|-
 
|-
 
| 0x20
 
| 0x20
| WriteParameter
+
| DebugWriteParameter
 
|-
 
|-
 
| 0x21
 
| 0x21
| ReadPageSecure
+
| T1ReadPage
 +
|-
 +
| 0x22
 +
|
 
|-
 
|-
 
| 0x28
 
| 0x28
Line 514: Line 679:  
|-
 
|-
 
| 0x2E
 
| 0x2E
| ChangeDebugDirect
+
| ForceErase
 
|-
 
|-
 
| 0x30
 
| 0x30
| ReadId3Secure
+
| T1ReadId3
 
|-
 
|-
 
| 0x39
 
| 0x39
| SetKey
+
| T1SetKey
 
|-
 
|-
 
| 0x56
 
| 0x56
Line 527: Line 692:  
| 0x59
 
| 0x59
 
|  
 
|  
|-
  −
| 0x67
  −
| ReadId1Secure
   
|-
 
|-
 
| 0x5B
 
| 0x5B
 
| ReadPage
 
| ReadPage
 +
|-
 +
| 0x67
 +
| T1ReadId1
 
|-
 
|-
 
| 0x83
 
| 0x83
| WritePageSecure
+
| T1WritePage
 
|-
 
|-
 
| 0x8A
 
| 0x8A
Line 544: Line 709:  
|-
 
|-
 
| 0xB8
 
| 0xB8
| Refresh
+
| T1Refresh
 
|-
 
|-
 
| 0xC4
 
| 0xC4
| ReadId2Secure
+
| T1ReadId2
 
|-
 
|-
 
| 0xE0
 
| 0xE0
Line 556: Line 721:  
|-
 
|-
 
| 0xE3
 
| 0xE3
|  
+
| T2ReceiveCertificate
 
|-
 
|-
 
| 0xE4
 
| 0xE4
|  
+
| T2SendSocCertificate
 
|-
 
|-
 
| 0xE5
 
| 0xE5
Line 565: Line 730:  
|-
 
|-
 
| 0xE6
 
| 0xE6
|  
+
| T2ReceiveRandomValue
 
|-
 
|-
 
| 0xE7
 
| 0xE7
|  
+
| T2SendRandomValue
 
|-
 
|-
 
| 0xE8
 
| 0xE8
|  
+
| T2ReceiveDeviceChallenge
 
|-
 
|-
 
| 0xE9
 
| 0xE9
|  
+
| T2RespondDeviceChallenge
 
|-
 
|-
 
| 0xEA
 
| 0xEA
|  
+
| T2SendHostChallenge
 
|-
 
|-
 
| 0xEB
 
| 0xEB
|  
+
| T2ReceiveChallengeResponse
 
|-
 
|-
 
| 0xEC
 
| 0xEC
Line 598: Line 763:  
|-
 
|-
 
| 0xFA
 
| 0xFA
|  
+
| ReadRefreshStatus
 
|}
 
|}