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:
parent
a61a28f04c
commit
1d5e53109c
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=67771
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user