Dear devs,
I'm using BBB connected to a FPGA with GPMC interface. And using two xdma events for send and receive data between BBB to FPGA.
And also using EDMA for transferring data by syncing with xdma_events.
Running Linux Kernel : uname -a
Linux arm 3.8.13-bone53 #2 SMP Tue Aug 26 09:34:45 EDT 2014 armv7l armv7l armv7l GNU/Linux
Device overlay settings for XDMA events interrupts :
&edma {
ti,edma-xbar-event-map = <29 21>, /* xdma_event_intr1 -> 21 */
<30 20>; /* xdma_event_intr2 -> 20 */
At
the very first time of transferring(after a reboot), I issued small
number of transfers. I verified the amount of pulses at xdma_event_int2
signal has the same amount. And I am getting a Transfer callback with
DMA_COMPLETE. And immediately a tons of kernel messages coming as
follows
irq 14: nobody cared (try booting with the "irqpoll" option)
.....................
[<c00b995d>] (sys_read+0x29/0x48) from [<c000c601>] (ret_fast_syscall+0x1/0x46)
handlers:
[<c001755d>] dma_ccerr_handler
Disabling IRQ #14
DMA register values : (dma_channel: 14)
dma param: opt = 0x80314000
dma param: src = 0x9E560000
dma param: dst = 0x01000020
dma param: acnt = 12
dma param: bcnt = 10
dma param: ccnt = 100
dma param: brld = 0
dma param: link (SMD)= 0xffff
lc_transfer_callback ch_status: 1 chan: 20
After the first time error happened, later transfers are happening with out any problem with DMA_COMPLETE.
And the content of the /proc/interrupts as follows
CPU0
7: 0 INTC tps65217
12: 2657 INTC edma
14: 100000 INTC edma_error
18: 19226 INTC musb-hdrc.0.auto
19: 1 INTC musb-hdrc.1.auto
30: 96 INTC 4819c000.i2c
40: 0 INTC 4a100000.ethernet
41: 0 INTC 4a100000.ethernet
42: 0 INTC 4a100000.ethernet
43: 0 INTC 4a100000.ethernet
64: 8395 INTC mmc0
67: 12442 INTC gp_timer
70: 1730 INTC 44e0b000.i2c
72: 813 INTC OMAP UART0
75: 0 INTC rtc0
76: 1 INTC rtc0
109: 0 INTC 53100000.sham
134: 0 GPIO mmc0
How to avoid this problem?
Thanks
Vishwa Shanika