msk(4): Add support for 88E8057
authorSepherosa Ziehau <sephe@dragonflybsd.org>
Wed, 10 Aug 2011 09:11:20 +0000 (17:11 +0800)
committerSepherosa Ziehau <sephe@dragonflybsd.org>
Wed, 10 Aug 2011 09:52:08 +0000 (17:52 +0800)
Obtained-from: FreeBSD 199012 202827

sys/dev/netif/msk/if_msk.c
sys/dev/netif/msk/if_mskreg.h

index 1b53495..eb987f8 100644 (file)
@@ -200,6 +200,8 @@ static const struct msk_product {
            "Marvell Yukon 88E8071 Gigabit Ethernet" },
        { VENDORID_MARVELL, DEVICEID_MRVL_436C,
            "Marvell Yukon 88E8072 Gigabit Ethernet" },
+       { VENDORID_MARVELL, DEVICEID_MRVL_4380,
+           "Marvell Yukon 88E8057 Gigabit Ethernet" },
        { VENDORID_DLINK, DEVICEID_DLINK_DGE550SX,
            "D-Link 550SX Gigabit Ethernet" },
        { VENDORID_DLINK, DEVICEID_DLINK_DGE560T,
@@ -213,7 +215,9 @@ static const char *model_name[] = {
        "Yukon EX",
        "Yukon EC",
        "Yukon FE",
-       "Yukon FE+"
+       "Yukon FE+",
+       "Yukon Supreme",
+       "Yukon Ultra 2"
 };
 
 static int     mskc_probe(device_t);
@@ -1047,6 +1051,7 @@ mskc_phy_power(struct msk_softc *sc, int mode)
                case CHIP_ID_YUKON_EC_U:
                case CHIP_ID_YUKON_EX:
                case CHIP_ID_YUKON_FE_P:
+               case CHIP_ID_YUKON_UL_2:
                        CSR_WRITE_2(sc, B0_CTST, Y2_HW_WOL_OFF);
 
                        /* Enable all clocks. */
@@ -1557,7 +1562,8 @@ mskc_attach(device_t dev)
        sc->msk_hw_rev = (CSR_READ_1(sc, B2_MAC_CFG) >> 4) & 0x0f;
        /* Bail out if chip is not recognized. */
        if (sc->msk_hw_id < CHIP_ID_YUKON_XL ||
-           sc->msk_hw_id > CHIP_ID_YUKON_FE_P) {
+           sc->msk_hw_id > CHIP_ID_YUKON_UL_2 ||
+           sc->msk_hw_id == CHIP_ID_YUKON_SUPR) {
                device_printf(dev, "unknown device: id=0x%02x, rev=0x%02x\n",
                    sc->msk_hw_id, sc->msk_hw_rev);
                error = ENXIO;
@@ -1659,6 +1665,9 @@ mskc_attach(device_t dev)
        case CHIP_ID_YUKON_XL:
                sc->msk_clock = 156;    /* 156 Mhz */
                break;
+       case CHIP_ID_YUKON_UL_2:
+               sc->msk_clock = 125;    /* 125 Mhz */
+               break;
        default:
                sc->msk_clock = 156;    /* 156 Mhz */
                break;
index e9617e6..9af8c22 100644 (file)
 #define DEVICEID_MRVL_436A     0x436A
 #define DEVICEID_MRVL_436B     0x436B
 #define DEVICEID_MRVL_436C     0x436C
+#define DEVICEID_MRVL_4380     0x4380
 
 /*
  * D-Link gigabit ethernet device ID
 #define CHIP_ID_YUKON_EC       0xb6 /* Chip ID for YUKON-2 EC */
 #define CHIP_ID_YUKON_FE       0xb7 /* Chip ID for YUKON-2 FE */
 #define CHIP_ID_YUKON_FE_P     0xb8 /* Chip ID for YUKON-2 FE+ */
+#define CHIP_ID_YUKON_SUPR     0xb9 /* Chip ID for YUKON-2 Supreme */
+#define CHIP_ID_YUKON_UL_2     0xba /* Chip ID for YUKON-2 Ultra 2 */
 
 #define        CHIP_REV_YU_XL_A0       0 /* Chip Rev. for Yukon-2 A0 */
 #define        CHIP_REV_YU_XL_A1       1 /* Chip Rev. for Yukon-2 A1 */