diff options
author | Brad Smith <brad@cvs.openbsd.org> | 2014-10-04 18:20:51 +0000 |
---|---|---|
committer | Brad Smith <brad@cvs.openbsd.org> | 2014-10-04 18:20:51 +0000 |
commit | 373d10830dd169cd09162035ad66b26c4faf9c6e (patch) | |
tree | 2d8b94359394f1123da672aac66065fa696c32db | |
parent | 34343586bcc05ad3721ebff2b2418a0348327863 (diff) |
- Recognize the Yukon Prime and Yukon Optima 2 chipsets.
- Recognize some more revs of the EC U and Supreme chipsets.
- Add the PCI id for the Yukon 88E8079.
ok jsg@
-rw-r--r-- | sys/dev/pci/if_msk.c | 47 | ||||
-rw-r--r-- | sys/dev/pci/if_skreg.h | 10 |
2 files changed, 52 insertions, 5 deletions
diff --git a/sys/dev/pci/if_msk.c b/sys/dev/pci/if_msk.c index 218cc082eb9..8bff6b82675 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.107 2014/09/23 21:16:42 brad Exp $ */ +/* $OpenBSD: if_msk.c,v 1.108 2014/10/04 18:20:50 brad Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 @@ -211,6 +211,7 @@ const struct pci_matchid mskc_devices[] = { { PCI_VENDOR_MARVELL, PCI_PRODUCT_MARVELL_YUKON_8071 }, { PCI_VENDOR_MARVELL, PCI_PRODUCT_MARVELL_YUKON_8072 }, { PCI_VENDOR_MARVELL, PCI_PRODUCT_MARVELL_YUKON_8075 }, + { PCI_VENDOR_MARVELL, PCI_PRODUCT_MARVELL_YUKON_8079 }, { PCI_VENDOR_MARVELL, PCI_PRODUCT_MARVELL_YUKON_C032 }, { PCI_VENDOR_MARVELL, PCI_PRODUCT_MARVELL_YUKON_C033 }, { PCI_VENDOR_MARVELL, PCI_PRODUCT_MARVELL_YUKON_C034 }, @@ -764,6 +765,8 @@ mskc_reset(struct sk_softc *sc) case SK_YUKON_SUPR: case SK_YUKON_ULTRA2: case SK_YUKON_OPTIMA: + case SK_YUKON_PRM: + case SK_YUKON_OPTIMA2: imtimer_ticks = SK_IMTIMER_TICKS_YUKON_EC; break; case SK_YUKON_FE: @@ -830,6 +833,8 @@ msk_probe(struct device *parent, void *match, void *aux) case SK_YUKON_SUPR: case SK_YUKON_ULTRA2: case SK_YUKON_OPTIMA: + case SK_YUKON_PRM: + case SK_YUKON_OPTIMA2: return (1); } @@ -1213,11 +1218,17 @@ mskc_attach(struct device *parent, struct device *self, void *aux) sc->sk_name = "Yukon-2 Supreme"; break; case SK_YUKON_ULTRA2: - sc->sk_name = "Yukon-2 Ultra2"; + sc->sk_name = "Yukon-2 Ultra 2"; break; case SK_YUKON_OPTIMA: sc->sk_name = "Yukon-2 Optima"; break; + case SK_YUKON_PRM: + sc->sk_name = "Yukon-2 Optima Prime"; + break; + case SK_YUKON_OPTIMA2: + sc->sk_name = "Yukon-2 Optima 2"; + break; default: sc->sk_name = "Yukon (Unknown)"; } @@ -1268,6 +1279,9 @@ mskc_attach(struct device *parent, struct device *self, void *aux) case SK_YUKON_EC_U_REV_B0: revstr = "B0"; break; + case SK_YUKON_EC_U_REV_B1: + revstr = "B1"; + break; default: ; } @@ -1302,9 +1316,34 @@ mskc_attach(struct device *parent, struct device *self, void *aux) } } - if (sc->sk_type == SK_YUKON_SUPR && sc->sk_rev == SK_YUKON_SUPR_REV_A0) - revstr = "A0"; + if (sc->sk_type == SK_YUKON_SUPR) { + switch (sc->sk_rev) { + case SK_YUKON_SUPR_REV_A0: + revstr = "A0"; + break; + case SK_YUKON_SUPR_REV_B0: + revstr = "B0"; + break; + case SK_YUKON_SUPR_REV_B1: + revstr = "B1"; + break; + default: + ; + } + } + if (sc->sk_type == SK_YUKON_PRM) { + switch (sc->sk_rev) { + case SK_YUKON_PRM_REV_Z1: + revstr = "Z1"; + break; + case SK_YUKON_PRM_REV_A0: + revstr = "A0"; + break; + default: + ; + } + } /* Announce the product name. */ printf(", %s", sc->sk_name); diff --git a/sys/dev/pci/if_skreg.h b/sys/dev/pci/if_skreg.h index f3f0aa53a86..f2ac747c632 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.58 2013/03/17 10:56:23 brad Exp $ */ +/* $OpenBSD: if_skreg.h,v 1.59 2014/10/04 18:20:50 brad Exp $ */ /* * Copyright (c) 1997, 1998, 1999, 2000 @@ -354,6 +354,8 @@ #define SK_YUKON_SUPR 0xB9 #define SK_YUKON_ULTRA2 0xBA #define SK_YUKON_OPTIMA 0xBC +#define SK_YUKON_PRM 0xBD +#define SK_YUKON_OPTIMA2 0xBE #define SK_IS_GENESIS(sc) \ ((sc)->sk_type == SK_GENESIS) @@ -379,6 +381,7 @@ #define SK_YUKON_EC_U_REV_A0 0x1 #define SK_YUKON_EC_U_REV_A1 0x2 #define SK_YUKON_EC_U_REV_B0 0x3 +#define SK_YUKON_EC_U_REV_B1 0x5 #define SK_YUKON_FE_REV_A1 0x1 #define SK_YUKON_FE_REV_A2 0x2 @@ -389,6 +392,11 @@ #define SK_YUKON_EX_REV_B0 0x2 #define SK_YUKON_SUPR_REV_A0 0x0 +#define SK_YUKON_SUPR_REV_B0 0x1 +#define SK_YUKON_SUPR_REV_B1 0x3 + +#define SK_YUKON_PRM_REV_Z1 0x1 +#define SK_YUKON_PRM_REV_A0 0x2 #define SK_IMCTL_IRQ_CLEAR 0x01 #define SK_IMCTL_STOP 0x02 |