CSND Registers: Difference between revisions
No edit summary |
No edit summary |
||
(6 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 45: | Line 48: | ||
| 0x18 | | 0x18 | ||
| 4 | | 4 | ||
| When CSND module handles type0 Cmd 0xE with encoding=IMA-ADPCM, CSND module sets this to zero. | | 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 | ||
Line 51: | Line 54: | ||
| CSND module writes value zero here immediately after it writes to chanslotreg+0x18. | | 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. |