mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 19:00:25 +00:00
![Andy Fleming](/assets/img/avatar_default.png)
This seems to have gotten lost, so I'll resend. Signed-off-by: Andy Fleming <afleming@freescale.com> * Added sysfs support to gianfar for modifying FIFO and stashing parameters * Updated driver to support 10 Mbit, full duplex operation * Improved comments throughout * Cleaned up and optimized offloading code * Fixed a bug where rx buffers were being improperly mapped and unmapped * (only manifested if cache-coherency was off) * Added support for using the eTSEC exact-match MAC registers * Bumped the version to 1.3 * Added support for distinguishing between reduced 100 and 10 Mbit modes * Modified default coalescing values to lower latency * Added documentation Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
72 lines
2.3 KiB
Text
72 lines
2.3 KiB
Text
The Gianfar Ethernet Driver
|
|
Sysfs File description
|
|
|
|
Author: Andy Fleming <afleming@freescale.com>
|
|
Updated: 2005-07-28
|
|
|
|
SYSFS
|
|
|
|
Several of the features of the gianfar driver are controlled
|
|
through sysfs files. These are:
|
|
|
|
bd_stash:
|
|
To stash RX Buffer Descriptors in the L2, echo 'on' or '1' to
|
|
bd_stash, echo 'off' or '0' to disable
|
|
|
|
rx_stash_len:
|
|
To stash the first n bytes of the packet in L2, echo the number
|
|
of bytes to buf_stash_len. echo 0 to disable.
|
|
|
|
WARNING: You could really screw these up if you set them too low or high!
|
|
fifo_threshold:
|
|
To change the number of bytes the controller needs in the
|
|
fifo before it starts transmission, echo the number of bytes to
|
|
fifo_thresh. Range should be 0-511.
|
|
|
|
fifo_starve:
|
|
When the FIFO has less than this many bytes during a transmit, it
|
|
enters starve mode, and increases the priority of TX memory
|
|
transactions. To change, echo the number of bytes to
|
|
fifo_starve. Range should be 0-511.
|
|
|
|
fifo_starve_off:
|
|
Once in starve mode, the FIFO remains there until it has this
|
|
many bytes. To change, echo the number of bytes to
|
|
fifo_starve_off. Range should be 0-511.
|
|
|
|
CHECKSUM OFFLOADING
|
|
|
|
The eTSEC controller (first included in parts from late 2005 like
|
|
the 8548) has the ability to perform TCP, UDP, and IP checksums
|
|
in hardware. The Linux kernel only offloads the TCP and UDP
|
|
checksums (and always performs the pseudo header checksums), so
|
|
the driver only supports checksumming for TCP/IP and UDP/IP
|
|
packets. Use ethtool to enable or disable this feature for RX
|
|
and TX.
|
|
|
|
VLAN
|
|
|
|
In order to use VLAN, please consult Linux documentation on
|
|
configuring VLANs. The gianfar driver supports hardware insertion and
|
|
extraction of VLAN headers, but not filtering. Filtering will be
|
|
done by the kernel.
|
|
|
|
MULTICASTING
|
|
|
|
The gianfar driver supports using the group hash table on the
|
|
TSEC (and the extended hash table on the eTSEC) for multicast
|
|
filtering. On the eTSEC, the exact-match MAC registers are used
|
|
before the hash tables. See Linux documentation on how to join
|
|
multicast groups.
|
|
|
|
PADDING
|
|
|
|
The gianfar driver supports padding received frames with 2 bytes
|
|
to align the IP header to a 16-byte boundary, when supported by
|
|
hardware.
|
|
|
|
ETHTOOL
|
|
|
|
The gianfar driver supports the use of ethtool for many
|
|
configuration options. You must run ethtool only on currently
|
|
open interfaces. See ethtool documentation for details.
|