Difference between revisions of "Gamecard Services PXI"

From 3dbrew
Jump to navigation Jump to search
Line 56: Line 56:
 
| 0x000D0688
 
| 0x000D0688
 
| [[2.0.0-2]]
 
| [[2.0.0-2]]
| SPICARD related, to use this the [[NCCH/Extended_Header|arm9-access-control]] bit for SPICARD must be set in one of the currently running ARM11 processes.
+
| [[PXIDEV:SPIMultiWriteRead|SPIMultiWriteRead]]
 
|-
 
|-
 
| 0x000E0284
 
| 0x000E0284
 
| [[2.0.0-2]]
 
| [[2.0.0-2]]
| SPICARD related, to use this the [[NCCH/Extended_Header|arm9-access-control]] bit for SPICARD must be set in one of the currently running ARM11 processes.
+
| [[PXIDEV:SPIWriteRead|SPIWriteRead]]
 
|-
 
|-
 
| 0x000F0000
 
| 0x000F0000
 
| [[2.0.0-2]]
 
| [[2.0.0-2]]
 
| This reads the 0x200-byte [[NCSD]] header from the gamecard. Then the u8 from ncsdhdr+0x18B(partitionflags[3]) is copied to cmdreply[2].
 
| This reads the 0x200-byte [[NCSD]] header from the gamecard. Then the u8 from ncsdhdr+0x18B(partitionflags[3]) is copied to cmdreply[2].
 +
|}
 +
 +
==Types==
 +
===TransferOption===
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Bits
 +
!  Description
 +
|-
 +
| 0-5
 +
| [[Filesystem_services#CardSpiBaudRate|CardSpiBaudRate]]
 +
|-
 +
| 6-7
 +
| [[Filesystem_services#CardSpiBusMode|CardSpiBusMode]]
 +
|}
 +
 +
===WaitOperation===
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Bits
 +
!  Description
 +
|-
 +
| 0-3
 +
| [[#WaitType|WaitType]]
 +
|-
 +
| 4-7
 +
| [[#DeassertType|DeassertType]]
 +
|-
 +
| 8-63
 +
| Nanoseconds
 +
|}
 +
 +
===WaitType===
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Value
 +
!  Description
 +
|-
 +
| 0
 +
| None
 +
|-
 +
| 1
 +
| Sleep
 +
|-
 +
| 2
 +
| Wait for IREQ, return if timeout
 +
|-
 +
| 3
 +
| Wait for IREQ, continue if timeout
 +
|}
 +
 +
===DeassertType===
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Value
 +
!  Description
 +
|-
 +
| 0
 +
| None
 +
|-
 +
| 1
 +
| Before wait
 +
|-
 +
| 2
 +
| After wait
 
|}
 
|}

Revision as of 07:21, 21 January 2016

"pxi:dev" service

Command Header Available since system version Description
0x000101C2 1.0.0-0 ReadCTRCARD_Cmd40
0x000201C2 1.0.0-0 WriteCTRCARD_Cmd41
0x00030102 1.0.0-0 ReadCTRCARD_Cmd42
0x00040102 1.0.0-0 WriteCTRCARD_Cmd44
0x00050102 1.0.0-0 Stubbed, only returns an error.
0x00060102 1.0.0-0 Stubbed, only returns an error.
0x00070000 1.0.0-0 Stubbed, only returns an error.
0x00080000 2.0.0-2 Initialization for the stuff used by the below commands.
0x00090000 2.0.0-2 Shutdown for the stuff used by the below commands.
0x000A0000 2.0.0-2 This writes 3 bytes to cmdreply[2], the SPICARD hw is used for this.
0x000B0000 2.0.0-2 This writes a max-size value to cmdreply[2].
0x000C0042 2.0.0-2 (size, ((size<<8) | 4), outbufptr) This copies the data from some buffer(size is restricted to the maxsize value also used by command 0x000B0000) to the FCRAM outbuf, when certain flags are set correctly.
0x000D0688 2.0.0-2 SPIMultiWriteRead
0x000E0284 2.0.0-2 SPIWriteRead
0x000F0000 2.0.0-2 This reads the 0x200-byte NCSD header from the gamecard. Then the u8 from ncsdhdr+0x18B(partitionflags[3]) is copied to cmdreply[2].

Types

TransferOption

Bits Description
0-5 CardSpiBaudRate
6-7 CardSpiBusMode

WaitOperation

Bits Description
0-3 WaitType
4-7 DeassertType
8-63 Nanoseconds

WaitType

Value Description
0 None
1 Sleep
2 Wait for IREQ, return if timeout
3 Wait for IREQ, continue if timeout

DeassertType

Value Description
0 None
1 Before wait
2 After wait