Home | History | Annotate | Download | only in ic
History log of /src/sys/dev/ic/rtl81x9reg.h
RevisionDateAuthorComments
 1.55  12-Aug-2024  christos PR/58588: Christos Zoulas: Avoid crashes when exiting promiscuous mode (^C
tcpdump) by disabling RX in re_stop. Also add some earlyoff stuff while here.
From FreeBSD.
 1.54  21-Sep-2020  msaitoh branches: 1.54.26;
- Print chip revision. From OpenBSD.
- Rename RTK_HWREV_8168_SPIN[123] to RTK_HWREV_8168'B'_SPIN[123].
Same as other *BSDs.
- Rename RTK_HWREV_8168G_SPIN4 to RTK_HWREV_8411B. Same as other *BSDs.
- Add definition of RTK_HWREV_8169_8110SCE.
 1.53  13-Mar-2020  thorpej Use BUS_ADDR_{LO,HI}32().
 1.52  17-Dec-2019  msaitoh Improve some chip revisions support:

- Add 8168FP, 8411, 8168G, 8401E, 8105E, 8105E_SPIN1, 8106E and 8402 from
{Free,Open}BSD.
- Renumber RTK_HWREV_8103E from 0x24C00000 to 0x34c00000. 0x24C00000 is newly
used as RTK_HWREV_8102EL_SPIN1. Same as {Free,Open}BSD.
 1.51  15-Nov-2019  msaitoh Sort RTK_HWREV_* by value.
 1.50  05-Apr-2019  uwe branches: 1.50.4;
Fix indentation for RTK_CFG2_BUSFREQ to line up with the rest.
 1.49  19-Apr-2017  jmcneill branches: 1.49.12;
Fix value for RE_TDESC_CMD_LGSEND_V6 (currently unused)
 1.48  19-Apr-2017  jmcneill Performance improvements for PCIe and 8168 based devices:
- When using the countdown timer for interrupt moderation on PCIe devices,
use a timer rate value based on a 125MHz PCIe reference clock instead of
33 MHz.
- For 8168 based devices, ditch the countdown timer and instead use the
(undocumented) hardware interrupt moderation feature.
- Support TSOv4 on 8168D and later devices.
 1.47  28-Aug-2015  nonaka branches: 1.47.2; 1.47.4;
Add support for Realtek RTL8168H/8111H variant.
 1.46  10-Oct-2014  christos branches: 1.46.2;
PR/49259: J. Lorec: Add support for Realtek 8111G chipset into re(4)
 1.45  13-Dec-2013  jakllsch Put previous (RTK_HWREV_8168F) in numeric sort order like its neighbors.
 1.44  06-Apr-2013  khorben branches: 1.44.4;
Added support for the Realtek 8168F variant in re(4).

From FreeBSD; not tested on real hardware unfortunately. The manual page was adjusted as well.

No objection from current-users@, "commit it" gdt@
 1.43  02-Mar-2012  nonaka branches: 1.43.2;
Added RTL8168E/8111E-VL support.
 1.42  22-Nov-2011  garbled branches: 1.42.2; 1.42.4;
Add support to recognize the 8168E model of this chip. Taken from FreeBSD
 1.41  09-Apr-2010  nonaka branches: 1.41.8;
Added 8110SBL support.
 1.40  05-Sep-2009  tsutsui branches: 1.40.2; 1.40.4;
Remove unnecessary whitespace.
 1.39  11-May-2009  tsutsui - rename RTK_HWREV_8102EL_SPIN2 -> RTK_HWREV_8103E
- add a HWREV value for 8168DP
Per Realtek's Linux drivers.
 1.38  29-Apr-2009  tsutsui Pull some changes for newer chips from FreeBSD:
- pull MACSTAT and CMDSTOP quirks for 8168/8111 chips
- always set CPLUSCMD_PCI_MRW on reset
- set VLANSTRIP and RXCSUM_ENB bits on CPLUS register per if_capenable

Tested on 8111C and 8111D by several users, and
no bad side effect on my old 8169S.
 1.37  13-Apr-2009  tsutsui Add HWREV of RTL8102EL variant. From FUKAUMI Naoki.
 1.36  13-Apr-2009  tsutsui Add HWREV values of RTL8168CP and RTL8168D. From FreeBSD.

