This table is dumb.

1) Remove all the PCMCIA_STR_* values, and instead print the actual CIS
   info.  This is infinitely more helpful.
2) For some of the OEM cards, collapse multiple table entries into one
   entry that doesn't compare the OUI.
It's a start.
This commit is contained in:
mycroft 2004-07-07 04:01:30 +00:00
parent fcdbc29795
commit 309a698f3c
1 changed files with 78 additions and 199 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: if_ne_pcmcia.c,v 1.116 2004/07/07 02:17:17 mycroft Exp $ */
/* $NetBSD: if_ne_pcmcia.c,v 1.117 2004/07/07 04:01:30 mycroft Exp $ */
/*
* Copyright (c) 1997 Marc Horowitz. All rights reserved.
@ -30,7 +30,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: if_ne_pcmcia.c,v 1.116 2004/07/07 02:17:17 mycroft Exp $");
__KERNEL_RCSID(0, "$NetBSD: if_ne_pcmcia.c,v 1.117 2004/07/07 04:01:30 mycroft Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -94,7 +94,6 @@ CFATTACH_DECL(ne_pcmcia, sizeof(struct ne_pcmcia_softc),
ne_pcmcia_match, ne_pcmcia_attach, ne_pcmcia_detach, dp8390_activate);
static const struct ne2000dev {
char *name;
int32_t manufacturer;
int32_t product;
char *cis_info[4];
@ -106,93 +105,76 @@ static const struct ne2000dev {
#define NE2000DVF_AX88190 0x0002 /* chip is ASIX AX88190 */
#define NE2000DVF_AX88790 0x0004 /* chip is ASIX AX88790 */
} ne2000devs[] = {
{ PCMCIA_STR_EDIMAX_EP4000A,
PCMCIA_VENDOR_EDIMAX, PCMCIA_PRODUCT_EDIMAX_EP4000A,
{ PCMCIA_VENDOR_EDIMAX, PCMCIA_PRODUCT_EDIMAX_EP4000A,
PCMCIA_CIS_EDIMAX_EP4000A,
0, -1, { 0x00, 0xa0, 0x0c } },
{ PCMCIA_STR_SYNERGY21_S21810,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_SYNERGY21_S21810,
0, -1, { 0x00, 0x48, 0x54 } },
{ PCMCIA_STR_AMBICOM_AMB8002T,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_AMBICOM_AMB8002T,
0, -1, { 0x00, 0x10, 0x7a } },
{ PCMCIA_STR_PREMAX_PE200,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_PREMAX_PE200,
0, 0x07f0, { 0x00, 0x20, 0xe0 } },
{ PCMCIA_STR_DIGITAL_DEPCMXX,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_DIGITAL_DEPCMXX,
0, 0x0ff0, { 0x00, 0x00, 0xe8 } },
{ PCMCIA_STR_PLANET_SMARTCOM2000,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_PLANET_SMARTCOM2000,
0, 0xff0, { 0x00, 0x00, 0xe8 } },
{ PCMCIA_STR_DLINK_DE660,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_DLINK_DE660,
0, -1, { 0x00, 0x80, 0xc8 } },
{ PCMCIA_STR_DLINK_DE660PLUS,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_DLINK_DE660PLUS,
0, -1, { 0x00, 0x80, 0xc8 } },
{ PCMCIA_STR_RPTI_EP400,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_RPTI_EP400,
0, 0x110, { 0x00, 0x40, 0x95 } },
{ PCMCIA_STR_RPTI_EP401,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_RPTI_EP401,
0, -1, { 0x00, 0x40, 0x95 } },
{ PCMCIA_STR_ACCTON_EN2212,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_ACCTON_EN2212,
0, 0x0ff0, { 0x00, 0x00, 0xe8 } },
{ PCMCIA_STR_ACCTON_EN2216,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_ACCTON_EN2216,
0, -1, { 0x00, 0x00, 0xe8 } },
{ PCMCIA_STR_SVEC_COMBOCARD,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_SVEC_COMBOCARD,
0, -1, { 0x00, 0xe0, 0x98 } },
{ PCMCIA_STR_SVEC_LANCARD,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_SVEC_LANCARD,
0, 0x7f0, { 0x00, 0xc0, 0x6c } },
{ PCMCIA_STR_EPSON_EEN10B,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_EPSON_EEN10B,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_EPSON_EEN10B,
PCMCIA_CIS_EPSON_EEN10B,
0, 0xff0, { 0x00, 0x00, 0x48 } },
{ PCMCIA_STR_TAMARACK_ETHERNET,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_TAMARACK_ETHERNET,
0, -1, { 0x00, 0x00, 0x00 } },
{ PCMCIA_STR_CNET_NE2000,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_CNET_NE2000,
0, -1, { 0x00, 0x80, 0xad } },
{ PCMCIA_STR_ZONET_ZEN,
PCMCIA_VENDOR_ZONET, PCMCIA_PRODUCT_ZONET_ZEN,
{ PCMCIA_VENDOR_ZONET, PCMCIA_PRODUCT_ZONET_ZEN,
PCMCIA_CIS_ZONET_ZEN,
0, -1, { 0x00, 0x00, 0x00 } },
@ -207,39 +189,19 @@ static const struct ne2000dev {
* product and vendor entries.
*/
{ PCMCIA_STR_IBM_INFOMOVER,
PCMCIA_VENDOR_IBM, PCMCIA_PRODUCT_IBM_INFOMOVER,
{ PCMCIA_VENDOR_IBM, PCMCIA_PRODUCT_IBM_INFOMOVER,
PCMCIA_CIS_IBM_INFOMOVER,
0, 0x0ff0, { 0x08, 0x00, 0x5a } },
0, 0x0ff0, { 0xff, 0xff, 0xff } },
{ PCMCIA_STR_IBM_INFOMOVER,
PCMCIA_VENDOR_IBM, PCMCIA_PRODUCT_IBM_INFOMOVER,
PCMCIA_CIS_IBM_INFOMOVER,
0, 0x0ff0, { 0x00, 0x04, 0xac } },
{ PCMCIA_STR_IBM_INFOMOVER,
PCMCIA_VENDOR_IBM, PCMCIA_PRODUCT_IBM_INFOMOVER,
PCMCIA_CIS_IBM_INFOMOVER,
0, 0x0ff0, { 0x00, 0x06, 0x29 } },
/* NEC 9801N_J12 */
{ PCMCIA_STR_IBM_INFOMOVER,
PCMCIA_VENDOR_IBM, PCMCIA_PRODUCT_IBM_INFOMOVER,
PCMCIA_CIS_IBM_INFOMOVER,
0, 0x0ff0, { 0x00, 0x00, 0x4c } },
{ PCMCIA_STR_LINKSYS_ECARD_1,
PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_ECARD_1,
{ PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_ECARD_1,
PCMCIA_CIS_LINKSYS_ECARD_1,
0, -1, { 0x00, 0x80, 0xc8 } },
{ PCMCIA_STR_PLANEX_FNW3600T,
PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_COMBO_ECARD,
{ PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_COMBO_ECARD,
PCMCIA_CIS_PLANEX_FNW3600T,
0, -1, { 0x00, 0x90, 0xcc }, NE2000DVF_DL10019 },
{ PCMCIA_STR_SVEC_PN650TX,
PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_COMBO_ECARD,
{ PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_COMBO_ECARD,
PCMCIA_CIS_SVEC_PN650TX,
0, -1, { 0x00, 0xe0, 0x98 }, NE2000DVF_DL10019 },
@ -248,45 +210,17 @@ static const struct ne2000dev {
* match with this. FNW-3700T won't match above entries due to
* MAC address check.
*/
{ PCMCIA_STR_LANTECH_FASTNETTX,
PCMCIA_VENDOR_LANTECH, PCMCIA_PRODUCT_LANTECH_FASTNETTX,
{ PCMCIA_VENDOR_LANTECH, PCMCIA_PRODUCT_LANTECH_FASTNETTX,
PCMCIA_CIS_LANTECH_FASTNETTX,
0, -1, { 0x00, 0x04, 0x1c }, NE2000DVF_AX88190 },
{ PCMCIA_STR_PLANEX_FNW3700T,
PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_COMBO_ECARD,
{ PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_COMBO_ECARD,
PCMCIA_CIS_PLANEX_FNW3700T,
0, -1, { 0x00, 0x90, 0xcc }, NE2000DVF_AX88190 },
{ PCMCIA_STR_LINKSYS_ETHERFAST,
PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_ETHERFAST,
{ PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_ETHERFAST,
PCMCIA_CIS_LINKSYS_ETHERFAST,
0, -1, { 0x00, 0x80, 0xc8 }, NE2000DVF_DL10019 },
{ PCMCIA_STR_LINKSYS_ETHERFAST,
PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_ETHERFAST,
PCMCIA_CIS_LINKSYS_ETHERFAST,
0, -1, { 0x00, 0x40, 0x05 }, NE2000DVF_DL10019 },
{ PCMCIA_STR_LINKSYS_ETHERFAST,
PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_ETHERFAST,
PCMCIA_CIS_LINKSYS_ETHERFAST,
0, -1, { 0x00, 0x90, 0xfe }, NE2000DVF_DL10019 },
{ PCMCIA_STR_LINKSYS_ETHERFAST,
PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_ETHERFAST,
PCMCIA_CIS_LINKSYS_ETHERFAST,
0, -1, { 0x00, 0xa0, 0xb0 }, NE2000DVF_DL10019 },
{ PCMCIA_STR_DLINK_DE650,
PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_ETHERFAST,
PCMCIA_CIS_LINKSYS_ETHERFAST,
0, -1, { 0x00, 0x50, 0xba }, NE2000DVF_DL10019 },
{ PCMCIA_STR_DLINK_DE650,
PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_ETHERFAST,
PCMCIA_CIS_DLINK_DE650,
0, -1, { 0x00, 0xe0, 0x98 }, NE2000DVF_DL10019 },
0, -1, { 0xff, 0xff, 0xff }, NE2000DVF_DL10019 },
/*
* There are two entries for the DFE-670TXD because there are
@ -296,38 +230,19 @@ static const struct ne2000dev {
* Oh, wait, there's a third possible vendor code, apparently.
* And it's from "ANI Communications" this time...
*/
{ PCMCIA_STR_DLINK_DFE670TXD,
PCMCIA_VENDOR_NETGEAR, PCMCIA_PRODUCT_NETGEAR_FA410TXC,
{ PCMCIA_VENDOR_NETGEAR, PCMCIA_PRODUCT_NETGEAR_FA410TXC,
PCMCIA_CIS_DLINK_DFE670TXD,
0, -1, { 0x00, 0x50, 0xba }, NE2000DVF_DL10019 },
0, -1, { 0xff, 0xff, 0xff }, NE2000DVF_DL10019 },
{ PCMCIA_STR_DLINK_DFE670TXD,
PCMCIA_VENDOR_NETGEAR, PCMCIA_PRODUCT_NETGEAR_FA410TXC,
PCMCIA_CIS_DLINK_DFE670TXD,
0, -1, { 0x00, 0x0d, 0x88 }, NE2000DVF_DL10019 },
{ PCMCIA_STR_DLINK_DFE670TXD,
PCMCIA_VENDOR_NETGEAR, PCMCIA_PRODUCT_NETGEAR_FA410TXC,
PCMCIA_CIS_DLINK_DFE670TXD,
0, -1, { 0x00, 0x40, 0x05 }, NE2000DVF_DL10019 },
{ PCMCIA_STR_NETGEAR_FA410TXC,
PCMCIA_VENDOR_NETGEAR, PCMCIA_PRODUCT_NETGEAR_FA410TXC,
PCMCIA_CIS_NETGEAR_FA410TXC,
0, -1, { 0x00, 0x48, 0x54 }, NE2000DVF_DL10019 },
{ PCMCIA_STR_MELCO_LPC2_TX,
PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_ETHERFAST,
{ PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_ETHERFAST,
PCMCIA_CIS_MELCO_LPC2_TX,
0, -1, { 0x00, 0x40, 0x26 }, NE2000DVF_DL10019 },
{ PCMCIA_STR_LINKSYS_COMBO_ECARD,
PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_COMBO_ECARD,
{ PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_COMBO_ECARD,
PCMCIA_CIS_LINKSYS_COMBO_ECARD,
0, -1, { 0x00, 0x80, 0xc8 } },
{ PCMCIA_STR_LINKSYS_TRUST_COMBO_ECARD,
PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_TRUST_COMBO_ECARD,
{ PCMCIA_VENDOR_LINKSYS, PCMCIA_PRODUCT_LINKSYS_TRUST_COMBO_ECARD,
PCMCIA_CIS_LINKSYS_TRUST_COMBO_ECARD,
0, 0x0120, { 0x20, 0x04, 0x49 } },
@ -335,8 +250,7 @@ static const struct ne2000dev {
above this list, we need to keep this one below the ECARD_1, or else
both will match the same more-generic entry rather than the more
specific one above with proper vendor and product IDs. */
{ PCMCIA_STR_LINKSYS_ECARD_2,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_LINKSYS_ECARD_2,
0, -1, { 0x00, 0x80, 0xc8 } },
@ -353,8 +267,7 @@ static const struct ne2000dev {
* the 3rd and the 4th types should use the "Linksys EtherCard" entry.
* Therefore, this enty must be below the LINKSYS_ECARD_1. --itohy
*/
{ PCMCIA_STR_DLINK_DE650,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_DLINK_DE650,
0, 0x0040, { 0x00, 0x80, 0xc8 } },
@ -371,8 +284,7 @@ static const struct ne2000dev {
* for the earlier version of PCLA/T (or, modify to match all CIS
* information and have three or more individual entries).
*/
{ PCMCIA_STR_IODATA_PCLATE,
PCMCIA_VENDOR_IODATA, PCMCIA_PRODUCT_IODATA_PCLATE,
{ PCMCIA_VENDOR_IODATA, PCMCIA_PRODUCT_IODATA_PCLATE,
PCMCIA_CIS_IODATA_PCLATE,
0, -1, { 0x00, 0xa0, 0xb0 } },
@ -380,163 +292,127 @@ static const struct ne2000dev {
* This entry should be placed after above PCLA-TE entry.
* See above comments for detail.
*/
{ PCMCIA_STR_IODATA_PCLAT,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_IODATA_PCLAT,
0, 0x0ff0, { 0x00, 0xa0, 0xb0 } },
{ PCMCIA_STR_DAYNA_COMMUNICARD_E_1,
PCMCIA_VENDOR_DAYNA, PCMCIA_PRODUCT_DAYNA_COMMUNICARD_E_1,
{ PCMCIA_VENDOR_DAYNA, PCMCIA_PRODUCT_DAYNA_COMMUNICARD_E_1,
PCMCIA_CIS_DAYNA_COMMUNICARD_E_1,
0, 0x0110, { 0x00, 0x80, 0x19 } },
{ PCMCIA_STR_DAYNA_COMMUNICARD_E_2,
PCMCIA_VENDOR_DAYNA, PCMCIA_PRODUCT_DAYNA_COMMUNICARD_E_2,
{ PCMCIA_VENDOR_DAYNA, PCMCIA_PRODUCT_DAYNA_COMMUNICARD_E_2,
PCMCIA_CIS_DAYNA_COMMUNICARD_E_2,
0, -1, { 0x00, 0x80, 0x19 } },
{ PCMCIA_STR_COREGA_ETHER_PCC_T,
PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_ETHER_PCC_T,
{ PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_ETHER_PCC_T,
PCMCIA_CIS_COREGA_ETHER_PCC_T,
0, -1, { 0x00, 0x00, 0xf4 } },
{ PCMCIA_STR_COREGA_ETHER_PCC_TD,
PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_ETHER_PCC_TD,
{ PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_ETHER_PCC_TD,
PCMCIA_CIS_COREGA_ETHER_PCC_TD,
0, -1, { 0x00, 0x00, 0xf4 } },
{ PCMCIA_STR_COREGA_ETHER_PCC_TL,
PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_ETHER_PCC_TL,
{ PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_ETHER_PCC_TL,
PCMCIA_CIS_COREGA_ETHER_PCC_TL,
0, -1, { 0x00, 0x00, 0xf4 } },
{ PCMCIA_STR_COREGA_ETHER_II_PCC_T,
PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_ETHER_II_PCC_T,
{ PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_ETHER_II_PCC_T,
PCMCIA_CIS_COREGA_ETHER_II_PCC_T,
0, -1, { 0x00, 0x00, 0xf4 } },
{ PCMCIA_STR_COREGA_ETHER_II_PCC_TD,
PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_ETHER_II_PCC_TD,
{ PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_ETHER_II_PCC_TD,
PCMCIA_CIS_COREGA_ETHER_II_PCC_TD,
0, -1, { 0x00, 0x00, 0xf4 } },
{ PCMCIA_STR_COREGA_FAST_ETHER_PCC_TX,
PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_FAST_ETHER_PCC_TX,
{ PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_FAST_ETHER_PCC_TX,
PCMCIA_CIS_COREGA_FAST_ETHER_PCC_TX,
0, -1, { 0x00, 0x00, 0xf4 }, NE2000DVF_DL10019 },
{ PCMCIA_STR_COREGA_FETHER_PCC_TXF,
PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_FETHER_PCC_TXF,
{ PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_FETHER_PCC_TXF,
PCMCIA_CIS_COREGA_FETHER_PCC_TXF,
0, -1, { 0x00, 0x90, 0x99 }, NE2000DVF_DL10019 },
{ PCMCIA_STR_COREGA_FETHER_PCC_TXD,
PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_FETHER_PCC_TXD,
{ PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_FETHER_PCC_TXD,
PCMCIA_CIS_COREGA_FETHER_PCC_TXD,
0, -1, { 0x00, 0x90, 0x99 } },
{ PCMCIA_STR_COREGA_FETHER_II_PCC_TXD,
PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_FETHER_II_PCC_TXD,
{ PCMCIA_VENDOR_COREGA, PCMCIA_PRODUCT_COREGA_FETHER_II_PCC_TXD,
PCMCIA_CIS_COREGA_FETHER_II_PCC_TXD,
0, -1, { 0x00, 0x90, 0x99 }, NE2000DVF_AX88190 | NE2000DVF_AX88790 },
{ PCMCIA_STR_COMPEX_LINKPORT_ENET_B,
PCMCIA_VENDOR_COMPEX, PCMCIA_PRODUCT_COMPEX_LINKPORT_ENET_B,
{ PCMCIA_VENDOR_COMPEX, PCMCIA_PRODUCT_COMPEX_LINKPORT_ENET_B,
PCMCIA_CIS_COMPEX_LINKPORT_ENET_B,
0, 0x01c0, { 0x00, 0xa0, 0x0c } },
{ PCMCIA_STR_SMC_EZCARD,
PCMCIA_VENDOR_SMC, PCMCIA_PRODUCT_SMC_EZCARD,
{ PCMCIA_VENDOR_SMC, PCMCIA_PRODUCT_SMC_EZCARD,
PCMCIA_CIS_SMC_EZCARD,
0, 0x01c0, { 0x00, 0xe0, 0x29 } },
{ PCMCIA_STR_SMC_8041,
PCMCIA_VENDOR_SMC, PCMCIA_PRODUCT_SMC_8041,
{ PCMCIA_VENDOR_SMC, PCMCIA_PRODUCT_SMC_8041,
PCMCIA_CIS_SMC_8041,
0, -1, { 0x00, 0x04, 0xe2 } },
{ PCMCIA_STR_SOCKET_EA_ETHER,
PCMCIA_VENDOR_SOCKET, PCMCIA_PRODUCT_SOCKET_EA_ETHER,
{ PCMCIA_VENDOR_SOCKET, PCMCIA_PRODUCT_SOCKET_EA_ETHER,
PCMCIA_CIS_SOCKET_EA_ETHER,
0, -1, { 0x00, 0xc0, 0x1b } },
{ PCMCIA_STR_SOCKET_LP_ETHER_CF,
PCMCIA_VENDOR_SOCKET, PCMCIA_PRODUCT_SOCKET_LP_ETHER_CF,
{ PCMCIA_VENDOR_SOCKET, PCMCIA_PRODUCT_SOCKET_LP_ETHER_CF,
PCMCIA_CIS_SOCKET_LP_ETHER_CF,
0, -1, { 0x00, 0xc0, 0x1b } },
{ PCMCIA_STR_SOCKET_LP_ETH_10_100_CF,
PCMCIA_VENDOR_SOCKET, PCMCIA_PRODUCT_SOCKET_LP_ETH_10_100_CF,
{ PCMCIA_VENDOR_SOCKET, PCMCIA_PRODUCT_SOCKET_LP_ETH_10_100_CF,
PCMCIA_CIS_SOCKET_LP_ETH_10_100_CF,
0, -1, { 0x00, 0xe0, 0x98 }, NE2000DVF_DL10019 },
{ PCMCIA_STR_SOCKET_LP_ETHER,
PCMCIA_VENDOR_SOCKET, PCMCIA_PRODUCT_SOCKET_LP_ETHER,
{ PCMCIA_VENDOR_SOCKET, PCMCIA_PRODUCT_SOCKET_LP_ETHER,
PCMCIA_CIS_SOCKET_LP_ETHER,
0, -1, { 0x00, 0xc0, 0x1b } },
{ PCMCIA_STR_KINGSTON_KNE2,
PCMCIA_VENDOR_KINGSTON, PCMCIA_PRODUCT_KINGSTON_KNE2,
{ PCMCIA_VENDOR_KINGSTON, PCMCIA_PRODUCT_KINGSTON_KNE2,
PCMCIA_CIS_KINGSTON_KNE2,
0, -1, { 0x00, 0xc0, 0xf0 } },
{ PCMCIA_STR_XIRCOM_CFE_10,
PCMCIA_VENDOR_XIRCOM, PCMCIA_PRODUCT_XIRCOM_CFE_10,
{ PCMCIA_VENDOR_XIRCOM, PCMCIA_PRODUCT_XIRCOM_CFE_10,
PCMCIA_CIS_XIRCOM_CFE_10,
0, -1, { 0x00, 0x10, 0xa4 } },
{ PCMCIA_STR_MELCO_LPC3_TX,
PCMCIA_VENDOR_MELCO, PCMCIA_PRODUCT_MELCO_LPC3_TX,
{ PCMCIA_VENDOR_MELCO, PCMCIA_PRODUCT_MELCO_LPC3_TX,
PCMCIA_CIS_MELCO_LPC3_TX,
0, -1, { 0x00, 0x40, 0x26 }, NE2000DVF_AX88190 },
0, -1, { 0xff, 0xff, 0xff }, NE2000DVF_AX88190 },
{ PCMCIA_STR_MELCO_LPC3_TX,
PCMCIA_VENDOR_MELCO, PCMCIA_PRODUCT_MELCO_LPC3_TX,
PCMCIA_CIS_MELCO_LPC3_TX,
0, -1, { 0x00, 0x02, 0xdd }, NE2000DVF_AX88190 },
{ PCMCIA_STR_BUFFALO_LPC3_CLT,
PCMCIA_VENDOR_BUFFALO, PCMCIA_PRODUCT_BUFFALO_LPC3_CLT,
{ PCMCIA_VENDOR_BUFFALO, PCMCIA_PRODUCT_BUFFALO_LPC3_CLT,
PCMCIA_CIS_BUFFALO_LPC3_CLT,
0, -1, { 0x00, 0x07, 0x40 } },
{ PCMCIA_STR_BUFFALO_LPC4_CLX,
PCMCIA_VENDOR_BUFFALO, PCMCIA_PRODUCT_BUFFALO_LPC4_CLX,
{ PCMCIA_VENDOR_BUFFALO, PCMCIA_PRODUCT_BUFFALO_LPC4_CLX,
PCMCIA_CIS_BUFFALO_LPC4_CLX,
0, -1, { 0x00, 0x40, 0xfa }, NE2000DVF_AX88190 | NE2000DVF_AX88790 },
{ PCMCIA_STR_BILLIONTON_LNT10TN,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_BILLIONTON_LNT10TN,
0, -1, { 0x00, 0x00, 0x00 } },
{ PCMCIA_STR_BILLIONTON_CFLT10N,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_BILLIONTON_CFLT10N,
0, -1, { 0x00, 0x00, 0x00 } },
{ PCMCIA_STR_NDC_ND5100_E,
PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
{ PCMCIA_VENDOR_INVALID, PCMCIA_PRODUCT_INVALID,
PCMCIA_CIS_NDC_ND5100_E,
0, -1, { 0x00, 0x80, 0xc6 } },
{ PCMCIA_STR_TELECOMDEVICE_TCD_HPC100,
PCMCIA_VENDOR_TELECOMDEVICE, PCMCIA_PRODUCT_TELECOMDEVICE_TCD_HPC100,
{ PCMCIA_VENDOR_TELECOMDEVICE, PCMCIA_PRODUCT_TELECOMDEVICE_TCD_HPC100,
PCMCIA_CIS_TELECOMDEVICE_TCD_HPC100,
0, -1, { 0x00, 0x40, 0x26 }, NE2000DVF_AX88190 },
{ PCMCIA_STR_MACNICA_ME1_JEIDA,
PCMCIA_VENDOR_MACNICA, PCMCIA_PRODUCT_MACNICA_ME1_JEIDA,
{ PCMCIA_VENDOR_MACNICA, PCMCIA_PRODUCT_MACNICA_ME1_JEIDA,
PCMCIA_CIS_MACNICA_ME1_JEIDA,
0, 0x00b8, { 0x08, 0x00, 0x42 } },
{ PCMCIA_STR_NETGEAR_FA411,
PCMCIA_VENDOR_NETGEAR, PCMCIA_PRODUCT_NETGEAR_FA411,
{ PCMCIA_VENDOR_NETGEAR, PCMCIA_PRODUCT_NETGEAR_FA411,
PCMCIA_CIS_NETGEAR_FA411,
0, -1, { 0x00, 0x40, 0xf4 } },
{ PCMCIA_STR_DYNALINK_L10C,
PCMCIA_VENDOR_DYNALINK, PCMCIA_PRODUCT_DYNALINK_L10C,
{ PCMCIA_VENDOR_DYNALINK, PCMCIA_PRODUCT_DYNALINK_L10C,
PCMCIA_CIS_DYNALINK_L10C,
0, -1, { 0x00, 0x00, 0x00 } },
@ -621,8 +497,7 @@ static const struct ne2000dev {
0x0060, { 0x00, 0x40, 0x05 } },
#endif
{ PCMCIA_STR_ALLIEDTELESIS_LA_PCM,
PCMCIA_VENDOR_ALLIEDTELESIS, PCMCIA_PRODUCT_ALLIEDTELESIS_LA_PCM,
{ PCMCIA_VENDOR_ALLIEDTELESIS, PCMCIA_PRODUCT_ALLIEDTELESIS_LA_PCM,
PCMCIA_CIS_ALLIEDTELESIS_LA_PCM,
0, 0x0ff0, { 0x00, 0x00, 0xf4 } },
};
@ -855,7 +730,8 @@ found:
}
}
if (enaddr != NULL) {
if (enaddr != NULL &&
ne_dev->enet_vendor[0] != 0xff) {
/*
* Make sure this is what we expect.
*/
@ -885,8 +761,11 @@ found:
}
}
printf("%s: %s%s Ethernet\n", dsc->sc_dev.dv_xname, ne_dev->name,
typestr);
aprint_normal("%s: <%s, %s> <%04x, %04x>%s\n",
dsc->sc_dev.dv_xname,
pa->card->cis1_info[0] ?: "",
pa->card->cis1_info[1] ?: "",
pa->manufacturer, pa->product, typestr);
if (ne2000_attach(nsc, enaddr))
goto fail_5;