Difference between revisions of "DSP:ReadPipeIfPossible"

From 3dbrew
Jump to navigation Jump to search
(Created page with "=Request= {| class="wikitable" border="1" |- ! Index Word ! Description |- | 0 | Header code [0x001000c0] |- | 1 | unk1 |- | 2 | unk2 |- | 3 | size (halfword) |} 0x100 byte af...")
 
 
(3 intermediate revisions by 2 users not shown)
Line 9: Line 9:
 
|-
 
|-
 
| 1
 
| 1
| unk1
+
| Channel (0 - 7 0:Debug from DSP 1:P-DMA 2:audio 3:binary 4-7: free ?)
 
|-
 
|-
 
| 2
 
| 2
| unk2
+
| Peer (0 = from DSP, 1 = from ARM)
 
|-
 
|-
 
| 3
 
| 3
| size (halfword)
+
| u16, Size
 
|}
 
|}
  
Line 25: Line 25:
 
|-
 
|-
 
| 0
 
| 0
| (size <<14) <nowiki>|</nowiki> 0x2
+
| (Size << 14) <nowiki>|</nowiki> 0x2
 
|-
 
|-
 
| 1
 
| 1
| buffer
+
| Buffer
 
|}
 
|}
  
Line 41: Line 41:
 
|-
 
|-
 
| 1
 
| 1
| Resultcode
+
| Result code
 
|-
 
|-
 
| 2
 
| 2
| sizeread? (hword)
+
| u16, Actual read size
 
|}
 
|}
 +
 +
= Channels =
 +
 +
== Channel 2 (Audio) ==
 +
 +
Channel 2 returns the DSP DRAM addresses of structures located in the [[DSP Memory Region]]. [[DSP:ConvertProcessAddressFromDspDram]] can be used to convert these addresses into virtual memory addresses. The list of addresses and the length of the list vary depending on DSP firmware version.
 +
 +
== Channel 3 (Binary) ==
 +
 +
The purpose of channel 3 is unknown. The behaviour of this pipe varies depending on DSP firmware version. Observed behaviours include:
 +
 +
* doing nothing.
 +
* echoing what is returned to it.
 +
* long strings of zeros.

Latest revision as of 23:39, 7 March 2016

Request[edit]

Index Word Description
0 Header code [0x001000c0]
1 Channel (0 - 7 0:Debug from DSP 1:P-DMA 2:audio 3:binary 4-7: free ?)
2 Peer (0 = from DSP, 1 = from ARM)
3 u16, Size

0x100 byte after the Request header

Index Word Description
0 (Size << 14) | 0x2
1 Buffer

Response[edit]

Index Word Description
0 Header code
1 Result code
2 u16, Actual read size

Channels[edit]

Channel 2 (Audio)[edit]

Channel 2 returns the DSP DRAM addresses of structures located in the DSP Memory Region. DSP:ConvertProcessAddressFromDspDram can be used to convert these addresses into virtual memory addresses. The list of addresses and the length of the list vary depending on DSP firmware version.

Channel 3 (Binary)[edit]

The purpose of channel 3 is unknown. The behaviour of this pipe varies depending on DSP firmware version. Observed behaviours include:

  • doing nothing.
  • echoing what is returned to it.
  • long strings of zeros.