head	1.7;
access;
symbols
	RELENG_8_4:1.5.0.2
	RELENG_9_1_0_RELEASE:1.2.2.3.2.2
	RELENG_9_1:1.2.2.3.0.2
	RELENG_9_1_BP:1.2.2.3
	RELENG_8_3_0_RELEASE:1.1.2.4.2.1
	RELENG_8_3:1.1.2.4.0.2
	RELENG_8_3_BP:1.1.2.4
	RELENG_9_0_0_RELEASE:1.2.2.1.2.1
	RELENG_9_0:1.2.2.1.0.2
	RELENG_9_0_BP:1.2.2.1
	RELENG_9:1.2.0.2
	RELENG_9_BP:1.2
	RELENG_8:1.1.0.2;
locks; strict;
comment	@# @;


1.7
date	2013.07.04.01.10.06;	author svnexp;	state Exp;
branches;
next	1.6;

1.6
date	2013.03.31.00.26.09;	author svnexp;	state Exp;
branches;
next	1.5;

1.5
date	2012.11.17.01.52.54;	author svnexp;	state Exp;
branches
	1.5.2.1;
next	1.4;

1.4
date	2012.06.19.07.34.13;	author np;	state Exp;
branches;
next	1.3;

1.3
date	2011.12.16.02.09.51;	author np;	state Exp;
branches;
next	1.2;

1.2
date	2011.04.01.00.25.32;	author np;	state Exp;
branches
	1.2.2.1;
next	1.1;

1.1
date	2011.02.18.08.00.26;	author np;	state Exp;
branches
	1.1.2.1;
next	;

1.5.2.1
date	2012.11.17.01.52.54;	author svnexp;	state dead;
branches;
next	1.5.2.2;

1.5.2.2
date	2013.03.28.13.05.19;	author svnexp;	state Exp;
branches;
next	;

1.2.2.1
date	2011.09.23.00.51.37;	author kensmith;	state Exp;
branches
	1.2.2.1.2.1;
next	1.2.2.2;

1.2.2.2
date	2012.02.06.18.11.01;	author np;	state Exp;
branches;
next	1.2.2.3;

1.2.2.3
date	2012.07.01.12.00.36;	author np;	state Exp;
branches
	1.2.2.3.2.1;
next	1.2.2.4;

1.2.2.4
date	2012.11.17.11.37.16;	author svnexp;	state Exp;
branches;
next	1.2.2.5;

1.2.2.5
date	2013.07.02.05.02.31;	author svnexp;	state Exp;
branches;
next	1.2.2.6;

1.2.2.6
date	2013.07.05.19.01.46;	author svnexp;	state Exp;
branches;
next	;

1.2.2.1.2.1
date	2011.11.11.04.20.22;	author kensmith;	state Exp;
branches;
next	1.2.2.1.2.2;

1.2.2.1.2.2
date	2012.11.17.08.37.13;	author svnexp;	state Exp;
branches;
next	;

1.2.2.3.2.1
date	2012.08.05.23.54.33;	author kensmith;	state Exp;
branches;
next	1.2.2.3.2.2;

1.2.2.3.2.2
date	2012.11.17.08.48.04;	author svnexp;	state Exp;
branches;
next	;

1.1.2.1
date	2011.03.14.09.50.14;	author np;	state dead;
branches;
next	1.1.2.2;

1.1.2.2
date	2011.03.14.09.50.14;	author np;	state Exp;
branches;
next	1.1.2.3;

1.1.2.3
date	2011.04.04.18.47.17;	author np;	state Exp;
branches;
next	1.1.2.4;

1.1.2.4
date	2012.02.07.01.26.29;	author np;	state Exp;
branches
	1.1.2.4.2.1;
next	1.1.2.5;

1.1.2.5
date	2012.11.17.10.36.56;	author svnexp;	state Exp;
branches;
next	;

1.1.2.4.2.1
date	2012.03.03.06.15.13;	author kensmith;	state Exp;
branches;
next	1.1.2.4.2.2;

