Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Aug 2009 18:52:48 +0200
From:      Rafal Jaworowski <raj@semihalf.com>
To:        Hans Petter Selasky <hselasky@c2i.net>
Cc:        arm@freebsd.org, usb@freebsd.org, freebsd-current@freebsd.org
Subject:   Re: About the "USB Cache and busdma usage in USB" thread
Message-ID:  <B5D6F271-2EDE-4418-BFDD-F76549D63CC2@semihalf.com>
In-Reply-To: <200908031759.46491.hselasky@c2i.net>
References:  <3E1658AF-67C6-4E61-B6E7-BEF528C3FF4D@mac.com> <20090724.233404.-399282844.imp@bsdimp.com> <8DC8C704-F84D-4A60-A11B-2F877EB903C9@semihalf.com> <200908031759.46491.hselasky@c2i.net>

next in thread | previous in thread | raw e-mail | index | archive | help

On 2009-08-03, at 17:59, Hans Petter Selasky wrote:

> On Monday 03 August 2009 17:01:37 Rafal Jaworowski wrote:
>> Hans,
>> So how do you want to proceed with these cache sync issues? We need  
>> to
>> fix this before 8.0.
>
> Hi,
>
> CC'ed current: We have a case on ARM where bus_dmamap_sync() is not  
> suffient
> to update the CPU cache. One reason for this is that USB needs to  
> invalidate

It's not only ARM, but some MIPS and PowerPC observe this as well;  
actually I'd expect any system with non-coherent DMA will suffer from  
this with current USB stack.

> the same memory area multiple times. Busdma sync expects paired  
> operation when
> using the PRE and POST flags, from what I understand. I do not  
> consider this
> an USB issue, hence Semihalf has got the USB stack working by manually
> inserting CPU flush/invalidate calls into usb_pc_cpu_invalidate() and
> usb_pc_cpu_flush(). Their other solution however which modifies the
> bus_dmamap_sync() flags will break on platforms with more than 4  
> GByte of
> memory.
>
> Maybe Rafal can give a quick summar to new people at the -current  
> list, or see
> previous thread on the ARM mailing list.

This issue was discussed already: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=50307+0+archive/2009/freebsd-usb/20090628.freebsd-usb
See also the beginning of this thread: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=10461+0+archive/2009/freebsd-arm/20090726.freebsd-arm

Rafal




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B5D6F271-2EDE-4418-BFDD-F76549D63CC2>