On Nov 8, 2008, at 4:53 AM, Hans Petter Selasky wrote:

On Saturday 08 November 2008, Alexander Motin wrote:
Hans Petter Selasky wrote:
http://perforce.freebsd.org/chv.cgi?CH=152649

Change 152649 by [EMAIL PROTECTED] on 2008/11/08 09:09:50


   Fix a serious BUSDMA bug: The initial virtual page offset is
   not retained on the bounce pages, which is what the EHCI and
   the OHCI expects.

I'm sorry, but are you sure with this? If bounce page will have the same page offset as original data, then how bus_dma_tag_create()'s alignment
parameter expected to work? What if data are misaligned, but hardware
require alignment?

Hi,

I'm not saying that my patch is fully correct for all cases, but at least it
solves the USB case. USB uses an alignment of 1-byte for data.

Another way to look at it is that USB (at least EHCI) uses page-aligned
data and that for the first descriptor you can optionally add an offset
within the page. Effectively this gives you 1-byte alignment, but it
comes with the restriction that on crossing the page boundary, all data
comes from offset 0 on subsequent pages.

--
Marcel Moolenaar
[EMAIL PROTECTED]



_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to