kern/128833: [bge] Network packets corrupted when bge card is in 64-bit PCI slot

David Christensen davidch at
Mon Nov 24 14:40:04 PST 2008

The following reply was made to PR kern/128833; it has been noted by GNATS.

From: "David Christensen" <davidch at>
To: "Marius Strobl" <marius at>
Cc: "bug-followup at" <bug-followup at>
Subject: RE: kern/128833: [bge] Network packets corrupted when bge card
 is in 64-bit PCI slot
Date: Mon, 24 Nov 2008 14:38:35 -0800

 > > > How does the problem you describe relate to the
 > > > 5701 PCI-X issue, which we align the RX buffer differently
 > > > for as a workaround, would that problem also be avoided
 > > > by limiting 5701 to 32-bit operations? Or is the A3-errata
 > > > you described an entirely different issue and limited to 5701
 > > > in a 64-bit non-PCI-X slot, or would 5701 in a PCI-X slot
 > > > even require both workarounds?
 > >
 > > Which PCI-X issue are you referring to?  Can you point me to
 > > the line number on
 > >
 > I was refering to BGE_FLAG_RX_ALIGNBUG, the lines dealing with it
 > are 874-875, 933-934, 2698-2708 and 3112-3122. The Linux tg3
 > driver does pretty much the same via rx_offset.
 It's a different problem.  The RX_ALIGNBUG is described in the errata
 as follows:
 "Description: In PCI-X mode, on rare instances, the DMA write engine=20
 can incorrectly DMA duplicate data to the host if the first word of=20
 the data being transferred is to a non-zero-offset address (offset=20
 from the 8-byte boundary).
 Workaround: Align buffers to zero offset in the driver."
 I suppose you could force PCI mode for this problem too though at
 the expense of possible reduced performance.

More information about the freebsd-net mailing list