From owner-freebsd-net@FreeBSD.ORG Mon Nov 17 19:49:48 2008 Return-Path: Delivered-To: freebsd-net@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1CE3E1065674 for ; Mon, 17 Nov 2008 19:49:48 +0000 (UTC) (envelope-from davidch@broadcom.com) Received: from mms2.broadcom.com (mms2.broadcom.com [216.31.210.18]) by mx1.freebsd.org (Postfix) with ESMTP id D01008FC1C for ; Mon, 17 Nov 2008 19:49:47 +0000 (UTC) (envelope-from davidch@broadcom.com) Received: from [10.11.16.99] by mms2.broadcom.com with ESMTP (Broadcom SMTP Relay (Email Firewall v6.3.2)); Mon, 17 Nov 2008 11:35:33 -0800 X-Server-Uuid: D3C04415-6FA8-4F2C-93C1-920E106A2031 Received: by mail-irva-10.broadcom.com (Postfix, from userid 47) id 584FE2B1; Mon, 17 Nov 2008 11:35:33 -0800 (PST) Received: from mail-irva-8.broadcom.com (mail-irva-8 [10.11.18.52]) by mail-irva-10.broadcom.com (Postfix) with ESMTP id 443812B0; Mon, 17 Nov 2008 11:35:33 -0800 (PST) Received: from mail-irva-13.broadcom.com (mail-irva-13.broadcom.com [10.11.16.103]) by mail-irva-8.broadcom.com (MOS 3.7.5a-GA) with ESMTP id HHQ19480; Mon, 17 Nov 2008 11:35:31 -0800 (PST) Received: from NT-IRVA-0751.brcm.ad.broadcom.com (nt-irva-0751 [10.8.194.65]) by mail-irva-13.broadcom.com (Postfix) with ESMTP id BAE2E74CFE; Mon, 17 Nov 2008 11:35:31 -0800 (PST) Received: from IRVEXCHHUB01.corp.ad.broadcom.com ([10.9.200.131]) by NT-IRVA-0751.brcm.ad.broadcom.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 17 Nov 2008 11:35:31 -0800 Received: from IRVEXCHCCR01.corp.ad.broadcom.com ([10.252.49.30]) by IRVEXCHHUB01.corp.ad.broadcom.com ([10.9.200.131]) with mapi; Mon, 17 Nov 2008 11:35:31 -0800 From: "David Christensen" To: "Marius Strobl" , "freebsd-net@FreeBSD.org" Date: Mon, 17 Nov 2008 11:37:19 -0800 Thread-Topic: kern/128833: [bge] Network packets corrupted when bge card is in 64-bit PCI slot Thread-Index: AclINW0XjPLftGbyQNuZzNsj3cZKGgAsUNMA Message-ID: <5D267A3F22FD854F8F48B3D2B523819339408D91A4@IRVEXCHCCR01.corp.ad.broadcom.com> References: <200811162150.mAGLo4UJ045453@freefall.freebsd.org> In-Reply-To: <200811162150.mAGLo4UJ045453@freefall.freebsd.org> Accept-Language: en-US Content-Language: en-US acceptlanguage: en-US MIME-Version: 1.0 X-OriginalArrivalTime: 17 Nov 2008 19:35:31.0669 (UTC) FILETIME=[A7371850:01C948EB] X-WSS-ID: 653F180F3FC18132755-01-01 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Cc: Subject: RE: kern/128833: [bge] Network packets corrupted when bge card is in 64-bit PCI slot X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 17 Nov 2008 19:49:48 -0000 > Ok, thanks for testing anyway. > I still think that this isn't really a driver bug though but > you are hitting some hardware-related problem like f.e. a > silicon bug and the question is how to work around it. There is a documented errata for the 5701 A3 where a 64bit DMA read can be terminated early by the bridge and then completed=20 later as a 32bit access, causing corruption on the 5701. The=20 errata states this type of behavior is rare in bridges and that the workaround is to force 32bit operation (set bit 15 of register 0x6800). It's not clear whether this errata is occurring without seeing a but trace but it certainly sounds right. The only=20 question would be knowing "when" to force 32bit operation. Should it be done in all cases or only for this bridge? > Looking at the bge(4) versions of the other BSDs and the > corresponding Linux and OpenSolaris drivers I can't spot > a such a workaround apart from the already known PCI-X > issue, unfortunately. The only other thing that comes to > my mind is that you might suffer from sort of the opposite > of the problem worked around by ti_64bitslot_war() (the NICs > driven by ti(4) are the predecessors of those supported by > bge(4)). Given that this also involves the BIOS that could > then explain why you're see first person to hit this problem. > Could you please instrument bge(4) to print the content > of the BGE_PCI_PCISTATE register and report back which > values it's initialized to depending on which type of slot > the card is plugged into? Dave