1.1.2.4.2.2
date	2012.11.17.08.25.32;	author svnexp;	state Exp;
branches;
next	;


desc
@@


1.7
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/252661
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@#
# $FreeBSD: head/sys/modules/cxgbe/Makefile 252661 2013-07-03 23:52:15Z np $
#

SUBDIR = if_cxgbe
SUBDIR+= t4_firmware
SUBDIR+= t5_firmware
SUBDIR+= ${_tom}

.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
_tom=		tom
.endif

.include <bsd.subdir.mk>
@


1.6
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248925
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d2 1
a2 1
# $FreeBSD: head/sys/modules/cxgbe/Makefile 248925 2013-03-30 02:26:20Z np $
d7 1
a7 1
#SUBDIR+= t5_firmware
@


1.5
log
@Switching exporter and resync
@
text
@d2 1
a2 1
# $FreeBSD: head/sys/modules/cxgbe/Makefile 237263 2012-06-19 07:34:13Z np $
d6 2
a7 1
SUBDIR+= firmware
@


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


1.5.2.2
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/248810
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@a0 8
#
# $FreeBSD: releng/8.4/sys/modules/cxgbe/Makefile 231103 2012-02-07 01:26:29Z np $
#

SUBDIR = if_cxgbe
SUBDIR+= firmware

.include <bsd.subdir.mk>
@


1.4
log
@SVN rev 237263 on 2012-06-19 07:34:13Z by np

- Updated TOE support in the kernel.

- Stateful TCP offload drivers for Terminator 3 and 4 (T3 and T4) ASICs.
  These are available as t3_tom and t4_tom modules that augment cxgb(4)
  and cxgbe(4) respectively.  The cxgb/cxgbe drivers continue to work as
  usual with or without these extra features.

- iWARP driver for Terminator 3 ASIC (kernel verbs).  T4 iWARP in the
  works and will follow soon.

Build-tested with make universe.

30s overview
============
What interfaces support TCP offload?  Look for TOE4 and/or TOE6 in the
capabilities of an interface:
# ifconfig -m | grep TOE

Enable/disable TCP offload on an interface (just like any other ifnet
capability):
# ifconfig cxgbe0 toe
# ifconfig cxgbe0 -toe

Which connections are offloaded?  Look for toe4 and/or toe6 in the
output of netstat and sockstat:
# netstat -np tcp | grep toe
# sockstat -46c | grep toe

Reviewed by:	bz, gnn
Sponsored by:	Chelsio communications.
MFC after:	~3 months (after 9.1, and after ensuring MFC is feasible)
@
text
@d2 1
a2 1
# $FreeBSD$
@


1.3
log
@SVN rev 228561 on 2011-12-16 02:09:51Z by np

Many updates to cxgbe(4)

- Device configuration via plain text config file.  Also able to operate
  when not attached to the chip as the master driver.

- Generic "work request" queue that serves as the base for both ctrl and
  ofld tx queues.

- Generic interrupt handler routine that can process any event on any
  kind of ingress queue (via a dispatch table).

- A couple of new driver ioctls.  cxgbetool can now install a firmware
  to the card ("loadfw" command) and can read the card's memory
  ("memdump" and "tcb" commands).

- Lots of assorted information within dev.t4nex.X.misc.*  This is
  primarily for debugging and won't show up in sysctl -a.

- Code to manage the L2 tables on the chip.

- Updates to cxgbe(4) man page to go with the tunables that have changed.

- Updates to the shared code in common/

- Updates to the driver-firmware interface (now at fw 1.4.16.0)

MFC after:	1 month
@
text
@d7 5
@


1.2
log
@SVN rev 220231 on 2011-04-01 00:25:32Z by np

Allow multiple modules within sys/modules/cxgbe.  The first one is if_cxgbe.

MFC after:	3 days
@
text
@d6 1
@


