tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: broadcom 57766 and jumbo frames



(2013/07/03 15:51), Emmanuel Dreyfus wrote:
On Wed, Jul 03, 2013 at 03:03:11PM +0900, Masanobu SAITOH wrote:
  I tested some cards and the jumbo frame function works if the
BGE_JUMBO_CAPABLE flags is set by the driver.

  Please test if_bge.c rev. 1.254. It added the flag to some chips.
It includes BCM57766, too.

It works with mtu at 1500. If I set mtu to 9000 and send a small ping
(such as 32 bytes), it still works. But when I attempt to transmit a
jumbo frame, by a ping -s 4000, the card drops into a state where no
packet manages to get out anymore. Even a ping -s 32 does not work
anymore.

Sometimes it says:
bge0: watchdog timeout -- resetting
bge0: block failed to stop: reg 0xc00, bit 0x00000002

 Thank you for your quick reply.

 Before I committed rev. 1.254, I found a serious bug that all *BSD's
bge have. The follwing patch fixes the behavior of BCM5776[56]. I have
niether 57765 nor 57766.

 Could you try this patch? I'll check the entire code in bge.c again.

Index: if_bge.c
===================================================================
RCS file: /cvsroot/src/sys/dev/pci/if_bge.c,v
retrieving revision 1.254
diff -u -r1.254 if_bge.c
--- if_bge.c    3 Jul 2013 05:49:36 -0000       1.254
+++ if_bge.c    3 Jul 2013 07:04:57 -0000
@@ -3388,14 +3388,14 @@
/* Save chipset family. */
        switch (BGE_ASICREV(sc->bge_chipid)) {
-       case BGE_ASICREV_BCM57765:
-       case BGE_ASICREV_BCM57766:
-               sc->bge_flags |= BGE_57765_PLUS;
-               /* FALLTHROUGH */
        case BGE_ASICREV_BCM5717:
        case BGE_ASICREV_BCM5719:
        case BGE_ASICREV_BCM5720:
-               sc->bge_flags |= BGE_5717_PLUS | BGE_5755_PLUS |
+               sc->bge_flags |= BGE_5717_PLUS;
+               /* FALLTHROUGH */
+       case BGE_ASICREV_BCM57765:
+       case BGE_ASICREV_BCM57766:
+               sc->bge_flags |= BGE_57765_PLUS | BGE_5755_PLUS |
                    BGE_575X_PLUS | BGE_5705_PLUS | BGE_JUMBO_CAPABLE;
                /* Jumbo frame on BCM5719 A0 does not work. */
                if ((BGE_ASICREV(sc->bge_chipid) == BGE_ASICREV_BCM5719) &&



--
-----------------------------------------------
                SAITOH Masanobu (msaitoh%execsw.org@localhost
                                 msaitoh%netbsd.org@localhost)


Home | Main Index | Thread Index | Old Index