What I meant was: Is it possible that the IOMMU code will return a
virtual DMA address before 4 GB but will somehow forget to actually map
that address to the data buffer?
The problem goes away when Pedro boots with mem=4G. And the dma_mask
value is set properly (in fact, the ehci-hcd driver currently doesn't
use 64-bit DMA at all).
If anyone wants to see the debug log entries showing the buffer and DMA
addresses, they are attached to this email message:
http://marc.info/?l=linux-kernel&m=127076841801054&w=2
Either the data isn't getting written to the buffer correctly or else
the buffer isn't getting sent to the device correctly. Can anybody
suggest a means of determining which is the case?
Alan Stern
--