diff options
author | wpaul <wpaul@FreeBSD.org> | 2000-10-28 09:00:20 +0000 |
---|---|---|
committer | wpaul <wpaul@FreeBSD.org> | 2000-10-28 09:00:20 +0000 |
commit | a5f3fd7958c99da7a2ebe99fb813842f3677b0aa (patch) | |
tree | 88163c3773e164918886a6692a8184575a552500 /sys/pci | |
parent | 2e093a62cdeea937b2f70ff5a5ea41e763119395 (diff) | |
download | FreeBSD-src-a5f3fd7958c99da7a2ebe99fb813842f3677b0aa.zip FreeBSD-src-a5f3fd7958c99da7a2ebe99fb813842f3677b0aa.tar.gz |
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.
Diffstat (limited to 'sys/pci')
-rw-r--r-- | sys/pci/if_dc.c | 10 | ||||
-rw-r--r-- | sys/pci/if_dcreg.h | 9 | ||||
-rw-r--r-- | sys/pci/if_rl.c | 5 | ||||
-rw-r--r-- | sys/pci/if_rlreg.h | 1 |
4 files changed, 22 insertions, 3 deletions
diff --git a/sys/pci/if_dc.c b/sys/pci/if_dc.c index ee83951..3cff108 100644 --- a/sys/pci/if_dc.c +++ b/sys/pci/if_dc.c @@ -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; diff --git a/sys/pci/if_dcreg.h b/sys/pci/if_dcreg.h index f36d6b3..9d44fa4 100644 --- a/sys/pci/if_dcreg.h +++ b/sys/pci/if_dcreg.h @@ -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 diff --git a/sys/pci/if_rl.c b/sys/pci/if_rl.c index 0feb7f8..548682e 100644 --- a/sys/pci/if_rl.c +++ b/sys/pci/if_rl.c @@ -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; diff --git a/sys/pci/if_rlreg.h b/sys/pci/if_rlreg.h index 2f08768..60d1836 100644 --- a/sys/pci/if_rlreg.h +++ b/sys/pci/if_rlreg.h @@ -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 /* |