1.2.2.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.2.2.2
log
@SVN rev 231093 on 2012-02-06 18:11:01Z by np

MFC r228491, r228561, r228594.

r228491:
Do not clobber the ingress queue's congestion setting.

r228561:
Many updates to cxgbe(4)

- Device configuration via plain text config file.  Also able to operate
  when not attached to the chip as the master driver.

- Generic "work request" queue that serves as the base for both ctrl and
  ofld tx queues.

- Generic interrupt handler routine that can process any event on any
  kind of ingress queue (via a dispatch table).

- A couple of new driver ioctls.  cxgbetool can now install a firmware
  to the card ("loadfw" command) and can read the card's memory
  ("memdump" and "tcb" commands).

- Lots of assorted information within dev.t4nex.X.misc.*  This is
  primarily for debugging and won't show up in sysctl -a.

- Code to manage the L2 tables on the chip.

- Updates to cxgbe(4) man page to go with the tunables that have changed.

- Updates to the shared code in common/

- Updates to the driver-firmware interface (now at fw 1.4.16.0)

r228594:
Catch up with new driver ioctls in cxgbe.
@
text
@a5 1
SUBDIR+= firmware
@


1.2.2.3
log
@SVN rev 237920 on 2012-07-01 12:00:36Z by np

Backport just the sys/{dev,modules}/cxgb{,e}/ parts of r237263, and then
disable the TOE and iWARP modules in the Makefiles (they won't compile
without the rest of r237263).

This reduces diffs between the cxgb/cxgbe drivers in head and 9 and
makes it easy to MFC other fixes to 9.
@
text
@a6 5
#SUBDIR+= ${_tom}

.if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
_tom=		tom
.endif
@


1.2.2.4
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
@d2 1
a2 1
# $FreeBSD: stable/9/sys/modules/cxgbe/Makefile 237920 2012-07-01 12:00:36Z np $
@


1.2.2.5
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/252495
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d2 1
a2 1
# $FreeBSD: stable/9/sys/modules/cxgbe/Makefile 252495 2013-07-02 04:27:16Z np $
d6 1
a6 2
SUBDIR+= t4_firmware
#SUBDIR+= t5_firmware
@


1.2.2.6
log
@## SVN ## Exported commit - http://svnweb.freebsd.org/changeset/base/252814
## SVN ## CVS IS DEPRECATED: http://wiki.freebsd.org/CvsIsDeprecated
@
text
@d2 1
a2 1
# $FreeBSD: stable/9/sys/modules/cxgbe/Makefile 252814 2013-07-05 18:27:38Z np $
d7 2
a8 2
SUBDIR+= t5_firmware
SUBDIR+= ${_tom}
@


1.2.2.3.2.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.2.2.3.2.2
log
@Switch importer
@
text
@d2 1
a2 1
# $FreeBSD: releng/9.1/sys/modules/cxgbe/Makefile 237920 2012-07-01 12:00:36Z np $
@


1.2.2.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.2.2.1.2.2
log
@Switch importer
@
text
@d2 1
a2 1
# $FreeBSD: releng/9.0/sys/modules/cxgbe/Makefile 220231 2011-04-01 00:25:32Z np $
@


1.1
log
@SVN rev 218792 on 2011-02-18 08:00:26Z by np

cxgbe(4) - NIC driver for Chelsio T4 (Terminator 4) based 10Gb/1Gb adapters.

MFC after:	3 weeks
@
text
@d5 1
a5 2
CXGBE = ${.CURDIR}/../../dev/cxgbe
.PATH: ${CXGBE} ${CXGBE}/common
d7 1
a7 9
KMOD = if_cxgbe
SRCS = t4_main.c t4_sge.c
SRCS+= t4_hw.c
SRCS+= device_if.h bus_if.h pci_if.h
SRCS+= opt_inet.h

CFLAGS+= -g -I${CXGBE}

.include <bsd.kmod.mk>
@


1.1.2.1
log
@file Makefile was added on branch RELENG_8 on 2011-03-14 09:53:03 +0000
@
text
@d1 16
@