XXX: needs more quirk handling after wakeup for newer chips.
 1.35  27-Mar-2009  tsutsui Check a correct bit for ip4csum-rx. Reported privately on PR kern/40955.
 1.34  21-Mar-2009  tsutsui Add hardware checksum support for newer PCIe 8168/8111/8102 chips,
per device info taken from FreeBSD driver. Tested by snj@ on 8111C.

Should closes PR kern/40955.

Note on old 8169 chips IP hw csum must be enabled to use TCP/UDP hw csums,
but I'm not sure if these newer chips still have the same restriction.
 1.33  08-Dec-2008  alc branches: 1.33.2;
Add support for a 8168C/8111C revision

- also disable jumbo frame on this adapter following the FreeBSD driver
- merge redundant call to aprint_error_dev
 1.32  23-Aug-2008  tnn branches: 1.32.2; 1.32.4;
Add support for the Realtek 8102E/8102EL PCIe 10/100 Ethernet devices.
From FreeBSD.
 1.31  06-May-2008  tsutsui branches: 1.31.2; 1.31.6;
- use RTK_IDR[0-5] registers to get MAC address on RTL8168C
- change sc_rev numbers to match quirk numbers used in Realtek's driver
- tweak some register definitions
Taken from Realtek's FreeBSD driver.

Untested yet on 8168C, but no bad sideeffect on older chips.
 1.30  05-Apr-2008  tsutsui branches: 1.30.2; 1.30.4;
Add some register definitions for RTL8168C.
 1.29  06-Feb-2008  dyoung branches: 1.29.6;
Make some RE_* constants aliases for their generic ethernet
counterparts, whose values are the same.
 1.28  04-Feb-2008  tsutsui FreeBSD says "16 bits" comment about RTK_GTXSTART was incorrect.
Use CSR_WRITE_1() for it. (though the previous code also worked)
 1.27  21-Mar-2007  tsutsui branches: 1.27.10; 1.27.16;
