Hi,
On Linux side you could try to disable the interrupt routed to the A5 corresponding to the DMA.
void mvf_init_irq(void)
{
unsigned int i;
void __iomem *int_router_base =
MVF_IO_ADDRESS(MVF_MSCM_INT_ROUTER_BASE);
struct irq_desc *desc;
unsigned short route;
/* start offset if private timer irq id, which is 29.
* ID table:
* Global timer, PPI -> ID27
* A legacy nFIQ, PPI -> ID28
* Private timer, PPI -> ID29
* Watchdog timers, PPI -> ID30
* A legacy nIRQ, PPI -> ID31
*/
gic_init(0, 27, MVF_IO_ADDRESS(MVF_INTD_BASE_ADDR),
MVF_IO_ADDRESS(MVF_SCUGIC_BASE_ADDR + 0x100));
for (i = MXC_INT_START; i <= MXC_INT_END; i++) {
desc = irq_to_desc(i);
desc->irq_data.chip->irq_set_wake = mvf_gic_irq_set_wake;
}
mvf_register_gpios();
int_router_base += 0x80;
for (i = 0; i < 112; i++) {
route = 1 | __raw_readw(int_router_base);
__raw_writew(route, int_router_base);
int_router_base += 2;
}
}
This function is found at vim arch/arm/mach-mvf/irq.c
Let me debug the M4 (MQX side) to verify the possible problem.
Best Regards,
Alejandro