summaryrefslogtreecommitdiffstats
path: root/sys/dev/bge/if_bgereg.h
diff options
context:
space:
mode:
authorjdp <jdp@FreeBSD.org>2002-06-24 22:04:15 +0000
committerjdp <jdp@FreeBSD.org>2002-06-24 22:04:15 +0000
commitb1ccf3cc04aa8ece51e741bf2431114f28a23ce8 (patch)
tree9d95bd11ac50ac619424af7ab734054da674e3c6 /sys/dev/bge/if_bgereg.h
parentca21d675fc5f1a22da00120b055eec5dd50de069 (diff)
downloadFreeBSD-src-b1ccf3cc04aa8ece51e741bf2431114f28a23ce8.zip
FreeBSD-src-b1ccf3cc04aa8ece51e741bf2431114f28a23ce8.tar.gz
Work around what appears to be a chip bug in the BCM5701 that shows
up when operating in PCI-X mode. For some received packets there is data corruption in the first few bytes in that case. Aligning the packet buffer eliminates the corruption. With this fix, the code that offsets the packet buffer up by 2 bytes to align the payload is disabled for BCM5701s operating in PCI-X mode. On the i386, which permits unaligned accesses, the payload is left unaligned. On other platforms, the packet is copied after reception to force alignment of the payload. Obviously, this work-around reduces performance in those cases (BCM5701 plus PCI-X) where it is in effect. MFC after: 3 days
Diffstat (limited to 'sys/dev/bge/if_bgereg.h')
-rw-r--r--sys/dev/bge/if_bgereg.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/bge/if_bgereg.h b/sys/dev/bge/if_bgereg.h
index 55de003..d2216a1 100644
--- a/sys/dev/bge/if_bgereg.h
+++ b/sys/dev/bge/if_bgereg.h
@@ -2131,6 +2131,7 @@ struct bge_softc {
u_int8_t bge_unit; /* interface number */
u_int8_t bge_extram; /* has external SSRAM */
u_int8_t bge_tbi;
+ u_int8_t bge_rx_alignment_bug;
u_int32_t bge_asicrev;
struct bge_ring_data *bge_rdata; /* rings */
struct bge_chain_data bge_cdata; /* mbufs */
OpenPOWER on IntegriCloud