Cleanup handling of quikrs on each RealTek chip:
- replace rtk_type member in rtk_softc which has chip types
with new rtk_quirk that represents quirks on each chip:
- RTKQ_8129 doesn't have internal MII (used in rtk(4))
- RTKQ_8139CPLUS has different register layout (for re(4))
- RTKQ_8169NONS (original 8169) requires some settings on init
- RTKQ_PCIE requires different settings in setmulti
so that we don't have to check each hwrev values or types everywhere
and newer variants will also work without changes if they don't
have other quirks
(sc_rev is unchenged for now for reference to the Realtek's driver)
- don't check hwrev register in re_pci_match() but check
only PCI_VENDER(), PCI_PRODUCT() and PCI_REVISION()
so that we no longer have to map pci space there
- add a new HWREV value for another 8168 variant
- try to map PCI mem space more properly
- remove (probably unneeded) ifp->if_baudrate initialization

Tested on a newer 8168 variant by Dennis den Brok on tech-kern,
and also tested on 8139 and 8169C on macppc, and 8139C+ on landisk
by me.
 1.26  04-Feb-2007  tsutsui branches: 1.26.2; 1.26.6; 1.26.8; 1.26.10;
Add another 8100E HWREV number. From Realtek driver and Plan9 driver.
 1.25  24-Nov-2006  tsutsui branches: 1.25.2;
Change RXFIFO, RXDMA and TXDMA configrations to values taken from
the Reaktek's driver, which are also used in FreeBSD.
Fixes RX FIFO overrun errors on my Duron 1300MHz PC.
(Note the configuration values for rtk(4) are not changed)

Also add some debug printf's in RX error case (disabled by default).
 1.24  18-Nov-2006  tsutsui - sync HWREV definitions with FreeBSD
- recognize 8169SC/8100E/8101E (untested, but won't hurt working devices)
XXX: 8100E/8101E don't support 1000M; need some flag to set if_baudrate
 1.23  17-Nov-2006  tsutsui - add some more register definitions from Realtek driver
- sort
 1.22  05-Nov-2006  tsutsui Rename prefixes of re(4) specific macro and structure members
from RTK_ or rtk_ to RE_ or re_ for maintainability of these sources.
Eventually we should split these files (and struct rtk_softc) into
three elements, rtk(4) specific one, re(4) specific one, and a common
(register definitions, eeprom and multicast functions etc) part.

While here, add a couple of comments around weird definitions.
 1.21  05-Nov-2006  tsutsui - make TX threshold macro more generic
- no need to bother to initialize sc_txthresh in rtk_attach()
since it's done in rtk_init()
 1.20  03-Nov-2006  tsutsui Minor cleanups:
- move some driver specific definitions from rtl81x9reg.h to rtl81x9var.h
- move several macro where related structures are declared
- remove unused macro
- fix some comments
- unwrap some lines
 1.19  03-Nov-2006  tsutsui Use #define<space>, which seems consistent in these files.
 1.18  28-Oct-2006  christos PR/34933: Sami Kantoluoto: RealTek 8168B found from Asus P5B motherboard
is not recognized
 1.17  20-Oct-2006  tsutsui u_intNN_t -> uintNN_t
 1.16  20-Oct-2006  tsutsui - call bus_dmamap_sync(9) against DMA descriptors more properly
- make DMA descripter members volatile
Now re(4) works on sgimips O2.

XXX: Still re(4) sometimes stalls on NFS load on sgimips,
XXX: but I'm not sure it's sgimips specific or not.
 1.15  18-Jun-2006  christos branches: 1.15.4; 1.15.6;
PR/33761: dieter roelants: NetBSD doesn't recognize a RealTek 8168B nic
 1.14  25-Dec-2005  rpaulo branches: 1.14.4; 1.14.8; 1.14.14; 1.14.16;
PR/32386: Dawid Szymanski (arhea). Add support for the 8169SB chipset.
 1.13  11-Dec-2005  christos merge ktrace-lwp.
 1.12  23-Mar-2005  yamt branches: 1.12.2;
- restructure tx descriptor handling code to decouple
number of tx descriptors, number of rx descriptors, and number of mbufs.
- bump number of tx descriptors for rtl8169. 64 doesn't seem to be sufficient
when doing TSO.
 1.11  12-Mar-2005  yamt branches: 1.11.2;
re(4) driver:
- TSO support.
- fix some error handling.
- remove mysterious RTK_NTXSEGS and use more appropriate values
for bus_dmamap_create.
- if we need more than all of our tx descriptors in order to transmit a packet,
just drop it rather than retrying infinitely.
 1.10  27-Feb-2005  perry nuke trailing whitespace
 1.9  09-Jan-2005  kanaoka branches: 1.9.2; 1.9.4;
sys/dev/ic/rtl8169.c:
- re_attach(): Use bus_dma* directly instead of calling re_alloc().
- re_attach(): Free bus_dma* resources if attach fails.
- re_detach(): Free bus_dma* resources.
- re_newbuf(): Remove unnecessary error check.

sys/dev/ic/rtl81x9reg.h:
- Define RTK_NTXSEGS.

sys/dev/ic/rtl81x9var.h:
- Add new members to struct rtk_list_data for bus_dma*.
 1.8  02-Nov-2003  wiz Fix some typos. From Tom Cosgrove via jmc@openbsd.
 1.7  25-Oct-2003  fvdl Add definitions for 8139C+ and 8169 chips. Not used yet. From FreeBSD.
 1.6  31-Jan-2001  thorpej branches: 1.6.24;
Use a 16K receive buffer on the SEGA Dreamcast (XXX should be
done differently than it is).
 1.5  19-May-2000  tsutsui branches: 1.5.6;
- Change RL_* -> RTK_*
- Free bus_dma resources if attach fails
- Add detach and power management code

Patch from Masanori Kanaoka <kanaoka@ann.hi-ho.ne.jp> in kern/10156.
 1.4  30-Apr-2000  tsutsui Modify EEPROM read functions and handle also 9356 EEPROM.
Fixes kern/9861.
 1.3  26-Apr-2000  tsutsui - Allocate mbuf dynamically on Tx and use bus_dmamap_load_mbuf(9).
- Call bus_dmamap_sync(9) as appropriate.
- Leave only register declarations in rtl81x9reg.h and
split other stuff into rtl81x9var.h.

bus_dma(9) code mostly taken from thorpej's if_rtp.c.
 1.2  24-Apr-2000  tsutsui Merge changes of sys/pci/if_rl.c rev. 1.8->1.10. (from kern/9870)
Also remove unused pbase, vbase and PCI_CAP_PWRMGMT declarations.
 1.1  10-Apr-2000  haya Incorporate the changes of RL81x9 driver provided by M. Kanaoka
<kanaoka@ann.hi-ho.ne.jp>. He separated the driver into IC specific
portion and bus attachment portion and added cardbus attachent.
 1.5.6.3  11-Feb-2001  bouyer Sync with HEAD.
 1.5.6.2  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.5.6.1  19-May-2000  bouyer file rtl81x9reg.h was added on branch thorpej_scsipi on 2000-11-20 11:40:53 +0000
 1.6.24.6  01-Apr-2005  skrll Sync with HEAD.
 1.6.24.5  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.6.24.4  17-Jan-2005  skrll Sync with HEAD.
 1.6.24.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.6.24.2  18-Sep-2004  skrll Sync with HEAD.
 1.6.24.1  03-Aug-2004  skrll Sync with HEAD
 1.9.4.2  26-Mar-2005  yamt sync with head.
 1.9.4.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.9.2.1  29-Apr-2005  kent sync with -current
 1.11.2.4  04-Oct-2007  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1852):
sys/dev/ic/rtl81x9var.h: revision 1.39
sys/dev/cardbus/if_re_cardbus.c: revision 1.13
sys/dev/pci/if_re_pci.c: revision 1.27 via patch
sys/dev/pci/if_rtk_pci.c: revision 1.32
sys/dev/cardbus/if_rtk_cardbus.c: revision 1.32
sys/dev/ic/rtl8169.c: revision 1.84, 1.85
sys/dev/ic/rtl81x9reg.h: revision 1.27
sys/dev/ic/rtl81x9.c: revision 1.72
Cleanup handling of quikrs on each RealTek chip:
Pull a fix for PCIe variants from FreeBSD
 1.11.2.3  03-Mar-2007  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1673):
