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(chan 0-3) | + | | [[DSP:RecvData|RecvData]] |
− | |- | |
− | | 0x00010080
| |
− | | ????
| |
− | |-
| |
− | | 0x00020000
| |
− | | ????
| |
| |- | | |- |
| | 0x00020040 | | | 0x00020040 |
− | | RecvDataIsReady(chan 0-3) | + | | [[DSP:RecvDataIsReady|RecvDataIsReady]] |
| |- | | |- |
| | 0x00030080 | | | 0x00030080 |
− | | SendData(chan 0-3) | + | | [[DSP:SendData|SendData]] |
| |- | | |- |
| | 0x00040040 | | | 0x00040040 |
− | | SendDataIsEmpty(chan 0-3) | + | | [[DSP:SendDataIsEmpty|SendDataIsEmpty]] |
| |- | | |- |
− | | 0x00050100 | + | | 0x000500C2 |
− | | ? | + | | SendFifoEx(unsigned short, unsigned short const*, unsigned int, unsigned int) |
| |- | | |- |
− | | 0x0006... | + | | 0x000600C0 |
− | | ? | + | | RecvFifoEx(unsigned short *, unsigned short, unsigned int, unsigned int) |
| |- | | |- |
− | | 0x0007.... | + | | 0x00070040 |
− | | [[DSP:WriteReg0x10|WriteReg0x10]] SetSemaphore | + | | [[DSP:SetSemaphore|SetSemaphore]] |
| |- | | |- |
| | 0x00080000 | | | 0x00080000 |
− | | GetSemaphore | + | | [[DSP:GetSemaphore|GetSemaphore]] |
− | |- | |
− | | 0x00080082
| |
− | | ????
| |
| |- | | |- |
| | 0x00090040 | | | 0x00090040 |
− | | ClearSemaphore | + | | [[DSP:ClearSemaphore|ClearSemaphore]] |
| |- | | |- |
− | | 0x000A.... | + | | 0x000A0040 |
− | | WriteReg0x18 | + | | [[DSP:MaskSemaphore|MaskSemaphore]] |
| |- | | |- |
| | 0x000B0000 | | | 0x000B0000 |
− | | CheckSemaphoreRequest | + | | [[DSP:CheckSemaphoreRequest|CheckSemaphoreRequest]] |
− | |- | |
− | | 0x000C0000
| |
− | | ????
| |
| |- | | |- |
| | 0x000C0040 | | | 0x000C0040 |
Line 57: |
Line 44: |
| | [[DSP:WriteProcessPipe|WriteProcessPipe]] | | | [[DSP:WriteProcessPipe|WriteProcessPipe]] |
| |- | | |- |
− | | 0x000E0080 | + | | 0x000E00C0 |
− | | ???? | + | | [[DSP:ReadPipe|ReadPipe]] |
| + | |- |
| + | | 0x000F0080 |
| + | | [[DSP:GetPipeReadableSize|GetPipeReadableSize]] |
| |- | | |- |
| | 0x001000C0 | | | 0x001000C0 |
Line 64: |
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 84: |
Line 73: |
| | 0x00170040 | | | 0x00170040 |
| | [[DSP:SetSemaphoreMask|SetSemaphoreMask]] | | | [[DSP:SetSemaphoreMask|SetSemaphoreMask]] |
− | |-
| |
− | | 0x00170042
| |
− | | ????
| |
| |- | | |- |
| | 0x00180040 | | | 0x00180040 |
− | | GetPhysicalAddress (0x14000000+ -> 0x20000000+, 0x1FF00000+ -> 0x1FF00000+, 0x08000000-0x0E000000 -> 0x00000000+, 0 otherwise) | + | | [[DSP:GetPhysicalAddress|GetPhysicalAddress]] |
| |- | | |- |
| | 0x00190040 | | | 0x00190040 |
− | | GetVirtualAddress (0x20000000+ -> 0x14000000+, 0x1FF00000+ -> 0x1FF00000+, 0 otherwise) | + | | [[DSP:GetVirtualAddress|GetVirtualAddress]] |
| |- | | |- |
| | 0x001A0042 | | | 0x001A0042 |
Line 98: |
Line 84: |
| |- | | |- |
| | 0x001B0042 | | | 0x001B0042 |
− | | SetIirFilterI2S1. Wrapper for cdc:DSP cmd 2 | + | | SetIirFilterI2S2. Wrapper for cdc:DSP cmd 2 |
| |- | | |- |
| | 0x001C0082 | | | 0x001C0082 |
| | SetIirFilterEQ. 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) |
| |- | | |- |
| | 0x001F0000 | | | 0x001F0000 |
− | | GetHeadphoneStatus. Wrapper for cdc:DSP cmd 6 | + | | [[DSP:GetHeadphoneStatus|GetHeadphoneStatus]] |
| |- | | |- |
− | | 0x0020.... | + | | 0x00200040 |
− | | Wrapper for cdc:DSP cmd 8 | + | | [[DSP:ForceHeadphoneOut|ForceHeadphoneOut]] |
| |- | | |- |
| | 0x00210000 | | | 0x00210000 |
− | | GetIsDspOccupied returns a byte (can be 1 or 0) can be set to 1 in LoadComponent | + | | [[DSP:GetIsDspOccupied|GetIsDspOccupied]] |
− | |- | |
− | | 0x080200C2
| |
− | | ????
| |
| |} | | |} |
| | | |
| 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]] |