From owner-freebsd-current@FreeBSD.ORG Tue Jan 10 22:23:44 2012 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2B86310656D2; Tue, 10 Jan 2012 22:23:43 +0000 (UTC) (envelope-from mj@feral.com) Received: from ns1.feral.com (ns1.feral.com [192.67.166.1]) by mx1.freebsd.org (Postfix) with ESMTP id E74DE8FC1D; Tue, 10 Jan 2012 22:23:42 +0000 (UTC) Received: from ns1.feral.com (localhost [127.0.0.1]) by ns1.feral.com (8.14.4/8.14.4) with ESMTP id q0AMNgR3092155 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 10 Jan 2012 14:23:42 -0800 (PST) (envelope-from mj@feral.com) Received: from localhost (mjacob@localhost) by ns1.feral.com (8.14.4/8.14.4/Submit) with ESMTP id q0AMNgsD092152; Tue, 10 Jan 2012 14:23:42 -0800 (PST) (envelope-from mj@feral.com) X-Authentication-Warning: ns1.feral.com: mjacob owned process doing -bs Date: Tue, 10 Jan 2012 14:23:42 -0800 (PST) From: Matthew Jacob To: Andriy Gapon In-Reply-To: <4F0CAD03.1090605@FreeBSD.org> Message-ID: References: <4F0C9D14.60705@FreeBSD.org> <4F0CAD03.1090605@FreeBSD.org> User-Agent: Alpine 2.00 (BSF 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (ns1.feral.com [127.0.0.1]); Tue, 10 Jan 2012 14:23:42 -0800 (PST) Cc: FreeBSD current , mj@feral.com Subject: Re: bus dma: a flag/quirk for page zero X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: mj@feral.com List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jan 2012 22:23:44 -0000 >> At the very least, require bounce buffers. > > Not sure if I got this suggestion in this terse form. > Could you please explain? Physical address zero can be DMA'd, but via bounce buffers. bcopy from address zero up through a pagesize to a bounce buffer, do the dma from there (read case), write case the opposite order