28.6. mSGDMA Interrupt
- transfer completion
- early termination (applicable only for Streaming to Memory-Mapped configuration)
- error detection (applicable only for Streaming to Memory-Mapped configuration)
When the Prefetcher is disabled, the IRQ is generated from the dispatcher block. On the other hand, when the Prefetcher is enabled, the IRQ is generated from the Prefetcher.
There is an equivalent global interrupt enable mask control bit and IRQ status bit which are defined in both dispatcher CSR and Prefetcher CSR. When Prefetcher is enabled, these two bits need to be defined in the Prefetcher as well since the actual IRQ register is now located in the Prefetcher. When the Prefetcher is disabled, software shall use the global interrupt enable mask bit and IRQ bit in the dispatcher CSR. On the other hand, when the Prefetcher is enabled, software shall use the global interrupt enable mask bit and IRQ bit in the Prefetcher CSR.
The masking bits for each of the interrupt sources are programmed in the descriptor, so that interrupt enables are unique for each transfer. When Prefetcher is enabled, the masking bits information will be passed to the Prefetcher through the Avalon-ST response interface from the dispatcher.
Upon receiving the interrupt assertion from mSGDMA IP, the software should poll for the STATUS register. The IRQ status bit is set by hardware and cleared by software. To clear this bit, software needs to write a 1 to this bit. The IRQ status bit is set when a hardware event has a higher priority than a clear by a software event. The IRQ port remains asserted as long as the irq bit of the Status register is still asserted and not cleared by software.