Subject: Re: MPC5200, PLX9054 PCI Card - stalled DMA transfers

From: David Hawkins <[email-masked]>
Date: Fri, 09 Mar 2007 09:03:40 -0800

Hi Oliver,

> The PCI card I'm using works without problems on a X86 PC, so I think 
> the PLX hardware is O.K. I checked every local PLX9054 register on the 
> MPC5200 against the X86 PC. On both computers they have the same values.

Ok, that eliminates a hardware error in reading registers on the board,
i.e., the PCI connection is fine. There could still be errors in
the PCI-9054 local bus connections ...

> Even a simple block DMA does not work, although I checked all registers 
> and addresses. So I think the plx driver software is O.K. 

I'm sure you have checked this, but I'll mention it just in case ...
you are using readl/writel type functions to access the little-endian
PCI registers from the big-endian PowerPC right?

> on the MPC5200 
> and there has to be a hardware reason. Maybe the pci bus is not granted 
> to the bus master controller of the PLX9054 when it requests the bus.
> We'll check this when our hardware guy has time for this ;-)

A PCI bus logic analyzer is pretty nice for this type of issue.
I use an Agilent 1680A, and a FuturePlus PCI or CPCI adapter
board. The analyzer is about $20k, while the adapters are about
$2k. However, they pay for themselves pretty quickly.

>> Anyway, manually setup a DMA transfer and convince yourself that
>> you know which bits to twiddle, then figure out why the driver
>> code isn't doing as its asked.
> 
> I've done so without success. 

Without success on the x86 too?

> The driver seems to make everything correct. A block DMA is fairly
> simple on the 9054, so I think there must be a hardware reason for this.
> Has anybody ever used a PCI card on the MPC5200 which has its own 
> busmaster controller? I think most people use the BestComm DMA 
> controller on the MPC5200, right?

I tested the PCI debug driver I wrote from an x86 with my PLX
boards, and on a Yosemite (440EP) board. I tested DMA using
the PCI-9054 DMA controllers, and the 440EP controllers.

Read p23 to p35 of my 440EP test document, I have some tests
there that you could repeat ...

http://www.ovro.caltech.edu/~dwh/powerpc_440ep.pdf

However, life will be much easier if you can grab the hardware
guy's logic analyzer ... out of his cold dead hands if need be ;)

Dave