From e7b9ab3aaaacd512edf16176d5993241de05f709 Mon Sep 17 00:00:00 2001 From: Bill Paul Date: Thu, 10 Jul 2003 18:43:17 +0000 Subject: Add support for a bunch of Microsoft networking products: - MN-110 10/100 USB ethernet (ADMtek Pegasus II, if_aue) - MN-120 10/100 cardbus (ADMtek Centaur-C, if_dc) - MN-130 10/100 PCI (ADMtek Centaur-P, if_dc) Also update dc(4) man page to mention support for MN-120 and MN-130. --- sys/dev/dc/if_dc.c | 20 ++++++++++++++++++++ sys/dev/dc/if_dcreg.h | 14 ++++++++++++++ sys/dev/usb/if_aue.c | 1 + sys/dev/usb/usbdevs | 1 + 4 files changed, 36 insertions(+) (limited to 'sys/dev') diff --git a/sys/dev/dc/if_dc.c b/sys/dev/dc/if_dc.c index 19ba3083e97e..42dd8c9704c6 100644 --- a/sys/dev/dc/if_dc.c +++ b/sys/dev/dc/if_dc.c @@ -202,6 +202,12 @@ static struct dc_type dc_devs[] = { "PlaneX FNW-3602-T CardBus 10/100" }, { DC_VENDORID_3COM, DC_DEVICEID_3CSOHOB, "3Com OfficeConnect 10/100B" }, + { DC_VENDORID_MICROSOFT, DC_DEVICEID_MSMN120, + "Microsoft MN-120 CardBus 10/100" }, + { DC_VENDORID_MICROSOFT, DC_DEVICEID_MSMN130, + "Microsoft MN-130 10/100" }, + { DC_VENDORID_MICROSOFT, DC_DEVICEID_MSMN130_FAKE, + "Microsoft MN-130 10/100" }, { 0, 0, NULL } }; @@ -1587,6 +1593,18 @@ dc_devtype(device_t dev) if (t->dc_did == DC_DEVICEID_DM9102 && rev >= DC_REVISION_DM9102A) t++; + /* + * The Microsoft MN-130 has a device ID of 0x0002, + * which happens to be the same as the PNIC 82c168. + * To keep dc_attach() from getting confused, we + * pretend its ID is something different. + * XXX: ideally, dc_attach() should be checking + * vendorid+deviceid together to avoid such + * collisions. + */ + if (t->dc_vid == DC_VENDORID_MICROSOFT && + t->dc_did == DC_DEVICEID_MSMN130) + t++; return (t); } t++; @@ -1927,6 +1945,8 @@ dc_attach(device_t dev) case DC_DEVICEID_EN2242: case DC_DEVICEID_HAWKING_PN672TX: case DC_DEVICEID_3CSOHOB: + case DC_DEVICEID_MSMN120: + case DC_DEVICEID_MSMN130_FAKE: /* XXX avoid collision with PNIC*/ sc->dc_type = DC_TYPE_AN985; sc->dc_flags |= DC_64BIT_HASH; sc->dc_flags |= DC_TX_USE_TX_INTR; diff --git a/sys/dev/dc/if_dcreg.h b/sys/dev/dc/if_dcreg.h index edbefef77607..e4ad2b9419c9 100644 --- a/sys/dev/dc/if_dcreg.h +++ b/sys/dev/dc/if_dcreg.h @@ -984,6 +984,20 @@ struct dc_softc { */ #define DC_DEVICEID_HAWKING_PN672TX 0xab08 +/* + * Microsoft device ID. + */ +#define DC_VENDORID_MICROSOFT 0x1414 + +/* + * Supported Microsoft PCI and cardbus NICs. These are really + * ADMtek parts in disguise. + */ + +#define DC_DEVICEID_MSMN120 0x0001 +#define DC_DEVICEID_MSMN130 0x0002 +#define DC_DEVICEID_MSMN130_FAKE 0xFFF2 + /* * PCI low memory base and low I/O base register, and * other PCI registers. diff --git a/sys/dev/usb/if_aue.c b/sys/dev/usb/if_aue.c index 80e8b42f77b9..c0f6e67d796a 100644 --- a/sys/dev/usb/if_aue.c +++ b/sys/dev/usb/if_aue.c @@ -156,6 +156,7 @@ Static const struct aue_type aue_devs[] = { {{ USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB100H1}, LSYS|PNA }, {{ USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TA}, LSYS }, {{ USB_VENDOR_LINKSYS, USB_PRODUCT_LINKSYS_USB10TX2}, LSYS|PII }, + {{ USB_VENDOR_MICROSOFT, USB_PRODUCT_MICROSOFT_MN110}, PII }, {{ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX1}, 0 }, {{ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUATX5}, 0 }, {{ USB_VENDOR_MELCO, USB_PRODUCT_MELCO_LUA2TX5}, PII }, diff --git a/sys/dev/usb/usbdevs b/sys/dev/usb/usbdevs index 63d0ff6ae63c..21ab74b7db0b 100644 --- a/sys/dev/usb/usbdevs +++ b/sys/dev/usb/usbdevs @@ -859,6 +859,7 @@ product MICROSOFT SIDEWINDER 0x001a Sidewinder Precision Racing Wheel product MICROSOFT INETPRO 0x001c Internet Keyboard Pro product MICROSOFT INTELLIEYE 0x0025 IntelliEye mouse product MICROSOFT INETPRO2 0x002b Internet Keyboard Pro +product MICROSOFT MN110 0x007a 10/100 USB NIC /* Microtech products */ product MICROTECH SCSIDB25 0x0004 USB-SCSI-DB25 -- cgit v1.3