busdma is not properly implemented on 8.0-RELEASE?

Marius Strobl marius at alchemy.franken.de
Mon Dec 28 13:05:30 UTC 2009


On Mon, Dec 28, 2009 at 10:32:28AM +0300, Andrew Belashov wrote:
> Hi, All!
> 
> After upgrading from FreeBSD 7.2-RELEASE to 8.0-RELEASE there were
> problems with USB. Related PR: usb/141918
> <http://www.freebsd.org/cgi/query-pr.cgi?pr=usb/141918>
> 
> Hans Petter Selasky wrote:
> "My guess for this issue is that the cache invalidate and cache flush
> instructions are not properly implemented by busdma on your platform."
> 
> How to check this guess?
> 

You could try whether inserting a cache_flush(); in iommu_dvmamap_sync()
makes a difference to this problem. What's already there should be more
than enough to ensure coherency between the bus and the CPUs though, so
if adding a cache flush actually makes a difference I think it's more
likely that ehci(4) is abusing bus_dmamap_sync(9) to achieve things it's
not intended to do but which work on some archs.

Marius



More information about the freebsd-sparc64 mailing list