head	1.4;
access;
symbols
	RELENG_8_4:1.4.0.2
	RELENG_9_1_0_RELEASE:1.3.16.1.4.2
	RELENG_9_1:1.3.16.1.0.4
	RELENG_9_1_BP:1.3.16.1
	RELENG_8_3_0_RELEASE:1.3.10.1.8.1
	RELENG_8_3:1.3.10.1.0.8
	RELENG_8_3_BP:1.3.10.1
	RELENG_9_0_0_RELEASE:1.3.16.1.2.1
	RELENG_9_0:1.3.16.1.0.2
	RELENG_9_0_BP:1.3.16.1
	RELENG_9:1.3.0.16
	RELENG_9_BP:1.3
	RELENG_7_4_0_RELEASE:1.3.14.1
	RELENG_8_2_0_RELEASE:1.3.10.1.6.1
	RELENG_7_4:1.3.0.14
	RELENG_7_4_BP:1.3
	RELENG_8_2:1.3.10.1.0.6
	RELENG_8_2_BP:1.3.10.1
	RELENG_8_1_0_RELEASE:1.3.10.1.4.1
	RELENG_8_1:1.3.10.1.0.4
	RELENG_8_1_BP:1.3.10.1
	RELENG_7_3_0_RELEASE:1.3.12.1
	RELENG_7_3:1.3.0.12
	RELENG_7_3_BP:1.3
	RELENG_8_0_0_RELEASE:1.3.10.1.2.1
	RELENG_8_0:1.3.10.1.0.2
	RELENG_8_0_BP:1.3.10.1
	RELENG_8:1.3.0.10
	RELENG_8_BP:1.3
	RELENG_7_2_0_RELEASE:1.3.8.1
	RELENG_7_2:1.3.0.8
	RELENG_7_2_BP:1.3
	RELENG_7_1_0_RELEASE:1.3.6.1
	RELENG_6_4_0_RELEASE:1.2.22.1
	RELENG_7_1:1.3.0.6
	RELENG_7_1_BP:1.3
	RELENG_6_4:1.2.0.22
	RELENG_6_4_BP:1.2
	RELENG_7_0_0_RELEASE:1.3
	RELENG_6_3_0_RELEASE:1.2
	RELENG_7_0:1.3.0.4
	RELENG_7_0_BP:1.3
	RELENG_6_3:1.2.0.20
	RELENG_6_3_BP:1.2
	RELENG_7:1.3.0.2
	RELENG_7_BP:1.3
	RELENG_6_2_0_RELEASE:1.2
	RELENG_6_2:1.2.0.18
	RELENG_6_2_BP:1.2
	RELENG_5_5_0_RELEASE:1.2
	RELENG_5_5:1.2.0.16
	RELENG_5_5_BP:1.2
	RELENG_6_1_0_RELEASE:1.2
	RELENG_6_1:1.2.0.14
	RELENG_6_1_BP:1.2
	RELENG_6_0_0_RELEASE:1.2
	RELENG_6_0:1.2.0.12
	RELENG_6_0_BP:1.2
	RELENG_6:1.2.0.10
	RELENG_6_BP:1.2
	RELENG_5_4_0_RELEASE:1.2
	RELENG_5_4:1.2.0.8
	RELENG_5_4_BP:1.2
	RELENG_5_3_0_RELEASE:1.2
	RELENG_5_3:1.2.0.6
	RELENG_5_3_BP:1.2
	RELENG_5:1.2.0.4
	RELENG_5_BP:1.2
	RELENG_5_2_1_RELEASE:1.2
	RELENG_5_2_0_RELEASE:1.2
	RELENG_5_2:1.2.0.2
	RELENG_5_2_BP:1.2;
locks; strict;
comment	@# @;


1.4
date	2012.11.17.01.52.59;	author svnexp;	state Exp;
branches
	1.4.2.1;
next	1.3;

1.3
date	2005.09.27.18.10.37;	author mlaier;	state Exp;
branches
	1.3.2.1
	1.3.6.1
	1.3.8.1
	1.3.10.1
	1.3.12.1
	1.3.14.1
	1.3.16.1;
next	1.2;

1.2
date	2003.09.08.03.24.29;	author wpaul;	state Exp;
branches
	1.2.10.1
	1.2.22.1;
next	1.1;

1.1
date	2003.09.08.02.11.20;	author wpaul;	state Exp;
branches;
next	;

1.4.2.1
date	2012.11.17.01.52.59;	author svnexp;	state dead;
branches;
next	1.4.2.2;

1.4.2.2
date	2013.03.28.13.05.23;	author svnexp;	state Exp;
branches;
next	;