distrib/sets/lists/man/mi 1.844, 1.871
share/man/man4/Makefile 1.372, 1.379 via patch
share/man/man4/re.4 1.8, 1.9, 1.11, 1.12
share/man/man4/rgephy.4 1.1
share/man/man4/rlphy.4 1.1, 1.2
sys/arch/amd64/conf/GENERIC 1.79, 1.89
sys/arch/amd64/conf/INSTALL 1.45, 1.49
sys/arch/i386/conf/GENERIC 1.717, 1.747
sys/arch/i386/conf/GENERIC_LAPTOP 1.164
sys/arch/i386/conf/INSTALL 1.277, 1.283
sys/arch/i386/conf/INSTALL_LAPTOP 1.96, 1.98
sys/arch/i386/conf/XEN2_DOM0 1.22 via patch
sys/arch/macppc/conf/GENERIC 1.220, 1.246
sys/arch/macppc/conf/INSTALL 1.96, 1.100
sys/dev/cardbus/if_re_cardbus.c 1.10
sys/dev/cardbus/if_rtk_cardbus.c 1.29-1.31
sys/dev/ic/rtl8169.c 1.14, 1.20, 1.24, 1.25, 1.28-1.61, 1.63, 1.64-1.81 via patch
sys/dev/ic/rtl81x9.c 1.52, 1.54-1.63, 1.65, 1.67-1.70
sys/dev/ic/rtl81x9reg.h 1.15-1.26
sys/dev/ic/rtl81x9var.h 1.19, 1.21-1.37
sys/dev/mii/files.mii 1.38
sys/dev/mii/miidevs 1.62, 1.64
sys/dev/mii/rgephy.c 1.10, 1.13-1.16
sys/dev/mii/rlphy.c 1.1, 1.6, 1.7, 1.11 via patch
sys/dev/pci/if_re_pci.c 1.13, 1.15-1.17, 1.19-1.23
sys/dev/pci/if_rtk_pci.c 1.25, 1.28, 1.29, 1.31
sys/dev/pci/pcidevs 1.851, 1.852

