Gamecard Services PXI: Difference between revisions

From 3dbrew
Jump to navigation Jump to search
No edit summary
Steveice10 (talk | contribs)
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