MPC5200, PLX9054 PCI Card - stalled DMA transfers
Oliver Rutsch
orutsch at sympatec.com
Thu Mar 1 23:44:56 EST 2007
Hi,
we're using a TQM5200S-Module (MPC5200) on a STK52xx-board with a
PLX9054-based PCI card. The 2.4.25-kernel on the 3.1.1 ELDK had big
problems to map the PCI resources of this card, so I tried the latest
2.6.19.2-kernel of the 4.1 ELDK. This kernel mapped successfully the PCI
resources on this card.
After building the latest PLX driver on the 2.6.19-kernel (I had to make
some changes for the .19 kernel and for some litte/big endian issues) I
was able to transfer data with programmed I/O. But as this is too slow I
like to use the DMA functions of this device and here is the problem:
PLX provides an example program for scatter/gather DMA. This program
works with their latetst driver on a linux PC. But on the TQM5200 the
'Channel 0 done' flag of the DMASR0 register is never set after starting
the DMA transfer. What can be the reason for this? The debug output of
the driver looks O.K., but waiting for the DMA done interrupt gives a
timeout, because the flag is not set. I wrote some test patterns in my
DMA buffer before the DMA transfer and no byte of the buffer was
altered, so the DMA engine seems not to be able to write a single byte.
Has anybody this or a similar card running on a ppc environment? Any
ideas what I can do?
Thanks in advance and bye,
--
Dipl. Ing. Oliver Rutsch
EMail: orutsch at sympatec.com
More information about the Linuxppc-embedded
mailing list