on re(4):
- improve stability (I believe ;-)
- add a workaround for hardware ip4csum-tx bug
- support newer chips (8169SB/SC, PCIe based 8168 etc.)
- fix 8139C+ support
- enable hardware VLAN
- misc bus_dma(9) fix (which makes re(4) work on mips ports)

on rtk(4):
- fix kern/31348
- fix possible panic on dreamcast
 1.11.2.2  29-Dec-2005  riz Pull up following revision(s) (requested by rpaulo in ticket #1070):
sys/dev/pci/if_re_pci.c: revision 1.12
sys/dev/ic/rtl81x9reg.h: revision 1.14
PR/32386: Dawid Szymanski (arhea). Add support for the 8169SB chipset.
From FreeBSD.
 1.11.2.1  04-Apr-2005  tron Pull up revision 1.12 (requested by yamt in ticket #91):
- restructure tx descriptor handling code to decouple
number of tx descriptors, number of rx descriptors, and number of mbufs.
- bump number of tx descriptors for rtl8169. 64 doesn't seem to be sufficient
when doing TSO.
 1.12.2.5  11-Feb-2008  yamt sync with head.
 1.12.2.4  03-Sep-2007  yamt sync with head.
 1.12.2.3  26-Feb-2007  yamt sync with head.
 1.12.2.2  30-Dec-2006  yamt sync with head.
 1.12.2.1  21-Jun-2006  yamt sync with head.
 1.14.16.1  13-Jul-2006  gdamore Merge from HEAD.
 1.14.14.1  22-Jun-2006  chap Complete a sync sys/ with head.
 1.14.8.1  26-Jun-2006  yamt sync with head.
 1.14.4.1  09-Sep-2006  rpaulo sync with head
 1.15.6.2  10-Dec-2006  yamt sync with head.
 1.15.6.1  22-Oct-2006  yamt sync with head
 1.15.4.3  09-Feb-2007  ad Sync with HEAD.
 1.15.4.2  12-Jan-2007  ad Sync with head.
 1.15.4.1  18-Nov-2006  ad Sync with head.
 1.25.2.6  18-Aug-2009  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1339):
sys/dev/ic/rtl8169.c: revisions 1.107, 1.114, 1.115, 1.116,
1.117 (via patch), 1.118 (via patch),
1.119, 1.121
sys/dev/ic/rtl81x9reg.h: revisions 1.36, 1.37, 1.38, 1.39
sys/dev/ic/rtl81x9var.h: revision 1.47
sys/dev/mii/rgephy.c: revisions 1.16, 1.18, 1.19, 1.27 (via patch)
sys/dev/mii/rgephyreg.h: revision 1.3
sys/dev/pci/if_re_pci.c: revision 1.36
- add support for RTL8211B(L) to rgephy(4)
- add a wakeup instruction for rgephy(4) on newer re(4) chips
- detect RTL8169CP, RTL8168D/8111D, and RTL8103E variants
- fix rgephy(4) problem on RTL8111D reported on current-users:
http://mail-index.NetBSD.org/current-users/2009/04/12/msg008977.html
http://mail-index.NetBSD.org/current-users/2009/04/19/msg009096.html
- pull more quirk handling from FreeBSD
- fix RX hwcksum for DESCV2 chips for PR kern/40605
- remove "B" suffix from RTL8168 device names in attach message
 1.25.2.5  01-Apr-2009  bouyer Fix processing or ticket pullup-4 #1297; previous didn't include revisions
1.34 and 1.35 as requested and announced in commit messages and
CHANGES-4.1 entry
 1.25.2.4  31-Mar-2009  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1297):