1.1.2.2
log
@SVN rev 219633 on 2011-03-14 09:50:14Z by np

MFC cxgbe(4) and fixes.

r218792:
cxgbe(4) - NIC driver for Chelsio T4 (Terminator 4) based 10Gb/1Gb adapters.

r219285:
Fix incorrect assertion.

r219286:
Resume tx immediately in response to an SGE egress update from the hardware.

r219287:
Upgrade the firmware on the card automatically if a better version is
available.  Downgrade only for a major version mismatch.

r219288:
A txpkts work request should have a valid FID.

r219289:
Store the ifnet rather than the port_info in each txq and rxq struct.

r219290:
Tweaks for rx:
- everything related to LRO should be in #ifdef INET blocks
- reorder sge_iq's fields so that the most frequently used are all together
- pull all rx code into t4_intr_data directly
- let go of the ingress queue lock when passing up data
- refill the freelist only if it is short of at least 32 buffers

r219292:
Calculate how many descriptors can be reclaimed before calling
reclaim_tx_descs

r219293:
There is no need to hold an ingress queue's lock while processing its
descriptors

r219299:
Be sure to stay within the bounds of the mod_str array when displaying
the transceiver type.

r219392:
cxgbe shouldn't directly know of the UMA zones where network buffers
come from.

r219436:
Display holdoff timers and packet counts as a list of numbers.
@
text
@a0 16
#
# $FreeBSD$
#

CXGBE = ${.CURDIR}/../../dev/cxgbe
.PATH: ${CXGBE} ${CXGBE}/common

KMOD = if_cxgbe
SRCS = t4_main.c t4_sge.c
SRCS+= t4_hw.c
SRCS+= device_if.h bus_if.h pci_if.h
SRCS+= opt_inet.h

CFLAGS+= -g -I${CXGBE}

.include <bsd.kmod.mk>
@


1.1.2.3
log
@SVN rev 220339 on 2011-04-04 18:47:17Z by np

MFC r220231, r220232

r220231:
Allow multiple modules within sys/modules/cxgbe.  The first one is if_cxgbe.

r220232:
Update header and related code for firmware 1.3.8
@
text
@d5 2
a6 1
SUBDIR = if_cxgbe
d8 9
a16 1
.include <bsd.subdir.mk>
@


1.1.2.4
log
@SVN rev 231103 on 2012-02-07 01:26:29Z by np

MFC r228491, r228561, r228594.

r228491:
Do not clobber the ingress queue's congestion setting.

r228561:
Many updates to cxgbe(4)

- Device configuration via plain text config file.  Also able to operate
  when not attached to the chip as the master driver.

- Generic "work request" queue that serves as the base for both ctrl and
  ofld tx queues.

- Generic interrupt handler routine that can process any event on any
  kind of ingress queue (via a dispatch table).

- A couple of new driver ioctls.  cxgbetool can now install a firmware
  to the card ("loadfw" command) and can read the card's memory
  ("memdump" and "tcb" commands).

- Lots of assorted information within dev.t4nex.X.misc.*  This is
  primarily for debugging and won't show up in sysctl -a.

- Code to manage the L2 tables on the chip.

- Updates to cxgbe(4) man page to go with the tunables that have changed.

- Updates to the shared code in common/

- Updates to the driver-firmware interface (now at fw 1.4.16.0)

r228594:
Catch up with new driver ioctls in cxgbe.
@
text
@a5 1
SUBDIR+= firmware
@


1.1.2.5
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
@d2 1
a2 1
# $FreeBSD: stable/8/sys/modules/cxgbe/Makefile 231103 2012-02-07 01:26:29Z np $
@


1.1.2.4.2.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.1.2.4.2.2
log
@Switch importer
@
text
@d2 1
a2 1
# $FreeBSD: releng/8.3/sys/modules/cxgbe/Makefile 231103 2012-02-07 01:26:29Z np $
@


