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.
This commit is contained in:
parent
2184143037
commit
ab54f72013
@ -145,6 +145,10 @@ CNet Pro110B (ASIX AX88140A)
|
||||
LinkSys LNE100TX v4.0/4.1 (ADMtek AN985 Centaur-P)
|
||||
.It
|
||||
3Com OfficeConnect 10/100B (ADMtek AN985 Centaur-P)
|
||||
.It
|
||||
Microsoft MN-120 10/100 CardBus (ADMTek Centaur-C)
|
||||
.It
|
||||
Microsoft MN-130 10/100 PCI (ADMTek Centaur-P)
|
||||
.El
|
||||
.Pp
|
||||
The
|
||||
|
@ -35,7 +35,7 @@
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm rl
|
||||
.Nd RealTek 8129/8139 fast ethernet device driver
|
||||
.Nd RealTek 8129/8139/8139C+ fast ethernet device driver
|
||||
.Sh SYNOPSIS
|
||||
.Cd "device miibus"
|
||||
.Cd "device rl"
|
||||
@ -44,17 +44,64 @@ The
|
||||
.Nm
|
||||
driver provides support for PCI ethernet adapters and embedded
|
||||
controllers based on the RealTek 8129 and 8139 fast ethernet controller
|
||||
chips.
|
||||
This includes the Allied Telesyn AT2550, Farallon NetLINE 10/100 PCI,
|
||||
Genius GF100TXR,
|
||||
NDC Communications NE100TX-E, OvisLink LEF-8129TX, OvisLink LEF-8139TX,
|
||||
Netronix Inc. EA-1210 NetEther 10/100, KTX-9130TX 10/100 Fast Ethernet,
|
||||
Encore ENL832-TX 10/100 M PCI, Longshine LCS-8038TX-R, the
|
||||
SMC EZ Card 10/100 PCI 1211-TX, and various other cheap adapters.
|
||||
It also supports the Accton EN1207D which has a
|
||||
chip labeled MPX5030 (or MPX5038) which appears to be a RealTek workalike.
|
||||
chips, including the following:
|
||||
.Pp
|
||||
The RealTek controllers use bus master DMA but do not use a
|
||||
.Bl -bullet -compact -offset indent
|
||||
.It
|
||||
Allied Telesyn AT2550
|
||||
.It
|
||||
Farallon NetLINE 10/100 PCI
|
||||
.It
|
||||
Genius GF100TXR,
|
||||
.It
|
||||
NDC Communications NE100TX-E
|
||||
.It
|
||||
OvisLink LEF-8129TX
|
||||
.It
|
||||
OvisLink LEF-8139TX,
|
||||
.It
|
||||
Netronix Inc. EA-1210 NetEther 10/100
|
||||
.It
|
||||
KTX-9130TX 10/100 Fast Ethernet,
|
||||
.It
|
||||
Encore ENL832-TX 10/100 M PCI,
|
||||
.It
|
||||
Longshine LCS-8038TX-R
|
||||
.It
|
||||
SMC EZ Card 10/100 PCI 1211-TX
|
||||
.It
|
||||
Compaq HNE-300
|
||||
.It
|
||||
LevelOne FPC-0106TX
|
||||
.It
|
||||
Edimax EP-4103DL CardBus
|
||||
.It
|
||||
Nortel Networks 10/100BaseTX
|
||||
.It
|
||||
D-Link DFE-690TXD
|
||||
.It
|
||||
D-Link DFE-530TX+
|
||||
.It
|
||||
D-Link DFE-538TX (same as 530+?)
|
||||
.It
|
||||
Corega FEther CB-TXD
|
||||
.It
|
||||
Corega FEtherII CB-TXD
|
||||
.It
|
||||
Peppercon AG ROL-F
|
||||
.It
|
||||
Planex FNW-3800-TX
|
||||
.It
|
||||
Accton EN1207D
|
||||
.It
|
||||
GigaFast Ethernet EE100-AXP
|
||||
.It
|
||||
CompUSA no-name 10/100 PCI ethernet NIC
|
||||
.It
|
||||
Belkin F5D5000
|
||||
.El
|
||||
.Pp
|
||||
The RealTek 8129/8139 series controllers use bus master DMA but do not use a
|
||||
descriptor-based data transfer mechanism.
|
||||
The receiver uses a
|
||||
single fixed size ring buffer from which packets must be copied
|
||||
@ -73,6 +120,21 @@ supports both 10 and 100Mbps speeds in either full or half duplex.
|
||||
The 8129 can support the same speeds and modes given an appropriate
|
||||
PHY chip.
|
||||
.Pp
|
||||
Support is also provided for the special C+ mode of the 8139C+ chip.
|
||||
By default, the 8139C+ is back backwards compatible with the 8139, but
|
||||
in C+ mode it supports advanced features such as descriptor-based DMA,
|
||||
64-bit addressing, TCP/IP checksum offload on both receive and transmit,
|
||||
hardware VLAN tag insertion and extraction, and TCP large send.
|
||||
When used with an 8139C+ chip, the
|
||||
.Nm
|
||||
driver makes use of all of these features, except for TCP large send,
|
||||
since there is currently no OS support for it. Transmit interrupt
|
||||
moderation is also used to improve performance at high frame rates.
|
||||
The receive and transmit checksum offload capabilities are on by default
|
||||
but can be toggled off using the
|
||||
.Xr ifconfig 8
|
||||
command.
|
||||
.Pp
|
||||
The
|
||||
.Nm
|
||||
driver supports the following media types:
|
||||
@ -167,8 +229,8 @@ the card should be configured correctly.
|
||||
.Xr ng_ether 4 ,
|
||||
.Xr ifconfig 8
|
||||
.Rs
|
||||
.%B The RealTek 8129 and 8139 datasheets
|
||||
.%O ftp.realtek.com.tw:/lancard/data sheet
|
||||
.%B The RealTek 8129, 8139 and 8139C+ datasheets
|
||||
.%O http://www.realtek.com.tw
|
||||
.Re
|
||||
.Sh HISTORY
|
||||
The
|
||||
|
@ -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;
|
||||
|
@ -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.
|
||||
|
@ -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 },
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user