diff options
author | yongari <yongari@FreeBSD.org> | 2008-07-09 01:58:18 +0000 |
---|---|---|
committer | yongari <yongari@FreeBSD.org> | 2008-07-09 01:58:18 +0000 |
commit | 8bced35dc2abf67e9f17cae9597bff47aa244820 (patch) | |
tree | d43e9cb809c4c4ac869336ffec8099ed43c7900c | |
parent | 756491769a741ce2919791c6997b56be90e89a9e (diff) | |
download | FreeBSD-src-8bced35dc2abf67e9f17cae9597bff47aa244820.zip FreeBSD-src-8bced35dc2abf67e9f17cae9597bff47aa244820.tar.gz |
Add driver support for RTL8102E and RTL8102EL which is the second
generation of RTL810x PCIe fast ethernet controller. Note, Tx/Rx
descriptor format is different from that of first generation of
RTL8101E series. Jumbo frame is not supported for RTL810x
family.
Tested by: NAGATA Shinya ( maya AT negeta DOT com )
-rw-r--r-- | sys/dev/re/if_re.c | 9 | ||||
-rw-r--r-- | sys/pci/if_rlreg.h | 2 |
2 files changed, 10 insertions, 1 deletions
diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c index 38bdb59..ce74b7a 100644 --- a/sys/dev/re/if_re.c +++ b/sys/dev/re/if_re.c @@ -170,7 +170,7 @@ static struct rl_type re_devs[] = { { RT_VENDORID, RT_DEVICEID_8139, 0, "RealTek 8139C+ 10/100BaseTX" }, { RT_VENDORID, RT_DEVICEID_8101E, 0, - "RealTek 8101E PCIe 10/100baseTX" }, + "RealTek 8101E/8102E/8102EL PCIe 10/100baseTX" }, { RT_VENDORID, RT_DEVICEID_8168, 0, "RealTek 8168/8168B/8168C/8168CP/8111B/8111C/8111CP PCIe " "Gigabit Ethernet" }, @@ -206,6 +206,8 @@ static struct rl_hwrev re_hwrevs[] = { { RL_HWREV_8101, RL_8139, "8101"}, { RL_HWREV_8100E, RL_8169, "8100E"}, { RL_HWREV_8101E, RL_8169, "8101E"}, + { RL_HWREV_8102E, RL_8169, "8102E"}, + { RL_HWREV_8102EL, RL_8169, "8102EL"}, { RL_HWREV_8168_SPIN2, RL_8169, "8168"}, { RL_HWREV_8168_SPIN3, RL_8169, "8168"}, { RL_HWREV_8168C, RL_8169, "8168C/8111C"}, @@ -1243,6 +1245,11 @@ re_attach(dev) sc->rl_flags |= RL_FLAG_NOJUMBO | RL_FLAG_INVMAR | RL_FLAG_PHYWAKE; break; + case RL_HWREV_8102E: + case RL_HWREV_8102EL: + sc->rl_flags |= RL_FLAG_NOJUMBO | RL_FLAG_INVMAR | + RL_FLAG_PHYWAKE | RL_FLAG_DESCV2 | RL_FLAG_MACSTAT; + break; case RL_HWREV_8168_SPIN1: case RL_HWREV_8168_SPIN2: case RL_HWREV_8168_SPIN3: diff --git a/sys/pci/if_rlreg.h b/sys/pci/if_rlreg.h index e15465e..9456433 100644 --- a/sys/pci/if_rlreg.h +++ b/sys/pci/if_rlreg.h @@ -156,9 +156,11 @@ #define RL_HWREV_8169S 0x04000000 #define RL_HWREV_8169_8110SB 0x10000000 #define RL_HWREV_8169_8110SC 0x18000000 +#define RL_HWREV_8102EL 0x24800000 #define RL_HWREV_8168_SPIN1 0x30000000 #define RL_HWREV_8100E 0x30800000 #define RL_HWREV_8101E 0x34000000 +#define RL_HWREV_8102E 0x34800000 #define RL_HWREV_8168_SPIN2 0x38000000 #define RL_HWREV_8168_SPIN3 0x38400000 #define RL_HWREV_8168C 0x3C000000 |