Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Dec 2009 14:05:26 +0100
From:      Marius Strobl <marius@alchemy.franken.de>
To:        Andrew Belashov <bel@orel.ru>
Cc:        freebsd-sparc64@freebsd.org
Subject:   Re: busdma is not properly implemented on 8.0-RELEASE?
Message-ID:  <20091228130526.GA71522@alchemy.franken.de>
In-Reply-To: <4B385F0C.3010508@orel.ru>
References:  <4B385F0C.3010508@orel.ru>

next in thread | previous in thread | raw e-mail | index | archive | help
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




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20091228130526.GA71522>