summaryrefslogtreecommitdiffstats
path: root/src/drivers/net/3c90x.c
diff options
context:
space:
mode:
authorThomas Miletich2013-08-19 13:36:27 +0200
committerMichael Brown2013-08-20 15:38:33 +0200
commit6d72b498c2b20b8e833bfce99c30d70d6950d335 (patch)
tree817548144393b63142b0aadf9e317570a433d2d6 /src/drivers/net/3c90x.c
parent[3c90x] Don't round up transmit packet length (diff)
downloadipxe-6d72b498c2b20b8e833bfce99c30d70d6950d335.tar.gz
ipxe-6d72b498c2b20b8e833bfce99c30d70d6950d335.tar.xz
ipxe-6d72b498c2b20b8e833bfce99c30d70d6950d335.zip
[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/3c90x.c')
-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 364492bb..853de2b5 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);