Subject: MPC5200, PLX9054 PCI Card - stalled DMA transfers

From: Oliver Rutsch <[email-masked]>
Date: Thu, 01 Mar 2007 13:44:56 +0100

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: [email-masked]