Re: Failing to get DMA working with MPC5200 (TQM5200) and CompactFlash
From: Josh Triplett <josh@joshtriplett.org>
Date: 2010-03-26 21:32:13
On Fri, Mar 26, 2010 at 12:22:32PM -0600, Grant Likely wrote:
On Tue, Mar 16, 2010 at 11:17 PM, Josh Triplett [off-list ref] wrote:quoted
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? - Josh Triplett