From owner-svn-src-all@FreeBSD.ORG Fri Jun 11 17:55:11 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0157E1065672; Fri, 11 Jun 2010 17:55:11 +0000 (UTC) (envelope-from scottl@samsco.org) Received: from pooker.samsco.org (pooker.samsco.org [168.103.85.57]) by mx1.freebsd.org (Postfix) with ESMTP id 8A89E8FC1F; Fri, 11 Jun 2010 17:55:10 +0000 (UTC) Received: from [127.0.0.1] (pooker.samsco.org [168.103.85.57]) (authenticated bits=0) by pooker.samsco.org (8.14.4/8.14.4) with ESMTP id o5BHt7pP040012; Fri, 11 Jun 2010 11:55:07 -0600 (MDT) (envelope-from scottl@samsco.org) Mime-Version: 1.0 (Apple Message framework v1078) Content-Type: text/plain; charset=us-ascii From: Scott Long In-Reply-To: Date: Fri, 11 Jun 2010 11:55:07 -0600 Content-Transfer-Encoding: quoted-printable Message-Id: <648FCAFD-6264-4613-BBCB-F813A7C0A849@samsco.org> References: <201006110300.o5B30X9q045387@svn.freebsd.org> <201006110751.40735.jhb@freebsd.org> <853068F6-D736-4DA3-859F-D946D096843D@samsco.org> <19B0DF11-5998-40F5-8095-8D2521B1C597@mac.com> <291D17F7-F387-4A13-8ED9-2898A9F7E018@mac.com> <028BA7D4-90C8-4D2D-B9A5-C1C3CF9B6D7D@samsco.org> <53158C9B-C9E1-4C47-B361-83C76181721A@mac.com> <896621F6-4BAF-43D4-9D97-29B4EF34C080@samsco.org> To: Marcel Moolenaar X-Mailer: Apple Mail (2.1078) X-Spam-Status: No, score=-50.0 required=3.8 tests=ALL_TRUSTED, T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.0 X-Spam-Checker-Version: SpamAssassin 3.3.0 (2010-01-18) on pooker.samsco.org Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org, John Baldwin Subject: Re: svn commit: r209026 - in head/sys/ia64: ia64 include X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 11 Jun 2010 17:55:11 -0000 On Jun 11, 2010, at 11:53 AM, Marcel Moolenaar wrote: >=20 > On Jun 11, 2010, at 10:47 AM, Scott Long wrote: >=20 >> On Jun 11, 2010, at 11:44 AM, Marcel Moolenaar wrote: >>>=20 >>> On Jun 11, 2010, at 10:37 AM, Scott Long wrote: >>>>=20 >>>> I'm not clear why you even need bounce buffers for RX. The chip = supports 64bit addresses with no boundary or alignment restrictions. >>>=20 >>> As per: >>> /* >>> * All controllers that are not 5755 or higher have 4GB >>> * boundary DMA bug. >>> * Whenever an address crosses a multiple of the 4GB boundary >>> * (including 4GB, 8Gb, 12Gb, etc.) and makes the transition >>> * from 0xX_FFFF_FFFF to 0x(X+1)_0000_0000 an internal DMA >>> * state machine will lockup and cause the device to hang. >>> */ >>> if (BGE_IS_5755_PLUS(sc) =3D=3D 0) >>> sc->bge_flags |=3D BGE_FLAG_4G_BNDRY_BUG; >>>=20 >>> and: >>> lowaddr =3D BUS_SPACE_MAXADDR; >>> if ((sc->bge_flags & BGE_FLAG_40BIT_BUG) !=3D 0) >>> lowaddr =3D BGE_DMA_MAXADDR; >>> if ((sc->bge_flags & BGE_FLAG_4G_BNDRY_BUG) !=3D 0) >>> lowaddr =3D BUS_SPACE_MAXADDR_32BIT; >>> /* >>> * Allocate the parent bus DMA tag appropriate for PCI. >>> */ >>> error =3D bus_dma_tag_create(bus_get_dma_tag(sc->bge_dev), >>> 1, 0, lowaddr, BUS_SPACE_MAXADDR, NULL, >>> NULL, BUS_SPACE_MAXSIZE_32BIT, 0, BUS_SPACE_MAXSIZE_32BIT, >>> 0, NULL, NULL, &sc->bge_cdata.bge_parent_tag); >>>=20 >>>=20 >>=20 >> Noted in previous email. If this restriction is put in the boundary = attribute, then you'll only bounce the very rare case of an mbuf = straddling a 4G boundary. >=20 > I agree with you, but I was just giving the facts. I don't even > know if we attempted to use the boundary argument before but > problems forced us to resort to this. >=20 Thanks to the design limitation of PCIe, the 4GB boundary is a common = restriction and should work fine in FreeBSD. Scott