SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
The VPDMA has 4 interrupt group(s). Each group has an interrupt for all the client interrupts, an interrupt for every 32 channels, a interrupt for each list complete, an interrupt for each list notify and an interrupt for for all of the descriptor interrupts. Each of these groups can be individually masked so that only the interrupts specified will trigger the higher level interrupt.
Each interrupt source can be individually masked independently for each seperate interrupt group. A status register bit exists for each interrupt source for for each interrupt group, that is set whenever the interrupt event occurs even when if the interrupt is masked. The status register bit will remain set until cleared by software by writing a one to the status bit.
Table 10-19 shows all interrupt events from the VPDMA that go to VPE top level. The interrupt events are mapped to one interrupt line, INT0, that go to VPE top level.
Interrupt | Event Flag Registers | Event Mask Registers | Description |
---|---|---|---|
vpdma_int_channel_group0 | VPE_INT0_CHANNEL0_INT_STAT | VPE_INT0_CHANNEL0_INT_MASK | An unmasked channel interrupt for interrupt group 0 in channel register 0 has fired. |
vpdma_int_channel_group1 | VPE_INT0_CHANNEL1_INT_STAT | VPE_INT0_CHANNEL1_INT_MASK | An unmasked channel interrupt for interrupt group 1 in channel register 0 has fired. |
vpdma_int_channel_group2 | VPE_INT0_CHANNEL2_INT_STAT | VPE_INT0_CHANNEL2_INT_MASK | An unmasked channel interrupt for interrupt group 2 in channel register 0 has fired. |
vpdma_int_channel_group3 | VPE_INT0_CHANNEL3_INT_STAT | VPE_INT0_CHANNEL3_INT_MASK | An unmasked channel interrupt for interrupt group 3 in channel register 0 has fired. |
vpdma_int_channel_group4 | VPE_INT0_CHANNEL4_INT_STAT | VPE_INT0_CHANNEL4_INT_MASK | An unmasked channel interrupt for interrupt group 4 in channel register 0 has fired. |
vpdma_int_channel_group5 | VPE_INT0_CHANNEL5_INT_STAT | VPE_INT0_CHANNEL5_INT_MASK | An unmasked channel interrupt for interrupt group 5 in channel register 0 has fired. |
vpdma_int_list0_complete | List 0 has completed | ||
vpdma_int_list0_notify | The data transfer in list 0 with the Notify Field set in the descriptor has completed | ||
vpdma_int_list1_complete | List 1 has completed | ||
vpdma_int_list1_notify | The data transfer in list 1 with the Notify Field set in the descriptor has completed | ||
vpdma_int_list2_complete | List 2 has completed | ||
vpdma_int_list2_notify | The data transfer in list 2 with the Notify Field set in the descriptor has completed | ||
vpdma_int_list3_complete | List 3 has completed | ||
vpdma_int_list3_notify | The data transfer in list 3 with the Notify Field set in the descriptor has completed | ||
vpdma_int_list4_complete | VPE_INT0_LIST0_INT_STAT | VPE_INT0_LIST0_INT_MASK | List 4 has completed |
vpdma_int_list4_notify | The data transfer in list 4 with the Notify Field set in the descriptor has completed | ||
vpdma_int_list5_complete | List 5 has completed | ||
vpdma_int_list5_notify | The data transfer in list 5 with the Notify Field set in the descriptor has completed | ||
vpdma_int_list6_complete | List 6 has completed | ||
vpdma_int_list6_notify | The data transfer in list 6 with the Notify Field set in the descriptor has completed | ||
vpdma_int_list7_complete | List 7 has completed | ||
vpdma_int_list7_notify | The data transfer in list 7 with the Notify Field set in the descriptor has completed | ||
vpdma_int_client | VPE_INT0_CLIENT0_INT_STAT VPE_INT0_CLIENT1_INT_STAT | VPE_INT0_CLIENT0_INT_MASK VPE_INT0_CLIENT1_INT_MASK | Client Interrupt |
vpdma_int_descriptor | VPE_INT0_LIST0_INT_STAT | VPE_INT0_LIST0_INT_STAT | Descriptor Interrupt |
In Table 10-19 above, the “channel_group”, “client” and “descriptor” interrupts are actually a set of additional interrupts. When software receives an interrupt from a “channel_group,” “client,” or “descriptor” it must read the appropriate register within the VPDMA (refer to Table 10-20 to determine what the actual interrupt was).
Interrupt | Interrupt Group | Description |
---|---|---|
channel_hq_mv | channel_group0 | The last read DMA transaction has occurred for channel hq_mv and the channel is free to be updated for the next transfer. This will fire before the destination has received the data as it will have just been stored in the internal buffer. The client dei_hq_mv_in will now accept a new descriptor from the List Manager. |
channel_hq_mv_out | channel_group0 | The last read DMA transaction has occurred for channel hq_mv and the channel is free to be updated for the next transfer. This will fire before the destination has received the data as it will have just been stored in the internal buffer. The client dei_hq_mv_in will now accept a new descriptor from the List Manager. |
channel_hq_vid1_chroma | channel_group0 | The last write DMA transaction has completed for channel hq_vid1_chroma. All data from the channel has been sent and received by the external memory. If a new channel has not been setup for the client then the client will be fully empty at this point. |
channel_hq_vid1_luma | channel_group0 | The last write DMA transaction has completed for channel hq_vid1_luma. All data from the channel has been sent and received by the external memory. If a new channel has not been setup for the client then the client will be fully empty at this point. |
channel_hq_vid2_chroma | channel_group0 | The last write DMA transaction has completed for channel hq_vid2_chroma. All data from the channel has been sent and received by the external memory. If a new channel has not been setup for the client then the client will be fully empty at this point. |
channel_hq_vid2_luma | channel_group0 | The last write DMA transaction has completed for channel hq_vid2_luma. All data from the channel has been sent and received by the external memory. If a new channel has not been setup for the client then the client will be fully empty at this point. |
channel_hq_vid3_chroma | channel_group0 | The last write DMA transaction has completed for channel hq_vid3_chroma. All data from the channel has been sent and received by the external memory. If a new channel has not been setup for the client then the client will be fully empty at this point. |
channel_hq_vid3_luma | channel_group0 | The last write DMA transaction has completed for channel hq_vid3_luma. All data from the channel has been sent and received by the external memory. If a new channel has not been setup for the client then the client will be fully empty at this point. |
channel_vip1_porta_chroma | channel_group3 | The last write DMA transaction has completed for channel vip1_porta_chroma. All data from the channel has been sent and received by the external memory. If a new channel has not been setup for the client then the client will be fully empty at this point. |
channel_vip1_porta_luma | channel_group3 | The last write DMA transaction has completed for channel vip1_porta_luma. All data from the channel has been sent and received by the external memory. If a new channel has not been setup for the client then the client will be fully empty at this point. |
channel_vip1_porta_rgb | channel_group3 | The last write DMA transaction has completed for channel vip1_porta_rgb. All data from the channel has been sent and received by the external memory. If a new channel has not been setup for the client vip1_up_y then the client will be fully empty at this point. |
client_dei_hq_1_chroma | client | The client interface dei_hq_1_chroma has reached its current configured interrupt event as specified by the last received control descriptor for this client. If no control descriptor has been configured this will default to having sent the End of Frame signal to the receiving module. |
client_dei_hq_1_luma | client | The client interface dei_hq_1_luma has reached its current configured interrupt event as specified by the last received control descriptor for this client. If no control descriptor has been configured this will default to having sent the End of Frame signal to the receiving module. |
client_dei_hq_2_chroma | client | The client interface dei_hq_2_chroma has reached its current configured interrupt event as specified by the last received control descriptor for this client. If no control descriptor has been configured this will default to having sent the End of Frame signal to the receiving module. |
client_dei_hq_2_luma | client | The client interface dei_hq_2_luma has reached its current configured interrupt event as specified by the last received control descriptor for this client. If no control descriptor has been configured this will default to having sent the End of Frame signal to the receiving module. |
client_dei_hq_3_chroma | client | The client interface dei_hq_2_luma has reached its current configured interrupt event as specified by the last received control descriptor for this client. If no control descriptor has been configured this will default to having sent the End of Frame signal to the receiving module. |
client_dei_hq_3_luma | client | The client interface dei_hq_3_luma has reached its current configured interrupt event as specified by the last received control descriptor for this client. If no control descriptor has been configured this will default to having sent the End of Frame signal to the receiving module. |
client_dei_hq_mv_in | client | The client interface dei_hq_mv_in has reached its current configured interrupt event as specified by the last received control descriptor for this client. If no control descriptor has been configured this will default to having sent the End of Frame signal to the receiving module. |
client_dei_hq_mv_out | client | The client interface dei_hq_mv_out has reached its current configured interrupt event as specified by the last received control descriptor for this client. If no control descriptor has been configured this will default to having received the End of Frame signal from the transmitting module. |
client_vip1_up_uv | client | The client interface vip1_up_uv has reached its current configured interrupt event as specified by the last received control descriptor for this client. If no control descriptor has been configured this will default to having received the End of Frame signal from the transmitting module. |
client_vip1_up_y | client | The client interface vip1_up_y has reached its current configured interrupt event as specified by the last received control descriptor for this client. If no control descriptor has been configured this will default to having received the End of Frame signal from the transmitting module. |
client_vpi_ctl | client | The client interface vpi_ctl has reached its current configured interrupt event as specified by the last received control descriptor for this client. If no control descriptor has been configured this will default to having sent the End of Frame signal to the receiving module. |
control_descriptor_int0 | descriptor | A Send Interrupt Control Descriptor has been received by the list manager with a source value of 0. |
control_descriptor_int1 | descriptor | A Send Interrupt Control Descriptor has been received by the list manager with a source value of 1. |
control_descriptor_int10 | descriptor | A Send Interrupt Control Descriptor has been received by the list manager with a source value of 10. |
control_descriptor_int11 | descriptor | A Send Interrupt Control Descriptor has been received by the list manager with a source value of 11. |
control_descriptor_int12 | descriptor | A Send Interrupt Control Descriptor has been received by the list manager with a source value of 12. |
control_descriptor_int13 | descriptor | A Send Interrupt Control Descriptor has been received by the list manager with a source value of 13. |
control_descriptor_int14 | descriptor | A Send Interrupt Control Descriptor has been received by the list manager with a source value of 14. |
control_descriptor_int15 | descriptor | A Send Interrupt Control Descriptor has been received by the list manager with a source value of 15. |
control_descriptor_int2 | descriptor | A Send Interrupt Control Descriptor has been received by the list manager with a source value of 2. |
control_descriptor_int3 | descriptor | A Send Interrupt Control Descriptor has been received by the list manager with a source value of 3. |
control_descriptor_int4 | descriptor | A Send Interrupt Control Descriptor has been received by the list manager with a source value of 4. |
control_descriptor_int5 | descriptor | A Send Interrupt Control Descriptor has been received by the list manager with a source value of 5. |
control_descriptor_int6 | descriptor | A Send Interrupt Control Descriptor has been received by the list manager with a source value of 6. |
control_descriptor_int7 | descriptor | A Send Interrupt Control Descriptor has been received by the list manager with a source value of 7. |
control_descriptor_int8 | descriptor | A Send Interrupt Control Descriptor has been received by the list manager with a source value of 8. |
control_descriptor_int9 | descriptor | A Send Interrupt Control Descriptor has been received by the list manager with a source value of 9. |
list0_complete | list0_complete | List 0 has completed and a new list can be loaded. |
list0_notify | list0_notify | A channel set by List 0 has completed and the Notify bit had been set in the descriptor for that channel. |
list1_complete | list1_complete | List 1 has completed and a new list can be loaded. |
list1_notify | list1_notify | A channel set by List 1 has completed and the Notify bit had been set in the descriptor for that channel. |
list2_complete | list2_complete | List 2 has completed and a new list can be loaded. |
list2_notify | list2_notify | A channel set by List 2 has completed and the Notify bit had been set in the descriptor for that channel. |
list3_complete | list3_complete | List 3 has completed and a new list can be loaded. |
list3_notify | list3_notify | A channel set by List 3 has completed and the Notify bit had been set in the descriptor for that channel. |
list4_complete | list4_complete | List 4 has completed and a new list can be loaded. |
list4_notify | list4_notify | A channel set by List 4 has completed and the Notify bit had been set in the descriptor for that channel. |
list5_complete | list5_complete | List 5 has completed and a new list can be loaded. |
list5_notify | list5_notify | A channel set by List 5 has completed and the Notify bit had been set in the descriptor for that channel. |
list6_complete | list6_complete | List 6 has completed and a new list can be loaded. |
list6_notify | list6_notify | A channel set by List 6 has completed and the Notify bit had been set in the descriptor for that channel. |
list7_complete | list7_complete | List 7 has completed and a new list can be loaded. |
list7_notify | list7_notify | A channel set by List 7 has completed and the Notify bit had been set in the descriptor for that channel. |
other | Any channel that is not assigned to a specific client has completed. |