Active logical channels can be triggered:
- By software. Writes the SIMCOP_DMA_CHAN_CTRL_i[2] SWTRIGGER bit
- By a hardware DMA request. A channel can be made sensitive to a pulse on the START[y] input when SIMCOP_DMA_CHAN_CTRL_i[19:17] HWSTART = y has been configured by software.
- When the previous channel in the linked list finishes. This feature is enabled through the SIMCOP_DMA_CHAN_CTRL_i[16:12] LINKED bit field of the preceding channel in the chain.
When a channel completes, it can optionally send a pulse to the DONE[y] output. Software enables this feature by configuring SIMCOP_DMA_CHAN_CTRL_i[22:20] HWDONE = y.
Typically, the START + DONE synchronization mechanism is used together with the SIMCOP hardware sequencer. The hardware sequencer sends a pulse to START[y] a data transfer and the SIMCOP DMA responds with a DONE[y] pulse when the transfer completes. A transfer can be composed of one or multiple logical channels. For example, a YUV4:2:0-NV12 block copy from system memory to SIMCOP local memories requires two chained logical channels.
CAUTION: Software must ensure that only one trigger event source is selected at a given time for a logical channel; otherwise, unpredictable behavior may occur.
Typically, the following combinations can be used:
- Single channel triggered by software: Hardware synchronization and linking are disabled. Software writes the SIMCOP_DMA_CHAN_CTRL_i[2] SWTRIGGER bit to start the transfer of one 2D block. Software must not trigger the channel again before the CHANx_BLOCK_DONE_IRQ (where x = channel number) event is generated by the DMA.
- Channels chain-triggered by software: Multiple channels are linked together using the SIMCOP_DMA_CHAN_CTRL_i[16:12] LINKED bit field. Software triggers the first one in the chain and monitors the CHANx_BLOCK_DONE_IRQ (where x = channel number) event to know when the chain can be triggered again.
- Single channel triggered by hardware synchronization: Sensitivity on START pulses is activated through the SIMCOP_DMA_CHAN_CTRL_i[19:17] HWSTART bit field. DONE pulse generation is activated using the SIMCOP_DMA_CHAN_CTRL_i[22:20] HWSTOP bit field.
- Channels chain-triggered by hardware: Multiple channels are linked together using the SIMCOP_DMA_CHAN_CTRL_i[16:12] LINKED bit field. Sensitivity on START pulses is activated for the first channel in the chain through the SIMCOP_DMA_CHAN_CTRL_i[19:17] HWSTART bit field. DONE pulse generation for the last channel in the chain is activated using the SIMCOP_DMA_CHAN_CTRL_i[22:20] HWDONE bit field.