On Tue, 18 Dec 2012 13:06:44 +0100
Hans Petter Selasky <hsela...@c2i.net> wrote:
> Hi Andrew,
> 
> > The BUS_DMA_COHERENT flag does nothing on armv6 as we need the cache
> > enabled for atomic operations to work correctly and we would have to
> > disable the cache on the entire page. This is acceptable behaviour
> > from the description of the flag in the busdma man page.
> 
> Yes, but when I allocate memory from the USB stack, then I want that
> memory to not be cached. It is simply not that useful to have that
> memory cached. I didn't check the latest state of busdma, but if I'm
> not mistaken, if the BUS_DMA_COHERENT flag is set on the DMA tag, the
> flush/invalidate will simply return and do nothing. Maybe that is the
> problem ...

The exact meaning of BUS_DMA_COHERENT depends on the architecture. The
code is still required to call bus_dmamap_sync with a coherent map but
when the flag is implemented the cost of the operation will be reduced.
It doesn't guarantee the memory is uncached, it may be implemented that
way but the USB code can't rely on it.

Andrew
_______________________________________________
freebsd-usb@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to