FreeBSD src
Go to file
Pyun YongHyeon cdc2a5ec78 Implement TX/RX checksum offloading support for ASIX AX88772B
controller.

AX88772B data sheet does not show detailed information about
checksum offloading related things. It seems the controller has
lots of options to support checksum offloading but I failed to
understand why this feature requires so much complex controller
configuration and status bits.
One of major difference between AX88772B and its predecessor is
AX88772B uses a new RX header format when RX checksum offloading is
enabled.  It also requires the received length of a frame should be
multiple of 4.  Controller will pad necessary bytes to make the
length of received frame to be multiple of 4.  It is driver's
responsibility to offset this pad bytes.
Note, AX88772B could be configured to get partial checksum value in
in RX header. This mode uses different RX header format and
currently we don't use that fature.

This change makes axe(4) use driver specific MII attach handler to
override uether(9)'s default MII attach and announce flow-control
capability for AX88178/AX88772A/AX88772B to PHY drivers.  It seems
original AX88772 also supports flow-control but I didn't enable it
due to lack of test/access to the controller.  The flow-control
threshold parameter is loaded from EEPROM and there is no way to
override this value without reprogramming EEPROM. For AX88772B,
TX/RX IP/TCP/UDP checksum offloading is announced to network stack.
IPv6 and PPPoE checksum offloading is also supported by controller
but we have no way to take advantage of these features.
Driver already knows PHY address so make PHY driver know that
information and remove unnecessary PHY address check used in
miibus_readreg/miibus_writereg callbacks.  Also announce AX88178,
AX88772A and AX88772B support VLAN over-sized frame.

While I'm here clean up headers and remove axe_start() in
axe_init() because the link wouldn't be available right after media
change.
2011-10-25 18:36:18 +00:00
bin If ls was invoked with -i but neither -l nor -s, blocksize was used in 2011-10-19 15:35:41 +00:00
cddl Update copyright to include myself. 2011-10-24 21:22:55 +00:00
contrib * Don't give the impression that this compiler is GPLv3. 2011-10-24 20:52:41 +00:00
crypto Add a -x option that causes ssh-agent(1) to exit when all clients have 2011-10-07 13:10:16 +00:00
etc Correctly reassign copyright of etc/rc.d/static_ndp back to delphij@ 2011-10-23 10:17:42 +00:00
games Minor typo, fix 2 attributions 2011-06-09 06:10:39 +00:00
gnu * Don't give the impression that this compiler is GPLv3. 2011-10-24 20:52:41 +00:00
include People porting FreeBSD to new architectures ought not have to 2011-10-21 06:41:46 +00:00
kerberos5 - Add missing interdependencies to kerberos libraries. Some of the 2011-09-27 07:14:12 +00:00
lib Fix Buildworld WITHOUT_OPENSSL. 2011-10-22 22:22:46 +00:00
libexec - change "is is" to "is" or "it is" 2011-10-16 14:30:28 +00:00
release Missed file in r225937 (sysinstall removal). 2011-10-12 15:34:25 +00:00
rescue Finally... Import the latest open-source ZFS version - (SPA) 28. 2011-02-27 19:41:40 +00:00
sbin Build swapon with WARNS=6. 2011-10-25 17:10:15 +00:00
secure - change "is is" to "is" or "it is" 2011-10-16 14:30:28 +00:00
share All dc(4) controllers support VLAN over-sized frame. 2011-10-24 21:01:20 +00:00
sys Implement TX/RX checksum offloading support for ASIX AX88772B 2011-10-25 18:36:18 +00:00
tools Fix resize regressions tests - we need to destroy BSDlabel before we can 2011-10-25 13:41:12 +00:00
usr.bin - Fix installation when WITH_BSD_GREP is set to yes 2011-10-23 16:04:07 +00:00
usr.sbin Provide an error message and error handling if there are no network 2011-10-25 16:35:48 +00:00
COPYRIGHT Happy New Year 2011. 2010-12-31 18:07:16 +00:00
LOCKS Update LOCKS syntax. 2008-06-05 19:47:58 +00:00
MAINTAINERS Farewall, sysinstall! You served us well for many years, but 10.0 is one 2011-10-03 15:13:09 +00:00
Makefile It's a bit odd, but "make update" in src/ can also update the ports/, 2011-06-16 12:28:37 +00:00
Makefile.inc1 Upgrade our copy of llvm/clang to r142614, from upstream's release_30 2011-10-22 14:08:43 +00:00
Makefile.mips Retire TARGET_ABI. 2011-01-07 20:26:33 +00:00
ObsoleteFiles.inc Now that its only consumer is gone (sysinstall), remove libftpio as well. 2011-10-03 20:49:02 +00:00
README Add the cddl/ directory. 2010-11-14 11:32:56 +00:00
UPDATING - change "is is" to "is" or "it is" 2011-10-16 14:30:28 +00:00

This is the top level of the FreeBSD source directory.  This file
was last revised on:
$FreeBSD$

For copyright information, please see the file COPYRIGHT in this
directory (additional copyright information also exists for some
sources in this tree - please see the specific source directories for
more information).

The Makefile in this directory supports a number of targets for
building components (or all) of the FreeBSD source tree, the most
commonly used one being ``world'', which rebuilds and installs
everything in the FreeBSD system from the source tree except the
kernel, the kernel-modules and the contents of /etc.  The ``world''
target should only be used in cases where the source tree has not
changed from the currently running version.  See:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html
for more information, including setting make(1) variables.

The ``buildkernel'' and ``installkernel'' targets build and install
the kernel and the modules (see below).  Please see the top of
the Makefile in this directory for more information on the
standard build targets and compile-time flags.

Building a kernel is a somewhat more involved process, documentation
for which can be found at:
   http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig.html
And in the config(8) man page.
Note: If you want to build and install the kernel with the
``buildkernel'' and ``installkernel'' targets, you might need to build
world before.  More information is available in the handbook.

The sample kernel configuration files reside in the sys/<arch>/conf
sub-directory (assuming that you've installed the kernel sources), the
file named GENERIC being the one used to build your initial installation
kernel.  The file NOTES contains entries and documentation for all possible
devices, not just those commonly used.  It is the successor of the ancient
LINT file, but in contrast to LINT, it is not buildable as a kernel but a
pure reference and documentation file.


Source Roadmap:
---------------
bin		System/user commands.

cddl		Various commands and libraries under the Common Development
		and Distribution License.

contrib		Packages contributed by 3rd parties.

crypto		Cryptography stuff (see crypto/README).

etc		Template files for /etc.

games		Amusements.

gnu		Various commands and libraries under the GNU Public License.
		Please see gnu/COPYING* for more information.

include		System include files.

kerberos5	Kerberos5 (Heimdal) package.

lib		System libraries.

libexec		System daemons.

release		Release building Makefile & associated tools.

rescue		Build system for statically linked /rescue utilities.

sbin		System commands.

secure		Cryptographic libraries and commands.

share		Shared resources.

sys		Kernel sources.

tools		Utilities for regression testing and miscellaneous tasks.

usr.bin		User commands.

usr.sbin	System administration commands.


For information on synchronizing your source tree with one or more of
the FreeBSD Project's development branches, please see:

  http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/synching.html