Subject: Re: Problems with "bus_dmamap_sync()" on sparc64
To: Hans Petter Selasky <hselasky@c2i.net>
From: Martin Husemann <martin@duskware.de>
List: tech-kern
Date: 01/23/2007 14:41:50
On Tue, Jan 23, 2007 at 02:22:17PM +0100, Hans Petter Selasky wrote:
> iommu_dvmamap_sync_range() calls iommu_strbuf_flush()
> 
> #define iommu_strbuf_flush(i, v) do {                                   \
>         if ((i)->sb_flush)                                              \
>                 bus_space_write_8((i)->sb_is->is_bustag, (i)->sb_sb,    \
>                         STRBUFREG(strbuf_pgflush), (v));                \
>         } while (0)
> 
> 
> What I see is that "bus_dmamap_sync()" ends up calling "bus_space_write_8()" 
> to synchronize the memory.

Check the ASI used by the bus handle (from memory I guess that would 
be something like (i)->sb_sb._asi).

Martin