Date: Sun, 02 Jul 2006 18:22:43 -0700 From: Julian Elischer <julian@elischer.org> To: Ian Dowse <iedowse@iedowse.com> Cc: David Malone <dwmalone@maths.tcd.ie>, freebsd-hackers@freebsd.org, Hans Petter Selasky <hselasky@c2i.net> Subject: Re: contiguous memory allocation problem Message-ID: <44A87163.1020203@elischer.org> In-Reply-To: <200607021305.aa75873@nowhere.iedowse.com> References: <200607021305.aa75873@nowhere.iedowse.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Ian Dowse wrote: >In message <200607021138.11945.hselasky@c2i.net>, Hans Petter Selasky writes: > > >>But there is one problem, that has been overlooked, and that is High speed >>isochronous transfers, which are not supported by the existing USB system. I >>don't think that the EHCI specification was designed for scatter and gather, >>when you consider this: >> >>8 transfers of 0xC00 bytes has to fit on 7 pages. If this is going to work, >>and I am right, one page has to contain two transfers. (see page 43 of >>ehci-r10.pdf) >> >> > >I haven't looked into the details, but the text in section 3.3.3 >seems to suggest that EHCI is designed to not require physically >contiguous allocations here either, so the same approach of using >bus_dmamap_load() should work: > > This data structure requires the associated data buffer to be > contiguous (relative to virtual memory), but allows the physical > memory pages to be non-contiguous. Seven page pointers are provided > to support the expression of 8 isochronous transfers. The seven > pointers allow for 3 (transactions) * 1024 (maximum packet size) > * 8 (transaction records) (24576 bytes) to be moved with this > data structure, regardless of the alignment offset of the first > page. > > yes, as long as the beffers are contiguous in some virtual space then the maximum number of pages they can need is 7. (they actually fit into 6 but they may start part way through the first page and may therefore overflow into a 7th). >Ian >_______________________________________________ >freebsd-hackers@freebsd.org mailing list >http://lists.freebsd.org/mailman/listinfo/freebsd-hackers >To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" > >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?44A87163.1020203>