Skip site navigation (1)Skip section navigation (2)
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>