Pull up following revision(s) (requested by garbled in ticket #1698): sys/dev/ic/rtl81x9var.h: revision 1.52 sys/dev/ic/rtl8169.c: revision 1.134 sys/dev/ic/rtl81x9reg.h: revision 1.42 Add support to recognize the 8168E model of this chip. Taken from FreeBSDdiff -r1.105.4.8 -r1.105.4.9 src/sys/dev/ic/rtl8169.c
(riz)
--- src/sys/dev/ic/rtl8169.c 2009/06/19 21:51:43 1.105.4.8
+++ src/sys/dev/ic/rtl8169.c 2012/01/25 18:02:44 1.105.4.9
@@ -1,14 +1,14 @@ | @@ -1,14 +1,14 @@ | |||
1 | /* $NetBSD: rtl8169.c,v 1.105.4.8 2009/06/19 21:51:43 snj Exp $ */ | 1 | /* $NetBSD: rtl8169.c,v 1.105.4.9 2012/01/25 18:02:44 riz Exp $ */ | |
2 | 2 | |||
3 | /* | 3 | /* | |
4 | * Copyright (c) 1997, 1998-2003 | 4 | * Copyright (c) 1997, 1998-2003 | |
5 | * Bill Paul <wpaul@windriver.com>. All rights reserved. | 5 | * Bill Paul <wpaul@windriver.com>. All rights reserved. | |
6 | * | 6 | * | |
7 | * Redistribution and use in source and binary forms, with or without | 7 | * Redistribution and use in source and binary forms, with or without | |
8 | * modification, are permitted provided that the following conditions | 8 | * modification, are permitted provided that the following conditions | |
9 | * are met: | 9 | * are met: | |
10 | * 1. Redistributions of source code must retain the above copyright | 10 | * 1. Redistributions of source code must retain the above copyright | |
11 | * notice, this list of conditions and the following disclaimer. | 11 | * notice, this list of conditions and the following disclaimer. | |
12 | * 2. Redistributions in binary form must reproduce the above copyright | 12 | * 2. Redistributions in binary form must reproduce the above copyright | |
13 | * notice, this list of conditions and the following disclaimer in the | 13 | * notice, this list of conditions and the following disclaimer in the | |
14 | * documentation and/or other materials provided with the distribution. | 14 | * documentation and/or other materials provided with the distribution. | |
@@ -23,27 +23,27 @@ | @@ -23,27 +23,27 @@ | |||
23 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 23 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
24 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | 24 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
25 | * ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD | 25 | * ARE DISCLAIMED. IN NO EVENT SHALL Bill Paul OR THE VOICES IN HIS HEAD | |
26 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | 26 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
27 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | 27 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
28 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | 28 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
29 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | 29 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
30 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | 30 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
31 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF | 31 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF | |
32 | * THE POSSIBILITY OF SUCH DAMAGE. | 32 | * THE POSSIBILITY OF SUCH DAMAGE. | |
33 | */ | 33 | */ | |
34 | 34 | |||
35 | #include <sys/cdefs.h> | 35 | #include <sys/cdefs.h> | |
36 | __KERNEL_RCSID(0, "$NetBSD: rtl8169.c,v 1.105.4.8 2009/06/19 21:51:43 snj Exp $"); | 36 | __KERNEL_RCSID(0, "$NetBSD: rtl8169.c,v 1.105.4.9 2012/01/25 18:02:44 riz Exp $"); | |
37 | /* $FreeBSD: /repoman/r/ncvs/src/sys/dev/re/if_re.c,v 1.20 2004/04/11 20:34:08 ru Exp $ */ | 37 | /* $FreeBSD: /repoman/r/ncvs/src/sys/dev/re/if_re.c,v 1.20 2004/04/11 20:34:08 ru Exp $ */ | |
38 | 38 | |||
39 | /* | 39 | /* | |
40 | * RealTek 8139C+/8169/8169S/8110S PCI NIC driver | 40 | * RealTek 8139C+/8169/8169S/8110S PCI NIC driver | |
41 | * | 41 | * | |
42 | * Written by Bill Paul <wpaul@windriver.com> | 42 | * Written by Bill Paul <wpaul@windriver.com> | |
43 | * Senior Networking Software Engineer | 43 | * Senior Networking Software Engineer | |
44 | * Wind River Systems | 44 | * Wind River Systems | |
45 | */ | 45 | */ | |
46 | 46 | |||
47 | /* | 47 | /* | |
48 | * This driver is designed to support RealTek's next generation of | 48 | * This driver is designed to support RealTek's next generation of | |
49 | * 10/100 and 10/100/1000 PCI ethernet controllers. There are currently | 49 | * 10/100 and 10/100/1000 PCI ethernet controllers. There are currently | |
@@ -593,26 +593,31 @@ re_attach(struct rtk_softc *sc) | @@ -593,26 +593,31 @@ re_attach(struct rtk_softc *sc) | |||
593 | * | 593 | * | |
594 | * These (8168/8111) controllers support jumbo frame | 594 | * These (8168/8111) controllers support jumbo frame | |
595 | * but it seems that enabling it requires touching | 595 | * but it seems that enabling it requires touching | |
596 | * additional magic registers. Depending on MAC | 596 | * additional magic registers. Depending on MAC | |
597 | * revisions some controllers need to disable | 597 | * revisions some controllers need to disable | |
598 | * checksum offload. So disable jumbo frame until | 598 | * checksum offload. So disable jumbo frame until | |
599 | * I have better idea what it really requires to | 599 | * I have better idea what it really requires to | |
600 | * make it support. | 600 | * make it support. | |
601 | * RTL8168C/CP : supports up to 6KB jumbo frame. | 601 | * RTL8168C/CP : supports up to 6KB jumbo frame. | |
602 | * RTL8111C/CP : supports up to 9KB jumbo frame. | 602 | * RTL8111C/CP : supports up to 9KB jumbo frame. | |
603 | */ | 603 | */ | |
604 | sc->sc_quirk |= RTKQ_NOJUMBO; | 604 | sc->sc_quirk |= RTKQ_NOJUMBO; | |
605 | break; | 605 | break; | |
606 | case RTK_HWREV_8168E: | |||
607 | sc->sc_quirk |= RTKQ_DESCV2 | RTKQ_NOEECMD | | |||
608 | RTKQ_MACSTAT | RTKQ_CMDSTOP | RTKQ_PHYWAKE_PM | | |||
609 | RTKQ_NOJUMBO; | |||
610 | break; | |||
606 | case RTK_HWREV_8100E: | 611 | case RTK_HWREV_8100E: | |
607 | case RTK_HWREV_8100E_SPIN2: | 612 | case RTK_HWREV_8100E_SPIN2: | |
608 | case RTK_HWREV_8101E: | 613 | case RTK_HWREV_8101E: | |
609 | sc->sc_quirk |= RTKQ_NOJUMBO; | 614 | sc->sc_quirk |= RTKQ_NOJUMBO; | |
610 | break; | 615 | break; | |
611 | case RTK_HWREV_8102E: | 616 | case RTK_HWREV_8102E: | |
612 | case RTK_HWREV_8102EL: | 617 | case RTK_HWREV_8102EL: | |
613 | case RTK_HWREV_8103E: | 618 | case RTK_HWREV_8103E: | |
614 | sc->sc_quirk |= RTKQ_DESCV2 | RTKQ_NOEECMD | | 619 | sc->sc_quirk |= RTKQ_DESCV2 | RTKQ_NOEECMD | | |
615 | RTKQ_MACSTAT | RTKQ_CMDSTOP | RTKQ_NOJUMBO; | 620 | RTKQ_MACSTAT | RTKQ_CMDSTOP | RTKQ_NOJUMBO; | |
616 | break; | 621 | break; | |
617 | default: | 622 | default: | |
618 | aprint_normal_dev(sc->sc_dev, | 623 | aprint_normal_dev(sc->sc_dev, | |
@@ -651,26 +656,30 @@ re_attach(struct rtk_softc *sc) | @@ -651,26 +656,30 @@ re_attach(struct rtk_softc *sc) | |||
651 | else | 656 | else | |
652 | addr_len = RTK_EEADDR_LEN0; | 657 | addr_len = RTK_EEADDR_LEN0; | |
653 | 658 | |||
654 | /* | 659 | /* | |
655 | * Get station address from the EEPROM. | 660 | * Get station address from the EEPROM. | |
656 | */ | 661 | */ | |
657 | for (i = 0; i < ETHER_ADDR_LEN / 2; i++) { | 662 | for (i = 0; i < ETHER_ADDR_LEN / 2; i++) { | |
658 | val = rtk_read_eeprom(sc, RTK_EE_EADDR0 + i, addr_len); | 663 | val = rtk_read_eeprom(sc, RTK_EE_EADDR0 + i, addr_len); | |
659 | eaddr[(i * 2) + 0] = val & 0xff; | 664 | eaddr[(i * 2) + 0] = val & 0xff; | |
660 | eaddr[(i * 2) + 1] = val >> 8; | 665 | eaddr[(i * 2) + 1] = val >> 8; | |
661 | } | 666 | } | |
662 | } | 667 | } | |
663 | 668 | |||
669 | /* Take PHY out of power down mode. */ | |||
670 | if ((sc->sc_quirk & RTKQ_PHYWAKE_PM) != 0) | |||
671 | CSR_WRITE_1(sc, RTK_PMCH, CSR_READ_1(sc, RTK_PMCH) | 0x80); | |||
672 | ||||
664 | aprint_normal_dev(sc->sc_dev, "Ethernet address %s\n", | 673 | aprint_normal_dev(sc->sc_dev, "Ethernet address %s\n", | |
665 | ether_sprintf(eaddr)); | 674 | ether_sprintf(eaddr)); | |
666 | 675 | |||
667 | if (sc->re_ldata.re_tx_desc_cnt > | 676 | if (sc->re_ldata.re_tx_desc_cnt > | |
668 | PAGE_SIZE / sizeof(struct re_desc)) { | 677 | PAGE_SIZE / sizeof(struct re_desc)) { | |
669 | sc->re_ldata.re_tx_desc_cnt = | 678 | sc->re_ldata.re_tx_desc_cnt = | |
670 | PAGE_SIZE / sizeof(struct re_desc); | 679 | PAGE_SIZE / sizeof(struct re_desc); | |
671 | } | 680 | } | |
672 | 681 | |||
673 | aprint_verbose_dev(sc->sc_dev, "using %d tx descriptors\n", | 682 | aprint_verbose_dev(sc->sc_dev, "using %d tx descriptors\n", | |
674 | sc->re_ldata.re_tx_desc_cnt); | 683 | sc->re_ldata.re_tx_desc_cnt); | |
675 | KASSERT(RE_NEXT_TX_DESC(sc, RE_TX_DESC_CNT(sc) - 1) == 0); | 684 | KASSERT(RE_NEXT_TX_DESC(sc, RE_TX_DESC_CNT(sc) - 1) == 0); | |
676 | 685 |
--- src/sys/dev/ic/rtl81x9reg.h 2009/06/19 21:51:43 1.32.4.4
+++ src/sys/dev/ic/rtl81x9reg.h 2012/01/25 18:02:45 1.32.4.5
@@ -1,14 +1,14 @@ | @@ -1,14 +1,14 @@ | |||
1 | /* $NetBSD: rtl81x9reg.h,v 1.32.4.4 2009/06/19 21:51:43 snj Exp $ */ | 1 | /* $NetBSD: rtl81x9reg.h,v 1.32.4.5 2012/01/25 18:02:45 riz Exp $ */ | |
2 | 2 | |||
3 | /* | 3 | /* | |
4 | * Copyright (c) 1997, 1998 | 4 | * Copyright (c) 1997, 1998 | |
5 | * Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved. | 5 | * Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved. | |
6 | * | 6 | * | |
7 | * Redistribution and use in source and binary forms, with or without | 7 | * Redistribution and use in source and binary forms, with or without | |
8 | * modification, are permitted provided that the following conditions | 8 | * modification, are permitted provided that the following conditions | |
9 | * are met: | 9 | * are met: | |
10 | * 1. Redistributions of source code must retain the above copyright | 10 | * 1. Redistributions of source code must retain the above copyright | |
11 | * notice, this list of conditions and the following disclaimer. | 11 | * notice, this list of conditions and the following disclaimer. | |
12 | * 2. Redistributions in binary form must reproduce the above copyright | 12 | * 2. Redistributions in binary form must reproduce the above copyright | |
13 | * notice, this list of conditions and the following disclaimer in the | 13 | * notice, this list of conditions and the following disclaimer in the | |
14 | * documentation and/or other materials provided with the distribution. | 14 | * documentation and/or other materials provided with the distribution. | |
@@ -120,26 +120,27 @@ | @@ -120,26 +120,27 @@ | |||
120 | #define RTK_RXLIST_ADDR_HI 0x00E8 /* 64 bits, 256 byte alignment */ | 120 | #define RTK_RXLIST_ADDR_HI 0x00E8 /* 64 bits, 256 byte alignment */ | |
121 | #define RTK_EARLY_TX_THRESH 0x00EC /* 8 bits */ | 121 | #define RTK_EARLY_TX_THRESH 0x00EC /* 8 bits */ | |
122 | 122 | |||
123 | /* | 123 | /* | |
124 | * Registers specific to the 8169 gigE chip | 124 | * Registers specific to the 8169 gigE chip | |
125 | */ | 125 | */ | |
126 | #define RTK_GTXSTART 0x0038 /* 8 bits */ | 126 | #define RTK_GTXSTART 0x0038 /* 8 bits */ | |
127 | #define RTK_TIMERINT_8169 0x0058 /* different offset than 8139 */ | 127 | #define RTK_TIMERINT_8169 0x0058 /* different offset than 8139 */ | |
128 | #define RTK_PHYAR 0x0060 | 128 | #define RTK_PHYAR 0x0060 | |
129 | #define RTK_CSIDR 0x0064 | 129 | #define RTK_CSIDR 0x0064 | |
130 | #define RTK_CSIAR 0x0068 | 130 | #define RTK_CSIAR 0x0068 | |
131 | #define RTK_TBI_LPAR 0x006A | 131 | #define RTK_TBI_LPAR 0x006A | |
132 | #define RTK_GMEDIASTAT 0x006C /* 8 bits */ | 132 | #define RTK_GMEDIASTAT 0x006C /* 8 bits */ | |
133 | #define RTK_PMCH 0x006F /* 8 bits */ | |||
133 | #define RTK_EPHYAR 0x0080 | 134 | #define RTK_EPHYAR 0x0080 | |
134 | #define RTK_LDPS 0x0082 /* Link Down Power Saving */ | 135 | #define RTK_LDPS 0x0082 /* Link Down Power Saving */ | |
135 | #define RTK_DBG_REG 0x00D1 | 136 | #define RTK_DBG_REG 0x00D1 | |
136 | #define RTK_MAXRXPKTLEN 0x00DA /* 16 bits, chip multiplies by 8 */ | 137 | #define RTK_MAXRXPKTLEN 0x00DA /* 16 bits, chip multiplies by 8 */ | |
137 | #define RTK_IM 0x00E2 | 138 | #define RTK_IM 0x00E2 | |
138 | 139 | |||
139 | /* | 140 | /* | |
140 | * TX config register bits | 141 | * TX config register bits | |
141 | */ | 142 | */ | |
142 | #define RTK_TXCFG_CLRABRT 0x00000001 /* retransmit aborted pkt */ | 143 | #define RTK_TXCFG_CLRABRT 0x00000001 /* retransmit aborted pkt */ | |
143 | #define RTK_TXCFG_MAXDMA 0x00000700 /* max DMA burst size */ | 144 | #define RTK_TXCFG_MAXDMA 0x00000700 /* max DMA burst size */ | |
144 | #define RTK_TXCFG_CRCAPPEND 0x00010000 /* CRC append (0 = yes) */ | 145 | #define RTK_TXCFG_CRCAPPEND 0x00010000 /* CRC append (0 = yes) */ | |
145 | #define RTK_TXCFG_LOOPBKTST 0x00060000 /* loopback test */ | 146 | #define RTK_TXCFG_LOOPBKTST 0x00060000 /* loopback test */ | |
@@ -151,26 +152,27 @@ | @@ -151,26 +152,27 @@ | |||
151 | #define RTK_LOOPTEST_ON 0x00020000 | 152 | #define RTK_LOOPTEST_ON 0x00020000 | |
152 | #define RTK_LOOPTEST_ON_CPLUS 0x00060000 | 153 | #define RTK_LOOPTEST_ON_CPLUS 0x00060000 | |
153 | 154 | |||
154 | /* Known revision codes. */ | 155 | /* Known revision codes. */ | |
155 | #define RTK_HWREV_8169 0x00000000 | 156 | #define RTK_HWREV_8169 0x00000000 | |
156 | #define RTK_HWREV_8110S 0x00800000 | 157 | #define RTK_HWREV_8110S 0x00800000 | |
157 | #define RTK_HWREV_8169S 0x04000000 | 158 | #define RTK_HWREV_8169S 0x04000000 | |
158 | #define RTK_HWREV_8169_8110SB 0x10000000 | 159 | #define RTK_HWREV_8169_8110SB 0x10000000 | |
159 | #define RTK_HWREV_8169_8110SC 0x18000000 | 160 | #define RTK_HWREV_8169_8110SC 0x18000000 | |
160 | #define RTK_HWREV_8102EL 0x24800000 | 161 | #define RTK_HWREV_8102EL 0x24800000 | |
161 | #define RTK_HWREV_8103E 0x24C00000 | 162 | #define RTK_HWREV_8103E 0x24C00000 | |
162 | #define RTK_HWREV_8168D 0x28000000 | 163 | #define RTK_HWREV_8168D 0x28000000 | |
163 | #define RTK_HWREV_8168DP 0x28800000 | 164 | #define RTK_HWREV_8168DP 0x28800000 | |
165 | #define RTK_HWREV_8168E 0x2C000000 | |||
164 | #define RTK_HWREV_8168_SPIN1 0x30000000 | 166 | #define RTK_HWREV_8168_SPIN1 0x30000000 | |
165 | #define RTK_HWREV_8100E 0x30800000 | 167 | #define RTK_HWREV_8100E 0x30800000 | |
166 | #define RTK_HWREV_8101E 0x34000000 | 168 | #define RTK_HWREV_8101E 0x34000000 | |
167 | #define RTK_HWREV_8102E 0x34800000 | 169 | #define RTK_HWREV_8102E 0x34800000 | |
168 | #define RTK_HWREV_8168_SPIN2 0x38000000 | 170 | #define RTK_HWREV_8168_SPIN2 0x38000000 | |
169 | #define RTK_HWREV_8168_SPIN3 0x38400000 | 171 | #define RTK_HWREV_8168_SPIN3 0x38400000 | |
170 | #define RTK_HWREV_8100E_SPIN2 0x38800000 | 172 | #define RTK_HWREV_8100E_SPIN2 0x38800000 | |
171 | #define RTK_HWREV_8168C 0x3C000000 | 173 | #define RTK_HWREV_8168C 0x3C000000 | |
172 | #define RTK_HWREV_8168C_SPIN2 0x3C400000 | 174 | #define RTK_HWREV_8168C_SPIN2 0x3C400000 | |
173 | #define RTK_HWREV_8168CP 0x3C800000 | 175 | #define RTK_HWREV_8168CP 0x3C800000 | |
174 | #define RTK_HWREV_8139 0x60000000 | 176 | #define RTK_HWREV_8139 0x60000000 | |
175 | #define RTK_HWREV_8139A 0x70000000 | 177 | #define RTK_HWREV_8139A 0x70000000 | |
176 | #define RTK_HWREV_8139AG 0x70800000 | 178 | #define RTK_HWREV_8139AG 0x70800000 |
--- src/sys/dev/ic/rtl81x9var.h 2009/06/19 21:51:43 1.41.12.5
+++ src/sys/dev/ic/rtl81x9var.h 2012/01/25 18:02:44 1.41.12.6
@@ -1,14 +1,14 @@ | @@ -1,14 +1,14 @@ | |||
1 | /* $NetBSD: rtl81x9var.h,v 1.41.12.5 2009/06/19 21:51:43 snj Exp $ */ | 1 | /* $NetBSD: rtl81x9var.h,v 1.41.12.6 2012/01/25 18:02:44 riz Exp $ */ | |
2 | 2 | |||
3 | /* | 3 | /* | |
4 | * Copyright (c) 1997, 1998 | 4 | * Copyright (c) 1997, 1998 | |
5 | * Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved. | 5 | * Bill Paul <wpaul@ctr.columbia.edu>. All rights reserved. | |
6 | * | 6 | * | |
7 | * Redistribution and use in source and binary forms, with or without | 7 | * Redistribution and use in source and binary forms, with or without | |
8 | * modification, are permitted provided that the following conditions | 8 | * modification, are permitted provided that the following conditions | |
9 | * are met: | 9 | * are met: | |
10 | * 1. Redistributions of source code must retain the above copyright | 10 | * 1. Redistributions of source code must retain the above copyright | |
11 | * notice, this list of conditions and the following disclaimer. | 11 | * notice, this list of conditions and the following disclaimer. | |
12 | * 2. Redistributions in binary form must reproduce the above copyright | 12 | * 2. Redistributions in binary form must reproduce the above copyright | |
13 | * notice, this list of conditions and the following disclaimer in the | 13 | * notice, this list of conditions and the following disclaimer in the | |
14 | * documentation and/or other materials provided with the distribution. | 14 | * documentation and/or other materials provided with the distribution. | |
@@ -184,26 +184,27 @@ struct rtk_softc { | @@ -184,26 +184,27 @@ struct rtk_softc { | |||
184 | bus_space_handle_t rtk_bhandle; /* bus space handle */ | 184 | bus_space_handle_t rtk_bhandle; /* bus space handle */ | |
185 | bus_space_tag_t rtk_btag; /* bus space tag */ | 185 | bus_space_tag_t rtk_btag; /* bus space tag */ | |
186 | u_int sc_quirk; /* chip quirks */ | 186 | u_int sc_quirk; /* chip quirks */ | |
187 | #define RTKQ_8129 0x00000001 /* 8129 */ | 187 | #define RTKQ_8129 0x00000001 /* 8129 */ | |
188 | #define RTKQ_8139CPLUS 0x00000002 /* 8139C+ */ | 188 | #define RTKQ_8139CPLUS 0x00000002 /* 8139C+ */ | |
189 | #define RTKQ_8169NONS 0x00000004 /* old non-single 8169 */ | 189 | #define RTKQ_8169NONS 0x00000004 /* old non-single 8169 */ | |
190 | #define RTKQ_PCIE 0x00000008 /* PCIe variants */ | 190 | #define RTKQ_PCIE 0x00000008 /* PCIe variants */ | |
191 | #define RTKQ_MACLDPS 0x00000010 /* has LDPS register */ | 191 | #define RTKQ_MACLDPS 0x00000010 /* has LDPS register */ | |
192 | #define RTKQ_DESCV2 0x00000020 /* has V2 TX/RX descriptor */ | 192 | #define RTKQ_DESCV2 0x00000020 /* has V2 TX/RX descriptor */ | |
193 | #define RTKQ_NOJUMBO 0x00000040 /* no jumbo MTU support */ | 193 | #define RTKQ_NOJUMBO 0x00000040 /* no jumbo MTU support */ | |
194 | #define RTKQ_NOEECMD 0x00000080 /* unusable EEPROM command */ | 194 | #define RTKQ_NOEECMD 0x00000080 /* unusable EEPROM command */ | |
195 | #define RTKQ_MACSTAT 0x00000100 /* set MACSTAT_DIS on init */ | 195 | #define RTKQ_MACSTAT 0x00000100 /* set MACSTAT_DIS on init */ | |
196 | #define RTKQ_CMDSTOP 0x00000200 /* set STOPREQ on stop */ | 196 | #define RTKQ_CMDSTOP 0x00000200 /* set STOPREQ on stop */ | |
197 | #define RTKQ_PHYWAKE_PM 0x00000400 /* wake PHY from power down */ | |||
197 | 198 | |||
198 | bus_dma_tag_t sc_dmat; | 199 | bus_dma_tag_t sc_dmat; | |
199 | 200 | |||
200 | bus_dma_segment_t sc_dmaseg; /* for rtk(4) */ | 201 | bus_dma_segment_t sc_dmaseg; /* for rtk(4) */ | |
201 | int sc_dmanseg; /* for rtk(4) */ | 202 | int sc_dmanseg; /* for rtk(4) */ | |
202 | 203 | |||
203 | bus_dmamap_t recv_dmamap; /* for rtk(4) */ | 204 | bus_dmamap_t recv_dmamap; /* for rtk(4) */ | |
204 | void * rtk_rx_buf; | 205 | void * rtk_rx_buf; | |
205 | 206 | |||
206 | struct rtk_tx_desc rtk_tx_descs[RTK_TX_LIST_CNT]; | 207 | struct rtk_tx_desc rtk_tx_descs[RTK_TX_LIST_CNT]; | |
207 | SIMPLEQ_HEAD(, rtk_tx_desc) rtk_tx_free; | 208 | SIMPLEQ_HEAD(, rtk_tx_desc) rtk_tx_free; | |
208 | SIMPLEQ_HEAD(, rtk_tx_desc) rtk_tx_dirty; | 209 | SIMPLEQ_HEAD(, rtk_tx_desc) rtk_tx_dirty; | |
209 | 210 |