Date: Mon, 09 Feb 2009 12:20:03 -0700 From: Scott Long <scottl@samsco.org> To: Marcel Moolenaar <xcllnt@mac.com> Cc: svn-src-head@FreeBSD.org, svn-src-all@FreeBSD.org, src-committers@FreeBSD.org, "M. Warner Losh" <imp@bsdimp.com>, John Baldwin <jhb@FreeBSD.org> Subject: Re: svn commit: r188350 - in head/sys: amd64/amd64 arm/arm dev/usb2/core i386/i386 ia64/ia64 sys Message-ID: <499081E3.9050009@samsco.org> In-Reply-To: <0AA26479-B36A-4412-BF2B-7D4C573BC266@mac.com> References: <200902082254.n18MsxVt037307@svn.freebsd.org> <200902090923.45887.jhb@freebsd.org> <2EA5FEEB-E676-4D1B-9700-399C783F4590@mac.com> <200902091342.16078.jhb@freebsd.org> <0AA26479-B36A-4412-BF2B-7D4C573BC266@mac.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Marcel Moolenaar wrote: > > On Feb 9, 2009, at 10:42 AM, John Baldwin wrote: > >>>> The 'align' parameter to bus_dma_tag_create(). If your hardware >>>> needs buffers >>>> to be aligned on a 4-byte boundary and you bus_dmamap_load() a buffer >>>> where 'addr % 4 != 0', then the buffer is bounced. Since by default >>>> the new >>>> buffer starts on a page boundary, it satifies the 'addr % 4'. >>> >>> But according to the man page, bounce buffering may not >>> be implemented or not be applicable to a platform. It >>> seems to me that you cannot depend on this side-effect >>> in a generic driver. Are you guys talking only in terms >>> of i386 or is this generally applicable? >> >> All of the platforms that do bounce buffering will honor this. If a >> given >> platform doesn't support bounce buffering then I imagine it will fail >> misaligned requests with an error. It would probably make it easier to >> support bounce buffering on more platforms if some of the support code >> for >> managing bounce zones could be moved into a subr_busdma.c or the like >> since >> much of it is copy and pasted. > > Very much agreed with the unification in subr_busdma.c. > > If the shared implementation then grows a IOMMU interface, > then platforms with a IOMMU can avoid bounce buffering > when possible (i.e. no re-alignment is needed or enough > free IOMMU mappings exist to avoid the bounce buffering). > Yes, this work in progress. Scott
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?499081E3.9050009>