Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 8 Nov 2008 13:53:09 +0100
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        freebsd-usb@freebsd.org
Cc:        freebsd-current@freebsd.org
Subject:   Re: (FWD) Serious busdma bug in -current in relation to USB harware.
Message-ID:  <200811081353.09697.hselasky@c2i.net>
In-Reply-To: <200811081023.10058.hselasky@freebsd.org>
References:  <20081107082740.GA1334@icarus.home.lan> <20081108001128.GA1437@icarus.home.lan> <200811081023.10058.hselasky@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Saturday 08 November 2008, Alexander Motin wrote:
> Hans Petter Selasky wrote:
> > http://perforce.freebsd.org/chv.cgi?CH=152649
> >
> > Change 152649 by hselasky@hselasky_laptop001 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.

Probably someone needs to sit down a think this through. Like it is now, it is 
very scary with regard to USB!

Maybe it is time to create a new busdma tag flag? BUS_DMA_NOREALIGN?

If this flag is set, busdma should refuse to load the memory if the memory is 
not aligned already to the given aligment in the DMA tag ?

--HPS



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