Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 07 Nov 2002 15:29:16 +0100
From:      "Lutz Rabing" <rabing@omc.net>
To:        freebsd-hardware@freebsd.org
Subject:   AMDtek 983B based NIC (dc driver)
Message-ID:  <3DCA86CC.16148.176AF5E@localhost>

next in thread | raw e-mail | index | archive | help
hi, 

we have several DFI mainboards with the AMDtek 983B onboard ethernet
controller. The DC driver (as of 4.7-STABLE) does not work with it.

The following patch (from Ted Stockwell) works fine with our DFI boards.
Could anyone commit this to STABLE?

lutz rabing

****************************************************************************************

*** if_dc.c     Fri Aug 16 06:45:38 2002
--- /root/if_dc.c       Thu Nov  7 14:24:28 2002
***************
*** 183,188 ****
--- 183,190 ----
                "Accton EN1217 10/100BaseTX" },
        { DC_VENDORID_ACCTON, DC_DEVICEID_EN2242,
                "Accton EN2242 MiniPCI 10/100BaseTX" },
+         { DC_VENDORID_ACCTON, DC_DEVICEID_EN5251B,
+                 "AMDtek 983B 10/100BaseTX" },
        { DC_VENDORID_CONEXANT, DC_DEVICEID_RS7112,
                "Conexant LANfinity MiniPCI 10/100BaseTX" },
        { 0, 0, NULL }
***************
*** 1442,1447 ****
--- 1444,1452 ----
                        if (t->dc_did == DC_DEVICEID_DM9102 &&
                            rev >= DC_REVISION_DM9102A)
                                t++;
+                         if (t->dc_did == DC_DEVICEID_EN2242 &&
+                              rev >= DC_REVISION_EN5251B)
+                                  t++;
                        return(t);
                }
                t++;
***************
*** 1778,1789 ****
                sc->dc_pmode = DC_PMODE_MII;
                break;
        case DC_DEVICEID_AN985:
!       case DC_DEVICEID_EN2242:
!               sc->dc_type = DC_TYPE_AN985;
!               sc->dc_flags |= DC_TX_USE_TX_INTR;
!               sc->dc_flags |= DC_TX_ADMTEK_WAR;
!               sc->dc_pmode = DC_PMODE_MII;
!               break;
        case DC_DEVICEID_98713:
        case DC_DEVICEID_98713_CP:
                if (revision < DC_REVISION_98713A) {
--- 1783,1798 ----
                sc->dc_pmode = DC_PMODE_MII;
                break;
        case DC_DEVICEID_AN985:
!         case DC_DEVICEID_EN2242:     /* and  DC_DEVICEID_EN5251B:  */
!                 if (revision < DC_REVISION_EN5251B) {
!                          sc->dc_type = DC_TYPE_AN985;
!                 }  else {
!                          sc->dc_type = DC_TYPE_EN5152B;
!                 }
!                 sc->dc_flags |= DC_TX_USE_TX_INTR;
!                 sc->dc_flags |= DC_TX_ADMTEK_WAR;
!                 sc->dc_pmode = DC_PMODE_MII;
!                 break;
        case DC_DEVICEID_98713:
        case DC_DEVICEID_98713_CP:
                if (revision < DC_REVISION_98713A) {
***************
*** 1905,1910 ****
--- 1914,1920 ----
                break;
        case DC_TYPE_AL981:
        case DC_TYPE_AN985:
+         case DC_TYPE_EN5152B:
                dc_read_eeprom(sc, (caddr_t)&eaddr, DC_AL_EE_NODEADDR, 3, 0);
                break;
        case DC_TYPE_CONEXANT:

****************************************************************************************

*** if_dcreg.h  Fri Aug 16 06:45:39 2002
--- /root/if_dcreg.h    Thu Nov  7 14:24:28 2002
***************
*** 76,81 ****
--- 76,83 ----
  #define DC_TYPE_PNICII                0x9     /* 82c115 PNIC II */
  #define DC_TYPE_PNIC          0xA     /* 82c168/82c169 PNIC I */
  #define DC_TYPE_CONEXANT        0xC     /* Conexant LANfinity RS7112 */
+ #define DC_TYPE_EN5152B         0xD     /* Accton EN5251B. Clone of ADMtek 983B */
+ 
  
  #define DC_IS_MACRONIX(x)                     \
        (x->dc_type == DC_TYPE_98713 ||         \
***************
*** 84,89 ****
--- 86,92 ----
  
  #define DC_IS_ADMTEK(x)                               \
        (x->dc_type == DC_TYPE_AL981 ||         \
+        x->dc_type == DC_TYPE_EN5152B ||       \
         x->dc_type == DC_TYPE_AN985)
  
  #define DC_IS_INTEL(x)                (x->dc_type == DC_TYPE_21143)
***************
*** 862,867 ****
--- 865,878 ----
   */
  #define DC_DEVICEID_EN1217    0x1217
  #define DC_DEVICEID_EN2242    0x1216
+ #define DC_DEVICEID_EN5251B     0x1216
+ /*
+  * The Accton EN5251B is sold as the Siemens Speedstream SS1020 and
+  * as SMC EN5251BE.
+  * The EN5251B seems to be a clone of the ADMtek 983 or 983B
+  */
+ #define DC_REVISION_EN5251B    0x11  /* ASSUMING that EN2242's revision differs */
+ 
  
  /*
   * Conexant vendor ID.




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hardware" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3DCA86CC.16148.176AF5E>