I encountered an issue with DMA running in SPI0.
Currently in MQX, I'm running an application that gathers data via SPI0 DMA.
Data gathering should not be interrupted. Its function is gather data all the time.
During the data gathering i got an error see below:
IO_IOCTL_SPI_READ_WRITE ... drivers/dma/mvf_edma.c:mcf_edma_isr: No handler for DMA channel (31)
drivers/dma/mvf_edma.c:mcf_edma_isr: No handler for DMA channel (31)
drivers/dma/mvf_edma.c:mcf_edma_isr: No handler for DMA channel (31)
drivers/dma/mvf_edma.c:mcf_edma_isr: No handler for DMA channel (31)
drivers/dma/mvf_edma.c:mcf_edma_isr: No handler for DMA channel (31)
drivers/dma/mvf_edma.c:mcf_edma_isr: No handler for DMA channel (31)
drivers/dma/mvf_edma.c:mcf_edma_isr: No handler for DMA channel (31)
drivers/dma/mvf_edma.c:mcf_edma_isr: No handler for DMA channel (31)
drivers/dma/mvf_edma.c:mcf_edma_isr: No handler for DMA channel (31)
drivers/dma/mvf_edma.c:mcf_edma_isr: No handler for DMA channel (31)
drivers/dma/mvf_edma.c:mcf_edma_isr: No handler for DMA channel (49)
drivers/dma/mvf_edma.c:mcf_edma_isr: No handler for DMA channel (48)
drivers/dma/mvf_edma.c:mcf_edma_isr: No handler for DMA channel (48)
I already disabled the DMA for SPI0 in Linux by disabling CONFIG_SPI_MVF_DSPI_EDMA.
Still the issue occurred.
I added some code to display the address, irq,dev_id and intr when the issue occurs.
Here is the result:
----------------------------------------------------------------------------------------------------------------------
drivers/dma/mvf_edma.c:mcf_
drivers/dma/mvf_edma.c:mcf_edma_isr: Invalid channel 49. addr=0xf20b8000, irq=42, dev_id=8a000000, intr=0x00020000drivers/dma/mvf_edma.c:mcf_edma_isr: No handler for DMA channel (31)
drivers/dma/mvf_edma.c:mcf_edma_isr: Invalid channel 31. addr=0xf20b8000, irq=42, dev_id=8a000000, intr=0x00000000
-------------------------------------------------------------------------------------------------------------------------
also i tried to display the interrupts trying to get who are using the irq 42
cat /proc/interrupts
CPU0
36: 0 GIC mvf_sema4_handler
40: 0 GIC mcf_edma
41: 0 GIC mcf_edma
42: 0 GIC mcf_edma
43: 0 GIC mcf_edma