1.3.2.1
date	2012.11.17.08.06.55;	author svnexp;	state Exp;
branches;
next	;

1.3.6.1
date	2008.11.25.02.59.29;	author kensmith;	state Exp;
branches;
next	;

1.3.8.1
date	2009.04.15.03.14.26;	author kensmith;	state Exp;
branches;
next	;

1.3.10.1
date	2009.08.03.08.13.06;	author kensmith;	state Exp;
branches
	1.3.10.1.2.1
	1.3.10.1.4.1
	1.3.10.1.6.1
	1.3.10.1.8.1;
next	1.3.10.2;

1.3.10.2
date	2012.11.17.10.36.58;	author svnexp;	state Exp;
branches;
next	;

1.3.10.1.2.1
date	2009.10.25.01.10.29;	author kensmith;	state Exp;
branches;
next	;

1.3.10.1.4.1
date	2010.06.14.02.09.06;	author kensmith;	state Exp;
branches;
next	;

1.3.10.1.6.1
date	2010.12.21.17.09.25;	author kensmith;	state Exp;
branches;
next	;

1.3.10.1.8.1
date	2012.03.03.06.15.13;	author kensmith;	state Exp;
branches;
next	1.3.10.1.8.2;

1.3.10.1.8.2
date	2012.11.17.08.25.33;	author svnexp;	state Exp;
branches;
next	;

1.3.12.1
date	2010.02.10.00.26.20;	author kensmith;	state Exp;
branches;
next	;

1.3.14.1
date	2010.12.21.17.10.29;	author kensmith;	state Exp;
branches;
next	1.3.14.2;

1.3.14.2
date	2012.11.17.08.17.27;	author svnexp;	state Exp;
branches;
next	;

1.3.16.1
date	2011.09.23.00.51.37;	author kensmith;	state Exp;
branches
	1.3.16.1.2.1
	1.3.16.1.4.1;
next	1.3.16.2;

1.3.16.2
date	2012.11.17.11.37.18;	author svnexp;	state Exp;
branches;
next	;

1.3.16.1.2.1
date	2011.11.11.04.20.22;	author kensmith;	state Exp;
branches;
next	1.3.16.1.2.2;

1.3.16.1.2.2
date	2012.11.17.08.37.14;	author svnexp;	state Exp;
branches;
next	;

1.3.16.1.4.1
date	2012.08.05.23.54.33;	author kensmith;	state Exp;
branches;
next	1.3.16.1.4.2;

1.3.16.1.4.2
date	2012.11.17.08.48.05;	author svnexp;	state Exp;
branches;
next	;

1.2.10.1
date	2012.11.17.07.44.24;	author svnexp;	state Exp;
branches;
next	;

1.2.22.1
date	2008.10.02.02.57.24;	author kensmith;	state Exp;
branches;
next	;


desc
@@


1.4
log
@Switching exporter and resync
@
text
@# $FreeBSD: head/sys/modules/re/Makefile 150636 2005-09-27 18:10:43Z mlaier $

.PATH: ${.CURDIR}/../../dev/re

KMOD=	if_re
SRCS=	if_re.c device_if.h bus_if.h pci_if.h
SRCS+=	miibus_if.h

.include <bsd.kmod.mk>
@


1.4.2.1
log
@file Makefile was added on branch RELENG_8_4 on 2013-03-28 13:05:23 +0000
@
text
@d1 9
@


1.4.2.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248810
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 9
# $FreeBSD: releng/8.4/sys/modules/re/Makefile 150636 2005-09-27 18:10:43Z mlaier $

.PATH: ${.CURDIR}/../../dev/re

KMOD=	if_re
SRCS=	if_re.c device_if.h bus_if.h pci_if.h
SRCS+=	miibus_if.h

.include <bsd.kmod.mk>
@


1.3
log
@Remove bridge(4) from the tree.  if_bridge(4) is a full functional
replacement and has additional features which make it superior.

Discussed on:	-arch
Reviewed by:	thompsa
X-MFC-after:	never (RELENG_6 as transition period)
@
text
@d1 1
a1 1
# $FreeBSD$
@


1.3.2.1
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: stable/7/sys/modules/re/Makefile 150636 2005-09-27 18:10:43Z mlaier $
@


