Посмотрел внимательно на Альтере:
ссылка там английским языком сказано:
Цитата
Title
Why do I only see one interrupt on the Scatter Gather DMA when enabling the MAX_DESC_PROCESSED interrupt?
Description
If you are using the MAX_DESC_PROCESSED interrupt from the Scatter Gather DMA you must update the MAX_DESC_PROCESSED field at each interrupt to a new value. The core implements an 8 bit counter which automatically wraps to zero when the count value equals 255.
For example, if you wanted the core to generate an interrupt after 2 descriptors were processed continually, you would initially set the MAX_DESC_PROCESSED field to 2 and then upon receiving the first interrupt you would update the MAX_DESC_PROCESSED field to 4, upon receiving the next interrupt update the field to 6 and so on.
Получается нужно обновлять состояние регистра управления на каждом прерывании.
Без вмешательства процессора не обойтись.
А жаль...