| Andy Fleming | 7f7f531 | 2005-11-11 12:38:59 -0600 | [diff] [blame] | 1 | The Gianfar Ethernet Driver | 
 | 2 | Sysfs File description | 
 | 3 |  | 
 | 4 | Author: Andy Fleming <afleming@freescale.com> | 
 | 5 | Updated: 2005-07-28 | 
 | 6 |  | 
 | 7 | SYSFS | 
 | 8 |  | 
 | 9 | Several of the features of the gianfar driver are controlled | 
 | 10 | through sysfs files.  These are: | 
 | 11 |  | 
 | 12 | bd_stash: | 
 | 13 | To stash RX Buffer Descriptors in the L2, echo 'on' or '1' to | 
 | 14 | bd_stash, echo 'off' or '0' to disable | 
 | 15 |  | 
 | 16 | rx_stash_len: | 
 | 17 | To stash the first n bytes of the packet in L2, echo the number | 
 | 18 | of bytes to buf_stash_len.  echo 0 to disable. | 
 | 19 |  | 
 | 20 | WARNING: You could really screw these up if you set them too low or high! | 
 | 21 | fifo_threshold: | 
 | 22 | To change the number of bytes the controller needs in the | 
 | 23 | fifo before it starts transmission, echo the number of bytes to  | 
 | 24 | fifo_thresh.  Range should be 0-511. | 
 | 25 |  | 
 | 26 | fifo_starve: | 
 | 27 | When the FIFO has less than this many bytes during a transmit, it | 
 | 28 | enters starve mode, and increases the priority of TX memory | 
 | 29 | transactions.  To change, echo the number of bytes to | 
 | 30 | fifo_starve.  Range should be 0-511. | 
 | 31 |  | 
 | 32 | fifo_starve_off: | 
 | 33 | Once in starve mode, the FIFO remains there until it has this | 
 | 34 | many bytes.  To change, echo the number of bytes to | 
 | 35 | fifo_starve_off.  Range should be 0-511. | 
 | 36 |  | 
 | 37 | CHECKSUM OFFLOADING | 
 | 38 |  | 
 | 39 | The eTSEC controller (first included in parts from late 2005 like | 
 | 40 | the 8548) has the ability to perform TCP, UDP, and IP checksums | 
 | 41 | in hardware.  The Linux kernel only offloads the TCP and UDP | 
 | 42 | checksums (and always performs the pseudo header checksums), so | 
 | 43 | the driver only supports checksumming for TCP/IP and UDP/IP | 
 | 44 | packets.  Use ethtool to enable or disable this feature for RX | 
 | 45 | and TX. | 
 | 46 |  | 
 | 47 | VLAN | 
 | 48 |  | 
 | 49 | In order to use VLAN, please consult Linux documentation on | 
 | 50 | configuring VLANs.  The gianfar driver supports hardware insertion and | 
 | 51 | extraction of VLAN headers, but not filtering.  Filtering will be | 
 | 52 | done by the kernel. | 
 | 53 |  | 
 | 54 | MULTICASTING | 
 | 55 |  | 
 | 56 | The gianfar driver supports using the group hash table on the | 
 | 57 | TSEC (and the extended hash table on the eTSEC) for multicast | 
 | 58 | filtering.  On the eTSEC, the exact-match MAC registers are used | 
 | 59 | before the hash tables.  See Linux documentation on how to join | 
 | 60 | multicast groups. | 
 | 61 |  | 
 | 62 | PADDING | 
 | 63 |  | 
 | 64 | The gianfar driver supports padding received frames with 2 bytes | 
 | 65 | to align the IP header to a 16-byte boundary, when supported by | 
 | 66 | hardware. | 
 | 67 |  | 
 | 68 | ETHTOOL | 
 | 69 |  | 
 | 70 | The gianfar driver supports the use of ethtool for many | 
 | 71 | configuration options.  You must run ethtool only on currently | 
 | 72 | open interfaces.  See ethtool documentation for details. |