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