src/sys/dev/ic/rtl8169.c 1.104 (via patch), 1.105 (via patch),
1.106 (via patch), 1.108, 1.109 (via patch),
1.110, 1.111, 1.112, 1.113
sys/dev/ic/rtl81x9reg.h: revision 1.30 - 1.35
sys/dev/ic/rtl81x9var.h: revision 1.42 - 1.45
sys/dev/pci/if_re_pci.c: revision 1.35
Add support for 8168C/8111C/8102E chips.
Fix MAC reset issue (PR kern/41009)
Add/fix HW checksum support (PR kern/40955)
 1.25.2.3  24-Mar-2008  bouyer Pull up following revision(s) (requested by tsutsui in ticket #1105):
sys/dev/ic/rtl8169.c: revisions 1.94, 1.95, 1.97, 1.98
sys/dev/ic/rtl81x9reg.h: revision 1.28
No need to preserve RE_NTXDESC_RSVD on re_start().
FreeBSD says "16 bits" comment about RTK_GTXSTART was incorrect.
Use CSR_WRITE_1() for it. (though the previous code also worked)
Don't fetch DMA descriptor after BUS_DMASYNC_PREREAD op.
It looks vlan tag info must appear not only in the first descriptor
but in all descriptors of a multi-descriptor transmission attempt on re(4).
Problem was reported and fix was confirmed by Chris Brookes on tech-net.
Should also close PR kern/37959.
 1.25.2.2  16-May-2007  jdc Pull up revision 1.27 (requested by tsutsui in ticket #640).

Cleanup handling of quikrs on each RealTek chip:
- replace rtk_type member in rtk_softc which has chip types
with new rtk_quirk that represents quirks on each chip:
- RTKQ_8129 doesn't have internal MII (used in rtk(4))
- RTKQ_8139CPLUS has different register layout (for re(4))
- RTKQ_8169NONS (original 8169) requires some settings on init
- RTKQ_PCIE requires different settings in setmulti
so that we don't have to check each hwrev values or types everywhere
and newer variants will also work without changes if they don't
have other quirks
(sc_rev is unchenged for now for reference to the Realtek's driver)
- don't check hwrev register in re_pci_match() but check
only PCI_VENDER(), PCI_PRODUCT() and PCI_REVISION()
so that we no longer have to map pci space there
- add a new HWREV value for another 8168 variant
- try to map PCI mem space more properly
- remove (probably unneeded) ifp->if_baudrate initialization

Tested on a newer 8168 variant by Dennis den Brok on tech-kern,
and also tested on 8139 and 8169C on macppc, and 8139C+ on landisk
by me.
 1.25.2.1  10-Feb-2007  tron branches: 1.25.2.1.2;
Pull up following revision(s) (requested by tsutsui in ticket #437):
sys/dev/ic/rtl81x9reg.h: revision 1.26
Add another 8100E HWREV number. From Realtek driver and Plan9 driver.
 1.25.2.1.2.2  03-Jun-2008  skrll Sync with netbsd-4.
 1.25.2.1.2.1  03-Jun-2007  wrstuden Catch up with now-somewhat-dated netbsd-4. These changes took longer
than expected for me to actually get around to merging.
 1.26.10.1  29-Mar-2007  reinoud Pullup to -current
 1.26.8.1  11-Jul-2007  mjf Sync with head.
 1.26.6.1  10-Apr-2007  ad Sync with head.
 1.26.2.1  24-Mar-2007  yamt sync with head.
 1.27.16.1  18-Feb-2008  mjf Sync with HEAD.
 1.27.10.1  23-Mar-2008  matt sync with HEAD
 1.29.6.3  17-Jan-2009  mjf Sync with HEAD.
 1.29.6.2  28-Sep-2008  mjf Sync with HEAD.
 1.29.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.30.4.5  11-Aug-2010  yamt sync with head.
 1.30.4.4  16-Sep-2009  yamt sync with head
 1.30.4.3  16-May-2009  yamt sync with head
 1.30.4.2  04-May-2009  yamt sync with head.
 1.30.4.1  16-May-2008  yamt sync with head.
 1.30.2.1  18-May-2008  yamt sync with head.
 1.31.6.2  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.31.6.1  19-Oct-2008  haad Sync with HEAD.
 1.31.2.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.32.4.5  25-Jan-2012  riz 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 FreeBSD
 1.32.4.4  19-Jun-2009  snj Pull up following revision(s) (requested by tsutsui in ticket #821):
sys/dev/ic/rtl8169.c: revisions 1.107, 1.114-1.119, 1.121
sys/dev/ic/rtl81x9reg.h: revisions 1.36-1.39
sys/dev/ic/rtl81x9var.h: revision 1.47
sys/dev/mii/rgephy.c: revision 1.27 via patch
sys/dev/pci/if_re_pci.c: revision 1.36
remove extra semicolons.
--
Add HWREV values of RTL8168CP and RTL8168D. From FreeBSD.

XXX: needs more quirk handling after wakeup for newer chips.
--
Add HWREV of RTL8102EL variant. From FUKAUMI Naoki.
--
Assume an unknown HWREV chip has the same features with the latest one.
--
Remove suffix "B" from rtk_name of PCI_PRODUCT_REALTEK_RT8168 devices.
All 8168/8111 variants (8168/8168B/8168C/8168CP/8168D/8111B/8111C/8111CP)
have the same PCI device ID.
--
Remove magic reset sequence except wakeup for rev 2 chips which breaks 8111D.
Problem reported and fix confirmed by Thomas Bieg on current-users.

Also tested on 8111C (no bad side effect) by several users privately.
--
Pull some changes for newer chips from FreeBSD:
- pull MACSTAT and CMDSTOP quirks for 8168/8111 chips
- always set CPLUSCMD_PCI_MRW on reset
- set VLANSTRIP and RXCSUM_ENB bits on CPLUS register per if_capenable

Tested on 8111C and 8111D by several users, and
no bad side effect on my old 8169S.
--
Remove unused sc_rev settings (all quirks are handled by sc_quirk)
and merge HWREV cases which have the same quirks.
--
- rename RTK_HWREV_8102EL_SPIN2 -> RTK_HWREV_8103E
- add a HWREV value for 8168DP
Per Realtek's Linux drivers.
--
Two fixes for RX hwcsum on DESCV2 chips:
* On checking TCPv4/UDPv4 RX checksum on DESCV2 chips, also check
RE_RDESC_VLANCTL_IPV4 bit because those DESCV2 chips may also recognize
IPv6 packets and set RE_PROTOID_TCPIP or RE_PROTOID_UDPIP bits for
TCPv6/UDPv6 packets. This may fix PR kern/40605.
* According to Realtek's Linux driver, DESCV2 chips don't set RE_PROTOID_IP
for non-TCP/UDP IP packets (set only RE_RDESC_VLANCTL_IPV[46]) so
remove PROTOID check for IPv4 RX cheksum on DESCV2 chips.
 1.32.4.3  01-May-2009  snj Pull up following revision(s) (requested by tsutsui in ticket #597):
sys/dev/ic/rtl8169.c: revision 1.112
sys/dev/ic/rtl81x9reg.h: revision 1.35
Check a correct bit for ip4csum-rx. Reported privately on PR kern/40955.
 1.32.4.2  01-May-2009  snj Pull up following revision(s) (requested by tsutsui in ticket #597):
sys/dev/ic/rtl8169.c: revision 1.109
sys/dev/ic/rtl81x9reg.h: revision 1.34
sys/dev/ic/rtl81x9var.h: revision 1.43
Add hardware checksum support for newer PCIe 8168/8111/8102 chips,
per device info taken from FreeBSD driver. Tested by snj@ on 8111C.
Should closes PR kern/40955.
Note on old 8169 chips IP hw csum must be enabled to use TCP/UDP hw csums,
but I'm not sure if these newer chips still have the same restriction.
 1.32.4.1  26-Mar-2009  snj branches: 1.32.4.1.4;
Pull up following revision(s) (requested by tsutsui in ticket #597):
sys/dev/ic/rtl8169.c: revision 1.106
sys/dev/ic/rtl81x9reg.h: revision 1.33
Add support for a 8168C/8111C revision
- also disable jumbo frame on this adapter following the FreeBSD driver
- merge redundant call to aprint_error_dev
 1.32.4.1.4.1  21-Apr-2010  matt sync to netbsd-5
 1.32.2.2  28-Apr-2009  skrll Sync with HEAD.
 1.32.2.1  19-Jan-2009  skrll Sync with HEAD.
 1.33.2.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.40.4.1  30-May-2010  rmind sync with head
 1.40.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.41.8.2  22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.41.8.1  17-Apr-2012  yamt sync with head
 1.42.4.2  29-Jul-2013  msaitoh Pull up following revision(s) (requested by khorben in ticket #913):
sys/dev/ic/rtl8169.c: revision 1.137
sys/dev/ic/rtl81x9reg.h: revision 1.44
share/man/man4/re.4: revision 1.14
Added support for the Realtek 8168F variant in re(4).
From FreeBSD; not tested on real hardware unfortunately. The manual page
was adjusted as well.
No objection from current-users@, "commit it" gdt@
 1.42.4.1  05-Mar-2012  sborrill Pull up the following revisions(s) (requested by nonaka in ticket #83):
sys/dev/ic/rtl8169.c: revision 1.135
sys/dev/ic/rtl81x9reg.h: revision 1.43

Add RTL8168E/8111E-VL support.
 1.42.2.3  06-Mar-2012  mrg sync to -current
 1.42.2.2  06-Mar-2012  mrg sync to -current
 1.42.2.1  04-Mar-2012  mrg sync to latest -current.
 1.43.2.3  03-Dec-2017  jdolecek update from HEAD
 1.43.2.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.43.2.1  23-Jun-2013  tls resync from head
 1.44.4.1  18-May-2014  rmind sync with head
 1.46.2.2  28-Aug-2017  skrll Sync with HEAD
 1.46.2.1  22-Sep-2015  skrll Sync with HEAD
 1.47.4.1  21-Apr-2017  bouyer Sync with HEAD
 1.47.2.1  26-Apr-2017  pgoyette Sync with HEAD
 1.49.12.2  13-Apr-2020  martin Mostly merge changes from HEAD upto 20200411
 1.49.12.1  10-Jun-2019  christos Sync with HEAD
 1.50.4.2  04-Aug-2023  martin Pull up following revision(s) (requested by jakllsch in ticket #1705):

sys/dev/ic/rtl81x9var.h: revision 1.58
sys/dev/ic/rtl81x9reg.h: revision 1.54
sys/dev/ic/rtl8169.c: revision 1.167
sys/dev/ic/rtl8169.c: revision 1.168

re(4): misc chip revision support changes
* remove impossible-to-match chip revision cases
* bring support for modern chips in line with FreeBSD and OpenBSD
* adds support for RTL8168GU

Addresses PR kern/56312.

- Print chip revision. From OpenBSD.
- Rename RTK_HWREV_8168_SPIN[123] to RTK_HWREV_8168'B'_SPIN[123].
Same as other *BSDs.
- Rename RTK_HWREV_8168G_SPIN4 to RTK_HWREV_8411B. Same as other *BSDs.
- Add definition of RTK_HWREV_8169_8110SCE.
 1.50.4.1  28-Jan-2020  martin Pull up following revision(s) (requested by msaitoh in ticket #667):

sys/dev/ic/rtl81x9var.h: revision 1.57
sys/dev/ic/rtl81x9.c: revision 1.107
sys/dev/ic/rtl81x9reg.h: revision 1.51
sys/dev/ic/rtl8169.c: revision 1.160
sys/dev/ic/rtl81x9reg.h: revision 1.52
sys/dev/ic/rtl8169.c: revision 1.161

Use unsigned in rtk_setmulti() to avoid undefined behavior. Found bk kUBSan.
8168H model didn't link up well. some models seems to require to enable TX/RX after configuration.
RTKQ_TXRXEN_LATER quirk flag added. it may be able to unify with RTKQ_RXDV_GATED flag?
Sort RTK_HWREV_* by value.

Improve some chip revisions support:
- Add 8168FP, 8411, 8168G, 8401E, 8105E, 8105E_SPIN1, 8106E and 8402 from
{Free,Open}BSD.
- Renumber RTK_HWREV_8103E from 0x24C00000 to 0x34c00000. 0x24C00000 is newly
used as RTK_HWREV_8102EL_SPIN1. Same as {Free,Open}BSD.
 1.54.26.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed