1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-13 10:02:38 +00:00

Add PCI IDs for some additional cardbus cards. Yes, there really is

a RealTek 8139 cardbus device. Unfortunately it doesn't quite work yet
because the CIS parser barfs on it.

Submitted by msmith, with some small tweaks by me.
This commit is contained in:
Bill Paul 2000-10-28 09:00:20 +00:00
parent a61a28f04c
commit 1d5e53109c
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=67771
6 changed files with 39 additions and 5 deletions

View File

@ -46,6 +46,7 @@
* Davicom DM9100, DM9102, DM9102A (www.davicom8.com)
* Accton EN1217 (www.accton.com)
* Xircom X3201 (www.xircom.com)
* Abocom FE2500
*
* Datasheets for the 21143 are available at developer.intel.com.
* Datasheets for the clone parts can be found at their respective sites.
@ -181,6 +182,8 @@ static struct dc_type dc_devs[] = {
"Accton EN1217 10/100BaseTX" },
{ DC_VENDORID_XIRCOM, DC_DEVICEID_X3201,
"Xircom X3201 10/100BaseTX" },
{ DC_VENDORID_ABOCOM, DC_DEVICEID_FE2500,
"Abocom FE2500 10/100BaseTX" },
{ 0, 0, NULL }
};
@ -1238,7 +1241,8 @@ void dc_setfilt_xircom(sc)
ifma = ifma->ifma_link.le_next) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
h = dc_crc_le(sc, LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
h = dc_crc_le(sc,
LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
sp[h >> 4] |= 1 << (h & 0xF);
}
@ -1451,7 +1455,8 @@ static void dc_reset(sc)
break;
}
if (DC_IS_ASIX(sc) || DC_IS_ADMTEK(sc) || DC_IS_XIRCOM(sc) || DC_IS_INTEL(sc)) {
if (DC_IS_ASIX(sc) || DC_IS_ADMTEK(sc) ||
DC_IS_XIRCOM(sc) || DC_IS_INTEL(sc)) {
DELAY(10000);
DC_CLRBIT(sc, DC_BUSCTL, DC_BUSCTL_RESET);
i = 0;
@ -1849,6 +1854,7 @@ static int dc_attach(dev)
sc->dc_pmode = DC_PMODE_MII;
break;
case DC_DEVICEID_AN985:
case DE_DEVICEID_FE2500:
sc->dc_type = DC_TYPE_AN985;
sc->dc_flags |= DC_TX_USE_TX_INTR;
sc->dc_flags |= DC_TX_ADMTEK_WAR;

View File

@ -865,6 +865,15 @@ struct dc_softc {
*/
#define DC_DEVICEID_X3201 0x0003
/*
* Abocom vendor ID
*/
#define DC_VENDORID_ABOCOM 0x13d1
/*
* Abocom device IDs.
*/
#define DC_DEVICEID_FE2500 0xAB02
/*
* PCI low memory base and low I/O base register, and

View File

@ -46,6 +46,7 @@
* Davicom DM9100, DM9102, DM9102A (www.davicom8.com)
* Accton EN1217 (www.accton.com)
* Xircom X3201 (www.xircom.com)
* Abocom FE2500
*
* Datasheets for the 21143 are available at developer.intel.com.
* Datasheets for the clone parts can be found at their respective sites.
@ -181,6 +182,8 @@ static struct dc_type dc_devs[] = {
"Accton EN1217 10/100BaseTX" },
{ DC_VENDORID_XIRCOM, DC_DEVICEID_X3201,
"Xircom X3201 10/100BaseTX" },
{ DC_VENDORID_ABOCOM, DC_DEVICEID_FE2500,
"Abocom FE2500 10/100BaseTX" },
{ 0, 0, NULL }
};
@ -1238,7 +1241,8 @@ void dc_setfilt_xircom(sc)
ifma = ifma->ifma_link.le_next) {
if (ifma->ifma_addr->sa_family != AF_LINK)
continue;
h = dc_crc_le(sc, LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
h = dc_crc_le(sc,
LLADDR((struct sockaddr_dl *)ifma->ifma_addr));
sp[h >> 4] |= 1 << (h & 0xF);
}
@ -1451,7 +1455,8 @@ static void dc_reset(sc)
break;
}
if (DC_IS_ASIX(sc) || DC_IS_ADMTEK(sc) || DC_IS_XIRCOM(sc) || DC_IS_INTEL(sc)) {
if (DC_IS_ASIX(sc) || DC_IS_ADMTEK(sc) ||
DC_IS_XIRCOM(sc) || DC_IS_INTEL(sc)) {
DELAY(10000);
DC_CLRBIT(sc, DC_BUSCTL, DC_BUSCTL_RESET);
i = 0;
@ -1849,6 +1854,7 @@ static int dc_attach(dev)
sc->dc_pmode = DC_PMODE_MII;
break;
case DC_DEVICEID_AN985:
case DE_DEVICEID_FE2500:
sc->dc_type = DC_TYPE_AN985;
sc->dc_flags |= DC_TX_USE_TX_INTR;
sc->dc_flags |= DC_TX_ADMTEK_WAR;

View File

@ -865,6 +865,15 @@ struct dc_softc {
*/
#define DC_DEVICEID_X3201 0x0003
/*
* Abocom vendor ID
*/
#define DC_VENDORID_ABOCOM 0x13d1
/*
* Abocom device IDs.
*/
#define DC_DEVICEID_FE2500 0xAB02
/*
* PCI low memory base and low I/O base register, and

View File

@ -144,6 +144,8 @@ static struct rl_type rl_devs[] = {
"RealTek 8129 10/100BaseTX" },
{ RT_VENDORID, RT_DEVICEID_8139,
"RealTek 8139 10/100BaseTX" },
{ RT_VENDORID, RT_DEVICEID_8138,
"RealTek 8139 10/100BaseTX CardBus" },
{ ACCTON_VENDORID, ACCTON_DEVICEID_5030,
"Accton MPX 5030/5038 10/100BaseTX" },
{ DELTA_VENDORID, DELTA_DEVICEID_8139,
@ -912,7 +914,8 @@ static int rl_attach(dev)
rl_read_eeprom(sc, (caddr_t)&rl_did, RL_EE_PCI_DID, 1, 0);
if (rl_did == RT_DEVICEID_8139 || rl_did == ACCTON_DEVICEID_5030 ||
rl_did == DELTA_DEVICEID_8139 || rl_did == ADDTRON_DEVICEID_8139)
rl_did == DELTA_DEVICEID_8139 || rl_did == ADDTRON_DEVICEID_8139 ||
rl_did == RT_DEVICEID_8138)
sc->rl_type = RL_8139;
else if (rl_did == RT_DEVICEID_8129)
sc->rl_type = RL_8129;

View File

@ -404,6 +404,7 @@ struct rl_softc {
* RealTek chip device IDs.
*/
#define RT_DEVICEID_8129 0x8129
#define RT_DEVICEID_8138 0x8138
#define RT_DEVICEID_8139 0x8139
/*