BCM5720 cannot receive any packets without this patch.  We must use a
maxlen smaller than what is used in Linux or we crash while receiving
large files.

Tested on BCM5720 and BCM5754
---
 src/drivers/net/tg3/tg3_hw.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/src/drivers/net/tg3/tg3_hw.c b/src/drivers/net/tg3/tg3_hw.c
index 4aa186a..7875dd4 100644
--- a/src/drivers/net/tg3/tg3_hw.c
+++ b/src/drivers/net/tg3/tg3_hw.c
@@ -2145,7 +2145,14 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
                tw32(RCVDBDI_MINI_BD + TG3_BDINFO_MAXLEN_FLAGS,
                     BDINFO_FLAGS_DISABLED);
 
-       val = TG3_RX_STD_MAX_SIZE_5700 << BDINFO_FLAGS_MAXLEN_SHIFT;
+       if (tg3_flag(tp, 57765_PLUS)) {
+               /* 5717's size crashes - use smaller size */
+               //val = TG3_RX_STD_MAX_SIZE_5717;
+               val = TG3_RX_STD_MAX_SIZE_5700;
+               val <<= BDINFO_FLAGS_MAXLEN_SHIFT;
+               val |= (TG3_RX_STD_DMA_SZ << 2);
+       } else
+               val = TG3_RX_STD_MAX_SIZE_5700 << BDINFO_FLAGS_MAXLEN_SHIFT;
 
        tw32(RCVDBDI_STD_BD + TG3_BDINFO_MAXLEN_FLAGS, val);
 
-- 
1.7.6

_______________________________________________
ipxe-devel mailing list
ipxe-devel@lists.ipxe.org
https://lists.ipxe.org/mailman/listinfo.cgi/ipxe-devel

Reply via email to