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..." |
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 | ||
| | | 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 | ||
| | | 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 | ||
| | | 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. |