Line 1: |
Line 1: |
− | [[Category:Services]]
| |
| = DSP service "dsp::DSP" = | | = DSP service "dsp::DSP" = |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 7: |
Line 6: |
| |- | | |- |
| | 0x00010040 | | | 0x00010040 |
− | | RecvData | + | | [[DSP:RecvData|RecvData]] |
| |- | | |- |
| | 0x00020040 | | | 0x00020040 |
− | | RecvDataIsReady | + | | [[DSP:RecvDataIsReady|RecvDataIsReady]] |
| |- | | |- |
− | | 0x0003.... | + | | 0x00030080 |
− | | SendData | + | | [[DSP:SendData|SendData]] |
| |- | | |- |
− | | 0x0004.... | + | | 0x00040040 |
− | | SendDataIsReady | + | | [[DSP:SendDataIsEmpty|SendDataIsEmpty]] |
| |- | | |- |
− | | 0x0005... | + | | 0x000500C2 |
− | | Initialize? | + | | SendFifoEx(unsigned short, unsigned short const*, unsigned int, unsigned int) |
| |- | | |- |
− | | 0x0006... | + | | 0x000600C0 |
− | | Shutdown? | + | | RecvFifoEx(unsigned short *, unsigned short, unsigned int, unsigned int) |
| |- | | |- |
− | | 0x0007.... | + | | 0x00070040 |
− | | [[DSP:WriteReg0x10|WriteReg0x10]] (SetSemaphore?) | + | | [[DSP:SetSemaphore|SetSemaphore]] |
| |- | | |- |
− | | 0x0008.... | + | | 0x00080000 |
− | | ReadReg0x1C | + | | [[DSP:GetSemaphore|GetSemaphore]] |
| |- | | |- |
− | | 0x0009.... | + | | 0x00090040 |
− | | WriteReg0x18 | + | | [[DSP:ClearSemaphore|ClearSemaphore]] |
| |- | | |- |
− | | 0x000A.... | + | | 0x000A0040 |
− | | WriteReg0x18 | + | | [[DSP:MaskSemaphore|MaskSemaphore]] |
| |- | | |- |
− | | 0x000B.... | + | | 0x000B0000 |
− | | GetBit9InReg0x0C | + | | [[DSP:CheckSemaphoreRequest|CheckSemaphoreRequest]] |
| |- | | |- |
| | 0x000C0040 | | | 0x000C0040 |
Line 44: |
Line 43: |
| | 0x000D0082 | | | 0x000D0082 |
| | [[DSP:WriteProcessPipe|WriteProcessPipe]] | | | [[DSP:WriteProcessPipe|WriteProcessPipe]] |
| + | |- |
| + | | 0x000E00C0 |
| + | | [[DSP:ReadPipe|ReadPipe]] |
| + | |- |
| + | | 0x000F0080 |
| + | | [[DSP:GetPipeReadableSize|GetPipeReadableSize]] |
| |- | | |- |
| | 0x001000C0 | | | 0x001000C0 |
Line 49: |
Line 54: |
| |- | | |- |
| | 0x001100C2 | | | 0x001100C2 |
− | | [[DSP:LoadComponent|LoadComponent]]. This requires RSA-signed DSP firmware specified via the input buffer for this command, the firmware data is eventually written to DSPmem+0(0x1FF00000). | + | | [[DSP:LoadComponent|LoadComponent]] |
| |- | | |- |
| | 0x00120000 | | | 0x00120000 |
− | | UnloadComponent | + | | [[DSP:UnloadComponent|UnloadComponent]] |
| |- | | |- |
| | 0x00130082 | | | 0x00130082 |
− | | FlushDataCache (The buffer must be located in the 0x14000000 region) | + | | [[DSP:FlushDataCache|FlushDataCache]] |
− | | | |
| |- | | |- |
| | 0x00140082 | | | 0x00140082 |
− | | InvalidateDCache (The buffer must be located in either the 0x14000000 region, or the DSP memory region) | + | | [[DSP:InvalidateDCache|InvalidateDCache]] |
| |- | | |- |
| | 0x00150082 | | | 0x00150082 |
− | | [[DSP:RegisterInterruptEvents|RegisterInterruptEvents(param0, param1, 0, eventhandle)]] | + | | [[DSP:RegisterInterruptEvents|RegisterInterruptEvents]] |
| |- | | |- |
| | 0x00160000 | | | 0x00160000 |
Line 71: |
Line 75: |
| |- | | |- |
| | 0x00180040 | | | 0x00180040 |
− | | TranslateVAtoPA (0x14000000+ -> 0x20000000+, 0x1FF00000+ -> 0x1FF00000+, 0x08000000-0x0E000000 -> 0x00000000+, 0 otherwise) | + | | [[DSP:GetPhysicalAddress|GetPhysicalAddress]] |
| |- | | |- |
| | 0x00190040 | | | 0x00190040 |
− | | TranslatePAtoVA (0x20000000+ -> 0x14000000+, 0x1FF00000+ -> 0x1FF00000+, 0 otherwise) | + | | [[DSP:GetVirtualAddress|GetVirtualAddress]] |
| |- | | |- |
− | | 0x001A.... | + | | 0x001A0042 |
− | | Wrapper for cdc:DSP cmd 1 | + | | SetIirFilterI2S1. Wrapper for cdc:DSP cmd 1 |
| |- | | |- |
− | | 0x001B.... | + | | 0x001B0042 |
− | | Wrapper for cdc:DSP cmd 2 | + | | SetIirFilterI2S2. Wrapper for cdc:DSP cmd 2 |
| |- | | |- |
− | | 0x001C.... | + | | 0x001C0082 |
− | | Wrapper for cdc:DSP cmd 3 | + | | SetIirFilterEQ. Wrapper for cdc:DSP cmd 3 |
| |- | | |- |
− | | 0x001D.... | + | | 0x001D00C0 |
− | | Wrapper for cdc:DSP cmd 4 | + | | ReadMultiEx_SPI2(unsigned char, unsigned char, unsigned char *, unsigned char) (Wrapper for cdc:DSP cmd 4) |
| |- | | |- |
− | | 0x001E.... | + | | 0x001E00C2 |
− | | Wrapper for cdc:DSP cmd 5 | + | | WriteMultiEx_SPI2(unsigned char, unsigned char, unsigned char const*, unsigned char) (Wrapper for cdc:DSP cmd 5) |
| |- | | |- |
− | | 0x001F.... | + | | 0x001F0000 |
− | | Wrapper for cdc:DSP cmd 6 | + | | [[DSP:GetHeadphoneStatus|GetHeadphoneStatus]] |
| |- | | |- |
− | | 0x0020.... | + | | 0x00200040 |
− | | Wrapper for cdc:DSP cmd 8 | + | | [[DSP:ForceHeadphoneOut|ForceHeadphoneOut]] |
| |- | | |- |
− | | 0x0021.... | + | | 0x00210000 |
− | | returns a byte (can be 1 or 0) can be set to 1 in UnloadComponent | + | | [[DSP:GetIsDspOccupied|GetIsDspOccupied]] |
| |} | | |} |
| | | |
| This is the main service for playing audio. The [[CSND_Services|CSND]] service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously. | | This is the main service for playing audio. The [[CSND_Services|CSND]] service can be used for playing audio as well, however most processes use this DSP service for playing audio. The DSP and CSND hardware can play audio simultaneously. |
| + | |
| + | [[Category:Services]] |
| + | [[Category:DSP]] |