On Friday 09 January 2004 11:06 am, Kelledin wrote: > Hmm. It looks like the driver tried to do mapping as if the > machine had a 32-bit address space. IIRC what it's supposed > to do is when it grabs some memory for PCI DMA mapping, it's > supposed to pass a flag signifying that the DMA region should > be accessible via 32-bit physical addressing. Otherwise PCI > devices would likely have some trouble getting to it! > > Apparently that flag didn't get passed somewhere, and the > prospective DMA buffer got allocated way high in the 64-bit > address space. So it couldn't be set up as a DMA buffer, and > the kernel's PCI DMA mapper spit it back. By my > understanding, that's a fairly common mistake when porting > kernel drivers to 64-bit architectures. > > I'll take a look at the source code this afternoon and see > what I can spot.
Apparently this type of DMA mapping doesn't work quite like I thought it did, or I'm missing something somewhere. Also, I'm compelled to wonder...what's your system type? Some revisions of the EB164 series core-logic have some limitations as to available DMA methods. You might be hitting one of those limitations here. -- Kelledin "If a server crashes in a server farm and no one pings it, does it still cost four figures to fix?"

