CSND Registers: Difference between revisions

Created page with "=0x1EC03400= The channel registers are based at 0x1EC03400(process virtual address). There's 0x20-bytes total for each channel slot, thus the base-address for a channel's slot is..."
 
Wwylele (talk | contribs)
No edit summary
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
=0x1EC03000=
?
=0x1EC03400=
=0x1EC03400=
The channel registers are based at 0x1EC03400(process virtual address). There's 0x20-bytes total for each channel slot, thus the base-address for a channel's slot is determined with: 0x1EC03400 + (channel_index*0x20). The below offsets are relative to these channel register slots.
The channel registers are based at 0x1EC03400(process virtual address). There's 0x20-bytes total for each channel slot, thus the base-address for a channel's slot is determined with: 0x1EC03400 + (channel_index*0x20). The below offsets are relative to these channel register slots.
Line 9: Line 12:
| 0x0
| 0x0
| 2
| 2
| REG_CSNDCHANX_CNT
| REG_CSNDCHANX_CNT. For Type0 [[CSND_Shared_Memory|Cmd]] 0xE, CSND module basically writes this value here: u16 (cmdword[2] & 0xFFFF).
|-
|-
| 0x2
| 0x2
Line 33: Line 36:
| 0xC
| 0xC
| 4
| 4
| This is the audio data physical address.
| This is the audio data physical address, for the main channel.
|-
|-
| 0x10
| 0x10
Line 41: Line 44:
| 0x14
| 0x14
| 4
| 4
| For Type0 [[CSND_Shared_Memory|Cmd]] 0xE, CSND module writes this value here: cmdword[6].
| This is the audio data physical address, for the second channel. When this is not 0x0 stereo audio is used, otherwise mono audio is used.
|-
|-
| 0x18
| 0x18
| 4
| 4
| In some cases the CSND module may write value 0 here.
| When CSND module handles type0 Cmd 0xE with encoding!=IMA-ADPCM, CSND module sets this to zero. This register can be initialized via CSND module type0 Cmd 0xB.
|-
|-
| 0x1C
| 0x1C
| 4
| 4
| In some cases the CSND module may write value 0 here.
| CSND module writes value zero here immediately after it writes to chanslotreg+0x18.
|}
|}
=0x1EC03800=
There are two capture unit slot located at 0x1EC03800. Each slot has 0x10 bytes.