Author: yongari
Date: Wed Oct 26 18:27:01 2011
New Revision: 226806
URL: http://svn.freebsd.org/changeset/base/226806

Log:
  Broadcom says BCM5755 or higher and BCM5906 have short DMA bug.
  Apply workaround to these controllers.

Modified:
  head/sys/dev/bge/if_bge.c

Modified: head/sys/dev/bge/if_bge.c
==============================================================================
--- head/sys/dev/bge/if_bge.c   Wed Oct 26 18:19:50 2011        (r226805)
+++ head/sys/dev/bge/if_bge.c   Wed Oct 26 18:27:01 2011        (r226806)
@@ -2828,7 +2828,6 @@ bge_attach(device_t dev)
        switch (sc->bge_asicrev) {
        case BGE_ASICREV_BCM5717:
        case BGE_ASICREV_BCM5719:
-               sc->bge_flags |= BGE_FLAG_SHORT_DMA_BUG;
        case BGE_ASICREV_BCM57765:
                sc->bge_flags |= BGE_FLAG_5717_PLUS | BGE_FLAG_5755_PLUS |
                    BGE_FLAG_575X_PLUS | BGE_FLAG_5705_PLUS | BGE_FLAG_JUMBO |
@@ -2863,8 +2862,6 @@ bge_attach(device_t dev)
        case BGE_ASICREV_BCM5752:
        case BGE_ASICREV_BCM5906:
                sc->bge_flags |= BGE_FLAG_575X_PLUS;
-               if (sc->bge_asicrev == BGE_ASICREV_BCM5906)
-                       sc->bge_flags |= BGE_FLAG_SHORT_DMA_BUG;
                /* FALLTHROUGH */
        case BGE_ASICREV_BCM5705:
                sc->bge_flags |= BGE_FLAG_5705_PLUS;
@@ -2926,6 +2923,10 @@ bge_attach(device_t dev)
         */
        sc->bge_flags |= BGE_FLAG_4G_BNDRY_BUG;
 
+       /* BCM5755 or higher and BCM5906 have short DMA bug. */
+       if (BGE_IS_5755_PLUS(sc) || sc->bge_asicrev == BGE_ASICREV_BCM5906)
+               sc->bge_flags |= BGE_FLAG_SHORT_DMA_BUG;
+
        misccfg = CSR_READ_4(sc, BGE_MISC_CFG) & BGE_MISCCFG_BOARD_ID;
        if (sc->bge_asicrev == BGE_ASICREV_BCM5705) {
                if (misccfg == BGE_MISCCFG_BOARD_ID_5788 ||
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to