diff options
author | Brad Smith <brad@cvs.openbsd.org> | 2007-10-02 07:35:56 +0000 |
---|---|---|
committer | Brad Smith <brad@cvs.openbsd.org> | 2007-10-02 07:35:56 +0000 |
commit | c651063e59543db813ee24eabc42ac76a312a78c (patch) | |
tree | a3d4ddc7afaf32e11577973187b7f99625ac1e85 /sys | |
parent | b92521afdad4853356725423e31f6f24fefcbd5e (diff) |
add initial support for the Marvell PCIe Yukon FE+ Fast Ethernet chipsets.
Inspired by similar changes to the Linux sky2 driver.
Tested by dunceor, Schoeberle Daniel, moritz@ and brad@ on existing
known working adapters. These chipsets are not actually available
in hardware yet.
ok dlg@
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/pci/if_msk.c | 14 | ||||
-rw-r--r-- | sys/dev/pci/if_skreg.h | 5 |
2 files changed, 14 insertions, 5 deletions
diff --git a/sys/dev/pci/if_msk.c b/sys/dev/pci/if_msk.c index 8ef66d11e48..e08eeecc702 100644 --- a/sys/dev/pci/if_msk.c +++ b/sys/dev/pci/if_msk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_msk.c,v 1.57 2007/09/17 08:46:52 brad Exp $ */ +/* $OpenBSD: if_msk.c,v 1.58 2007/10/02 07:35:55 brad Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 @@ -200,6 +200,8 @@ const struct pci_matchid mskc_devices[] = { { PCI_VENDOR_MARVELL, PCI_PRODUCT_MARVELL_YUKON_8036 }, { PCI_VENDOR_MARVELL, PCI_PRODUCT_MARVELL_YUKON_8038 }, { PCI_VENDOR_MARVELL, PCI_PRODUCT_MARVELL_YUKON_8039 }, + { PCI_VENDOR_MARVELL, PCI_PRODUCT_MARVELL_YUKON_8040 }, + { PCI_VENDOR_MARVELL, PCI_PRODUCT_MARVELL_YUKON_8048 }, { PCI_VENDOR_MARVELL, PCI_PRODUCT_MARVELL_YUKON_8050 }, { PCI_VENDOR_MARVELL, PCI_PRODUCT_MARVELL_YUKON_8052 }, { PCI_VENDOR_MARVELL, PCI_PRODUCT_MARVELL_YUKON_8053 }, @@ -947,6 +949,7 @@ msk_probe(struct device *parent, void *match, void *aux) case SK_YUKON_EX: case SK_YUKON_EC: case SK_YUKON_FE: + case SK_YUKON_FE_P: return (1); } @@ -1062,7 +1065,8 @@ msk_attach(struct device *parent, struct device *self, void *aux) ifp->if_start = msk_start; ifp->if_watchdog = msk_watchdog; ifp->if_baudrate = 1000000000; - if (sc->sk_type != SK_YUKON_FE) + if (sc->sk_type != SK_YUKON_FE && + sc->sk_type != SK_YUKON_FE_P) ifp->if_hardmtu = SK_JUMBO_MTU; IFQ_SET_MAXLEN(&ifp->if_snd, MSK_TX_RING_CNT - 1); IFQ_SET_READY(&ifp->if_snd); @@ -1291,6 +1295,9 @@ mskc_attach(struct device *parent, struct device *self, void *aux) case SK_YUKON_FE: sc->sk_name = "Yukon-2 FE"; break; + case SK_YUKON_FE_P: + sc->sk_name = "Yukon-2 FE+"; + break; default: sc->sk_name = "Yukon (Unknown)"; } @@ -1884,7 +1891,8 @@ msk_init_yukon(struct sk_if_softc *sc_if) YU_SMR_MFL_VLAN | YU_SMR_IPG_DATA(0x1e); - if (sc->sk_type != SK_YUKON_FE) + if (sc->sk_type != SK_YUKON_FE && + sc->sk_type != SK_YUKON_FE_P) reg |= YU_SMR_MFL_JUMBO; SK_YU_WRITE_2(sc_if, YUKON_SMR, reg); diff --git a/sys/dev/pci/if_skreg.h b/sys/dev/pci/if_skreg.h index 0b81c4b6f65..47f82e6298f 100644 --- a/sys/dev/pci/if_skreg.h +++ b/sys/dev/pci/if_skreg.h @@ -1,4 +1,4 @@ -/* $OpenBSD: if_skreg.h,v 1.44 2007/02/26 20:27:17 kettenis Exp $ */ +/* $OpenBSD: if_skreg.h,v 1.45 2007/10/02 07:35:55 brad Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 @@ -350,13 +350,14 @@ #define SK_YUKON_EX 0xB5 #define SK_YUKON_EC 0xB6 #define SK_YUKON_FE 0xB7 +#define SK_YUKON_FE_P 0xB8 #define SK_IS_GENESIS(sc) \ ((sc)->sk_type == SK_GENESIS) #define SK_IS_YUKON(sc) \ ((sc)->sk_type >= SK_YUKON && (sc)->sk_type <= SK_YUKON_LP) #define SK_IS_YUKON2(sc) \ - ((sc)->sk_type >= SK_YUKON_XL && (sc)->sk_type <= SK_YUKON_FE) + ((sc)->sk_type >= SK_YUKON_XL && (sc)->sk_type <= SK_YUKON_FE_P) /* Known revisions in SK_CONFIG */ #define SK_YUKON_LITE_REV_A0 0x0 /* invented, see test in skc_attach */ |