MPC5200 PCI TX/RX FIFO
From: Nick Barendt <hidden>
Date: 2005-03-11 00:50:37
Has anyone had luck getting the MPC5200 PCI RX or TX FIFOs working, either directly or with Bestcomm DMA support? I've been trying to do so for a few weeks, on and off, with little luck. I'm probably missing something obvious.
I'm using Wolfgang's kernel tree, on a board similar to the IceCube.
I'd like to use the PCI RX FIFO to speed up moving data from a PCI device - it looks like the RX FIFO is the most straight-forward mechanism for bursting. I've had some luck getting the RX FIFO to pull data back from a PCI device, and can get a peripheral interrupt from the RX FIFO, but no matter what I do (read data from FIFO to DDR, clear status bits, etc.), I can't seem to acknowledge the interrupt at the peripheral end, so it continues to fire. I can't find anything in the MPC5200 user manual about acknowledging the interrupt in the PCI controller, unlike the FEC, say, which has documentation on how to ack FEC interrupts.
I then went the Bestcomm route, using the Bestcomm API, but I'm clearly missing something there, because the DMA engine indicates a TEA after a very long timeout. That problem might be related to my PCI RX FIFO interrupt problem, or might be completely different. Might it be that the Alarm signal to the DMA engine is the same as the interrupt signal to the core?
In the end, I'd like to go the DMA route. It is likely that using the RX FIFO would be a significant improvement over what I have right now, though, and it is (hopefully) easier to get up and running.
Does anyone have any wisdom (or, better yet, sample code :-) they can share on this?
Nick Barendt
VXI Technology, Inc.
Cleveland Instruments Division
5425 Warner Road, Suite 13
Valley View, OH 44125
PH: 216-447-4059
FAX: 216-447-8951
nbarendt@vxitech.com