AnsweredAssumed Answered

Cannot DMA with Hypervisor on T1042

Question asked by Pat Erb on Apr 20, 2015
Latest reply on Apr 29, 2015 by Scott Wood



I am trying to DMA from a custom ASIC over PCIe and cannot get it to work.  If I take the Hypervisor out of the equation (by just booting Linux), the DMA seems to work fine.  When I add in the Hypervisor, I get a "Transmit Error" from the Freescale ELO driver (fsldma.c). 


fsl-elo-dma ffe100300.dma0: chan0: Transfer Error!

fsl-elo-dma ffe100300.dma0: chan0: irq: unhandled sr 0x00000080


According to the t1042 reference manual, the cause of this error could be a few different things:


On a transfer error (for example, non-correctable ECC errors on memory accesses, parity

errors on flash controller, address mapping errors, and so on), the DMA halts by setting

SRn[TE] and generates an interrupt if MRn[EIE] is set.


Unfortunately, I don't see any method to retrieve more information on what is actually the issue.  Hypervisor prints out no errors or warnings when this happens.  I've read through the Infocenter information on the Hypervisor, and believe I've setup everything correctly.  I have a DMA window setup for the RAM area I would like to DMA into (I also tried setting up a DMA window at the address of the ASIC in PCIe space where I am DMAing from, but that also did not help).


I can forward on my Hypervisor DTS file, the Linux DTS file and also a dump of the Guest device tree if that would help.  I'm really just looking for any clues of where my issue might be or things I could look for to help debug the problem.