Failing to get DMA working with MPC5200 (TQM5200) and CompactFlash

Grant Likely grant.likely at secretlab.ca
Sat Mar 27 09:02:00 EST 2010


On Fri, Mar 26, 2010 at 3:32 PM, Josh Triplett <josh at joshtriplett.org> wrote:
> On Fri, Mar 26, 2010 at 12:22:32PM -0600, Grant Likely wrote:
>> On Tue, Mar 16, 2010 at 11:17 PM, Josh Triplett <josh at joshtriplett.org> wrote:
>> > Hello,
>> >
>> > We've tried both 2.6.33 and DENX-v2.6.33.1, and we haven't managed to
>> > successfully use any form of DMA with the TQM5200 and a CompactFlash
>> > card.  We know the CF card supports DMA (or, at least, it says "UDMA"
>> > right on the card, and various reports say Lexar Professional CF cards
>> > do DMA), but the kernel always puts the card in PIO4 mode.  We tried
>> > libata.force=mwdma2 and libata.force=udma2 , and many other modes, but
>> > this always led to failures like this:
>> >
>> > [   31.994311] ata1: lost interrupt (Status 0x58)
>> > [   32.020435] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
>> > [   32.027712] ata1.00: failed command: READ DMA
>> > [   32.032236] ata1.00: cmd c8/00:08:00:00:00/00:00:00:00:00/e0 tag 0 dma 4096 in
>> > [   32.032249]          res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
>> > [   32.047212] ata1.00: status: { DRDY }
>> > [   32.051050] ata1: soft resetting link
>> > [   32.218796] ata1.00: FORCE: xfer_mask set to udma2
>> > [   32.230618] ata1.00: configured for UDMA/33
>> > [   32.235000] ata1.00: device reported invalid CHS sector 0
>> > [   32.240629] ata1: EH complete
>> > [   62.994310] ata1: lost interrupt (Status 0x58)
>> > [   63.020443] ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
>> > [   63.027722] ata1.00: failed command: READ DMA
>> > [   63.032246] ata1.00: cmd c8/00:08:00:00:00/00:00:00:00:00/e0 tag 0 dma 4096 in
>> > [   63.032259]          res 40/00:00:00:00:00/00:00:00:00:00/00 Emask 0x4 (timeout)
>> > [   63.047221] ata1.00: status: { DRDY }
>> > [   63.051060] ata1: soft resetting link
>> > [   63.218778] ata1.00: FORCE: xfer_mask set to udma2
>> > [   63.238603] ata1.00: configured for UDMA/33
>> > [   63.242978] ata1.00: device reported invalid CHS sector 0
>> > [   63.248609] ata1: EH complete
>> >
>> > We have the MPC5200C revision of the silicon.
>> >
>> > Does this sound like a known issue?  Can we do anything to troubleshoot
>> > this further?
>>
>> Not all CF adapters have all the pins wired up that are needed for
>> *DMA modes.  That is the most likely problem.
>
> True, but we bought a card that specifically advertises support for
> UDMA, and says UDMA right on the card's label.
>
> http://store.lexar.com/?productid=CF8GB-300-381
>
> It seems unlikely, though not impossible, that they would have screwed
> up that badly. :)
>
> By the way, we've also tested an IDE hard drive on this board, and it
> does UDMA2 just fine.
>
> Any thoughts on how we could try to solve this problem?

Not off the top of my head.  I'd have to get onto the board and poke
around to figure out what is going on.

g.

-- 
Grant Likely, B.Sc., P.Eng.
Secret Lab Technologies Ltd.


More information about the Linuxppc-dev mailing list