1.3.16.1
log
@SVN rev 225736 on 2011-09-23 00:51:37Z by kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.3.16.2
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242902
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242902 | dteske | 2012-11-11 23:29:45 +0000 (Sun, 11 Nov 2012) | 10 lines
## SVN ##
## SVN ## Fix a regression introduced by SVN r211417 that saw the breakage of a feature
## SVN ## documented in usr.sbin/sysinstall/help/shortcuts.hlp (reproduced below):
## SVN ##
## SVN ## If /usr/sbin/sysinstall is linked to another filename, say
## SVN ## `/usr/local/bin/configPackages', then the basename will be used
## SVN ## as an implicit command name.
## SVN ##
## SVN ## Reviewed by:	adrian (co-mentor)
## SVN ## Approved by:	adrian (co-mentor)
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d1 1
a1 1
# $FreeBSD: stable/9/sys/modules/re/Makefile 150636 2005-09-27 18:10:43Z mlaier $
@


1.3.16.1.4.1
log
@SVN rev 239080 on 2012-08-05 23:54:33Z by kensmith

Copy stable/9 to releng/9.1 as part of the 9.1-RELEASE release process.

Approved by:	re (implicit)
@
text
@@


1.3.16.1.4.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/9.1/sys/modules/re/Makefile 150636 2005-09-27 18:10:43Z mlaier $
@


1.3.16.1.2.1
log
@SVN rev 227445 on 2011-11-11 04:20:22Z by kensmith

Copy stable/9 to releng/9.0 as part of the FreeBSD 9.0-RELEASE release
cycle.

Approved by:	re (implicit)
@
text
@@


1.3.16.1.2.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/9.0/sys/modules/re/Makefile 150636 2005-09-27 18:10:43Z mlaier $
@


1.3.14.1
log
@SVN rev 216618 on 2010-12-21 17:10:29Z by kensmith

Copy stable/7 to releng/7.4 in preparation for FreeBSD-7.4 release.

Approved by:	re (implicit)
@
text
@@


1.3.14.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/7.4/sys/modules/re/Makefile 150636 2005-09-27 18:10:43Z mlaier $
@


1.3.12.1
log
@SVN rev 203736 on 2010-02-10 00:26:20Z by kensmith

Copy stable/7 to releng/7.3 as part of the 7.3-RELEASE process.

Approved by:	re (implicit)
@
text
@@


1.3.10.1
log
@SVN rev 196045 on 2009-08-03 08:13:06Z by kensmith

Copy head to stable/8 as part of 8.0 Release cycle.

Approved by:	re (Implicit)
@
text
@@


1.3.10.2
log
@## SVN ##
## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/ 242909
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ## r242909 | dim | 2012-11-12 07:47:19 +0000 (Mon, 12 Nov 2012) | 20 lines
## SVN ##
## SVN ## MFC r242625:
## SVN ##
## SVN ## Remove duplicate const specifiers in many drivers (I hope I got all of
## SVN ## them, please let me know if not).  Most of these are of the form:
## SVN ##
## SVN ## static const struct bzzt_type {
## SVN ##       [...list of members...]
## SVN ## } const bzzt_devs[] = {
## SVN ##       [...list of initializers...]
## SVN ## };
## SVN ##
## SVN ## The second const is unnecessary, as arrays cannot be modified anyway,
## SVN ## and if the elements are const, the whole thing is const automatically
## SVN ## (e.g. it is placed in .rodata).
## SVN ##
## SVN ## I have verified this does not change the binary output of a full kernel
## SVN ## build (except for build timestamps embedded in the object files).
## SVN ##
## SVN ## Reviewed by:	yongari, marius
## SVN ##
## SVN ## ------------------------------------------------------------------------
## SVN ##
@
text
@d1 1
a1 1
# $FreeBSD: stable/8/sys/modules/re/Makefile 150636 2005-09-27 18:10:43Z mlaier $
@


1.3.10.1.8.1
log
@SVN rev 232438 on 2012-03-03 06:15:13Z by kensmith

Copy stable/8 to releng/8.3 as part of 8.3-RELEASE release cycle.

Approved by:	re (implicit)
@
text
@@


1.3.10.1.8.2
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: releng/8.3/sys/modules/re/Makefile 150636 2005-09-27 18:10:43Z mlaier $
@


1.3.10.1.6.1
log
@SVN rev 216617 on 2010-12-21 17:09:25Z by kensmith

Copy stable/8 to releng/8.2 in preparation for FreeBSD-8.2 release.

Approved by:	re (implicit)
@
text
@@


1.3.10.1.4.1
log
@SVN rev 209145 on 2010-06-14 02:09:06Z by kensmith

Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.

Approved by:	re (implicit)
@
text
@@


1.3.10.1.2.1
log
@SVN rev 198460 on 2009-10-25 01:10:29Z by kensmith

Copy stable/8 to releng/8.0 as part of 8.0-RELEASE release procedure.

Approved by:	re (implicit)
@
text
@@


1.3.8.1
log
@SVN rev 191087 on 2009-04-15 03:14:26Z by kensmith

Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.

Approved by:	re (implicit)
@
text
@@


