aboutsummaryrefslogtreecommitdiffstats
path: root/src/drivers/net
diff options
context:
space:
mode:
authorThomas Miletich <thomas.miletich@gmail.com>2013-08-19 13:36:27 +0200
committerMichael Brown <mcb30@ipxe.org>2013-08-20 14:38:33 +0100
commit6d72b498c2b20b8e833bfce99c30d70d6950d335 (patch)
tree817548144393b63142b0aadf9e317570a433d2d6 /src/drivers/net
parente5f6471525917a088d038678505c18c0574accac (diff)
downloadipxe-6d72b498c2b20b8e833bfce99c30d70d6950d335.tar.gz
[3c90x] Fix High-MTU packet reception
Prevent the card from flagging packets of 1518 bytes length as overlength. This fixes the High-MTU loopback test. Signed-off-by: Thomas Miletich <thomas.miletich@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/net')
-rw-r--r--src/drivers/net/3c90x.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/drivers/net/3c90x.c b/src/drivers/net/3c90x.c
index 364492bbc..853de2b52 100644
--- a/src/drivers/net/3c90x.c
+++ b/src/drivers/net/3c90x.c
@@ -822,6 +822,10 @@ static int a3c90x_open(struct net_device *netdev)
a3c90x_internal_IssueCommand(inf_3c90x->IOAddr, cmdStallCtl, upUnStall);
+ /* set maximum allowed receive packet length */
+ a3c90x_internal_SetWindow(inf_3c90x, winTxRxOptions3);
+ outl(RX_BUF_SIZE, inf_3c90x->IOAddr + regMaxPktSize_3_w);
+
/* enable packet transmission and reception */
a3c90x_internal_IssueCommand(inf_3c90x->IOAddr, cmdTxEnable, 0);
a3c90x_internal_IssueCommand(inf_3c90x->IOAddr, cmdRxEnable, 0);