edma_error is coming while using xdma event interrupts with EDMA

81 views
Skip to first unread message

Vishwa Shanika

unread,
May 8, 2015, 2:36:41 AM5/8/15
to beagl...@googlegroups.com

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
Reply all
Reply to author
Forward
0 new messages