1.3.6.1
log
@SVN rev 185281 on 2008-11-25 02:59:29Z by kensmith

Create releng/7.1 in preparation for moving into RC phase of 7.1 release
cycle.

Approved by:	re (implicit)
@
text
@@


1.2
log
@Fix PATH: directive in sys/modules/re/Makefile, and add the re(4) driver to
devd.conf.

Pointed out by: Larry Rosenman
@
text
@d6 1
a6 1
SRCS=	if_re.c opt_bdg.h device_if.h bus_if.h pci_if.h
@


1.2.10.1
log
@Switch importer
@
text
@d1 1
a1 1
# $FreeBSD: stable/6/sys/modules/re/Makefile 119870 2003-09-08 03:24:29Z wpaul $
@


1.2.22.1
log
@SVN rev 183531 on 2008-10-02 02:57:24Z by kensmith

Create releng/6.4 from stable/6 in preparation for 6.4-RC1.

Approved by:	re (implicit)
@
text
@@


1.1
log
@Take the support for the 8139C+/8169/8169S/8110S chips out of the
rl(4) driver and put it in a new re(4) driver. The re(4) driver shares
the if_rlreg.h file with rl(4) but is a separate module. (Ultimately
I may change this. For now, it's convenient.)

rl(4) has been modified so that it will never attach to an 8139C+
chip, leaving it to re(4) instead. Only re(4) has the PCI IDs to
match the 8169/8169S/8110S gigE chips. if_re.c contains the same
basic code that was originally bolted onto if_rl.c, with the
following updates:

- Added support for jumbo frames. Currently, there seems to be
  a limit of approximately 6200 bytes for jumbo frames on transmit.
  (This was determined via experimentation.) The 8169S/8110S chips
  apparently are limited to 7.5K frames on transmit. This may require
  some more work, though the framework to handle jumbo frames on RX
  is in place: the re_rxeof() routine will gather up frames than span
  multiple 2K clusters into a single mbuf list.

- Fixed bug in re_txeof(): if we reap some of the TX buffers,
  but there are still some pending, re-arm the timer before exiting
  re_txeof() so that another timeout interrupt will be generated, just
  in case re_start() doesn't do it for us.

- Handle the 'link state changed' interrupt

- Fix a detach bug. If re(4) is loaded as a module, and you do
  tcpdump -i re0, then you do 'kldunload if_re,' the system will
  panic after a few seconds. This happens because ether_ifdetach()
  ends up calling the BPF detach code, which notices the interface
  is in promiscuous mode and tries to switch promisc mode off while
  detaching the BPF listner. This ultimately results in a call
  to re_ioctl() (due to SIOCSIFFLAGS), which in turn calls re_init()
  to handle the IFF_PROMISC flag change. Unfortunately, calling re_init()
  here turns the chip back on and restarts the 1-second timeout loop
  that drives re_tick(). By the time the timeout fires, if_re.ko
  has been unloaded, which results in a call to invalid code and
  blows up the system.

  To fix this, I cleared the IFF_UP flag before calling ether_ifdetach(),
  which stops the ioctl routine from trying to reset the chip.

- Modified comments in re_rxeof() relating to the difference in
  RX descriptor status bit layout between the 8139C+ and the gigE
  chips. The layout is different because the frame length field
  was expanded from 12 bits to 13, and they got rid of one of the
  status bits to make room.

- Add diagnostic code (re_diag()) to test for the case where a user
  has installed a broken 32-bit 8169 PCI NIC in a 64-bit slot. Some
  NICs have the REQ64# and ACK64# lines connected even though the
  board is 32-bit only (in this case, they should be pulled high).
  This fools the chip into doing 64-bit DMA transfers even though
  there is no 64-bit data path. To detect this, re_diag() puts the
  chip into digital loopback mode and sets the receiver to promiscuous
  mode, then initiates a single 64-byte packet transmission. The
  frame is echoed back to the host, and if the frame contents are
  intact, we know DMA is working correctly, otherwise we complain
  loudly on the console and abort the device attach. (At the moment,
  I don't know of any way to work around the problem other than
  physically modifying the board, so until/unless I can think of a
  software workaround, this will have do to.)

- Created re(4) man page

- Modified rlphy.c to allow re(4) to attach as well as rl(4).

Note that this code works for the sample 8169/Marvell 88E1000 NIC
that I have, but probably won't work for the 8169S/8110S chips.
RealTek has sent me some sample NICs, but they haven't arrived yet.
I will probably need to add an rlgphy driver to handle the on-board
PHY in the 8169S/8110S (it needs special DSP initialization).
@
text
@d3 1
a3 1
.PATH: ${.CURDIR}/../../pci
@

