31st address line sometimes not used on EHCI/UHCI/OHCI

Hans Petter Selasky hselasky at c2i.net
Mon May 28 06:43:58 UTC 2007


On Sunday 27 May 2007 22:54, M. Warner Losh wrote:
> In message: <200705272235.46048.hselasky at c2i.net>
>
>             Hans Petter Selasky <hselasky at c2i.net> writes:
> : I've got some reports back that some USB host controllers do not support
> : transferring memory from a location higher than 2GB.
> :
> : What should we do about this?
> :
> : Should we limit all USB DMA allocations to the lower 2GB of the memory?
>
> busdma should be managing this behind the scenes.  You shouldn't care,
> as the problematical usb controllers, if any, can do the bouncing as
> required.  We need to get the hierarchical bus tagging stuff more
> fully integrated, then we'd get this for free.

Yes, I just changed the lowaddr when I allocated the tag, and that did the 
trick!

>
> Of course, you'd have to stop using contigmalloc to allocate all the
> memory for usb.  That won't work on some of the embedded platforms we
> have, for example, because memory on them isn't as fungible as it is
> on i386 and amd64.

My new USB stack has been using "bus_dmamem" for quite a while.

--HPS


More information about the freebsd-usb mailing list