Readme for the Intel® IXP400 Software v3.0 Linux* Ethernet Device Driver Patch
======================================================================
Copyright
Notice
INFORMATION IN THIS DOCUMENT
IS PROVIDED IN CONNECTION WITH INTEL(R) PRODUCTS EXCEPT AS PROVIDED IN INTEL’S
TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS. INTEL ASSUMES NO LIABILITY
WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY RELATING TO SALE
AND/OR USE OF INTEL PRODUCTS, INCLUDING LIABILITY OR WARRANTIES RELATING TO
FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY
PATENT, COPYRIGHT, OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel products are not
intended for use in medical, life-saving, life-sustaining, critical control or
safety systems, or in nuclear-facility
applications.
Intel may make changes to specifications and product descriptions at any time, without notice.
Designers must not rely on the absence or characteristics of any features or instructions marked “reserved” or “undefined.” Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information.
Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each processor family, not across different processor families. See http://www.intel.com/products/processor_number for details.
The Intel IXP400(R) Software may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.
This ReadMe as well as the software described in it are furnished under license and may only be used or copied in accordance with the terms of the license. The information in this manual is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by Intel Corporation. Intel Corporation assumes no responsibility or liability for any errors or inaccuracies that may appear in this document or any software that may be provided in association with this document.
Except as permitted by such license, no part of this document may be reproduced, stored in a retrieval system, or transmitted in any form or by any means without the express written consent of Intel Corporation.
Contact your local Intel
sales office or your distributor to obtain the latest specifications and before
placing your product order.
Copies of documents which
have an order number and are referenced in this document, or other Intel
literature, may be obtained by calling 1-800-548-4725, or by visiting Intel's
Web Site.
BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino logo, Core Inside, FlashFile, i960, InstantIP, Intel, Intel logo, Intel386, Intel486, Intel740, IntelDX2, IntelDX4, IntelSX2, Intel Core, Intel Inside, Intel Inside logo, Intel Leap ahead, Intel Leap ahead logo, Intel NetBurst, Intel NetMerge, Intel NetStructure, Intel SingleDriver, Intel SpeedStep, Intel StrataFlash, Intel Viiv, Intel vPro, Intel XScale, Itanium, Itanium Inside, MCS, MMX, Oplus, OverDrive, PDCharm, Pentium, Pentium Inside, skoool, Sound Mark, The Journey Inside, VTune, Xeon, and Xeon Inside are trademarks of Intel Corporation in the U.S. and other countries.
*Other names and brands may
be claimed as the property of others.
July 23, 2007
Introduction
==========
This readme file contains
instructions for using the Intel® IXP400 Software Linux* Ethernet Device Driver
v3.0.
The
ixp400LinuxEthernetDriver-3_0.zip file contains updated source code for the
stock Linux* 2.6.20.3 that enables the NPE Ethernet ports on the Intel® IXP4XX
Product Line of Network Processors to be used as network interfaces by the Linux
kernel. The patch file provides the necessary changes to the Linux Makefile and
Linux Support Package (LSP) kernel configuration scripts to allow the Ethernet
device driver to be compiled.
Linux* Ethernet Driver
Change History
==============================
V3.0
- Support Intel
IXP400 Software v3.0 event driven model
- Support kernel 2.6.20.3
- ethDB is decoupled from the driver;EthDB can be enabled through kernel configuration
- Support RX QoS - DSCP, VALN QoS, and Ethernet type
- Support fast path
- Support module upgrade
- Support customized Ethernet header offset
- No longer support NAPI
V1.7
- Support
for the Intel® IXP43X product line of network processors
-
Support NPE error handling soft recovery
V1.6
-
Updated driver
to support Intel IXP400 Software v2.3
-
Support NPE-A
Ethernet-HSS coexistence NPE image with Live Lock
Prevention
-
Enhanced
performance when NAPI, fast skbuff recycling and QDisc are
enabled
-
Resolved
system page allocation failure warning when NAPI is
enabled
V1.5.1
- Changed from dynamic
Ethernet port ID to static Ethernet port ID. (ixp0 = NPE B, ixp1 = NPE C, ixp2 =
NPE A)
- Renamed
dev_set_multicast_list to ixp400_dev_set_multicast_list as the naming conflicts
with kernel 2.6 API.
- Renamed
dev_set_mac_address to ixp400_dev_set_mac_address as the naming conflicts with
kernel 2.6 API.
- Merged NF bridge
patch into Ethernet Device Driver.
- Implemented module
usage counter to enable proper module removal.
- Fixed NAPI defect in
do_dev_stop whereby wrong argument is being passed into
dev_get_drvdata.
- Changed the check of return value from function
ixpEthMiiLinkStatus, instead of checking IX_ETH_ACC_SUCCESS, check for
IX_SUCCESS.
v1.5
- Provided NAPI support
and this has enhanced the performance of Ethernet frame
handling.
V1.4
- Added IxFeatureCtrl
function call to set the expansion bus fuse register to enable MUX for NPEA
MII.
V1.3
- Updated driver to support new Intel IXP400
Software v2.0 with additional support for the Intel® IXDP465 Development
Platform.
V1.2
- Updated driver to
support Intel IXP400 Software v1.5.
- New kernel configuration and command line options
supported. Refer to the most current Intel IXP400 Software Release Notes for
software release 1.5.
V1.1
- Linux Ethernet Driver and Kernel Integration
patches have been modified to allow upgrades of the Ethernet Driver to occur
independently from the MontaVista Linux kernel integration
patches.
- Initiated new version 1.1 for the Ethernet
driver. Previous version was released at the same time as the Intel IXP400
Software v1.4 release, and reflected internal versioning scheme (version
0_1_9).
- Fix for NETDEV WATCHDOG task reporting a
Tx-Timeout error on one of the configured NPE ports, and subsequently no
Ethernet frames were transmitted by the driver on that port. (Intel internal
reference number: SCR #3320).
- Fix for network traffic passing through the
driver not being processed correctly by the netfilter firewall feature in the
kernel, if this feature is enabled (CONFIG_NETFILTER). This resulted in the
possibility of the firewall incorrectly dropping or accepting received frames.
(Intel internal reference num: SCR #3395).
- Fix for the NPE interface sometimes incorrectly dropping incoming
frames destined for a certain station connected to a non-NPE interface in the
system, if that station was previously connected to the NPE interface (e.g.,
station roaming). This was most likely to occur in a network in which wireless
stations may roam between multiple access points and one of those access points
is based upon the IXP400 software. (Intel internal reference num: SCR
#3414)
Supported
Versions
===============
Intel IXP400 Software Release v3.0
Stock Linux 2.6.20.3
Files contained in
ixp400LinuxEthernetDriverPatch-3_0.zip
=============================================
ixp400LinuxEthernetDriver-3_0.patch
IxLinuxEDDIoctl.h
ixp400_eth.c
Readme.txt
Prerequisites
==========
The following instructions
are based upon unmodified installations of the Intel IXP400 Software v3.0
release and according to the instructions outlined in the most recently
available Release Notes of Intel IXP400 Software
v3.0.
Procedure for applying the
ixp400LinuxEthernetDriver-3_0.patch and
ixp400_eth.c
===================================================
1. Unzip the contents of the
ixp400LinuxEthernetDriverPatch-3_0.zip file to a working directory
<workdir>.
2A. To apply the patch to a
newly installed Linux kernel source:
$ cd <linux> (where <linux> is the path to the
Linux kernel source tree)
$ patch -p1 <
<workdir>/ixp400LinuxEthernetDriver-<version>.patch
2B.
To apply a patch to a previously installed Linux kernel
source:
$ cd <linux> (where <linux> is the path to the
Linux kernel source tree)
$ patch -R –p1 <
<workdir>/ixp400LinuxEthernetDriver-<previous_version>.patch
$ patch -p1 <
<workdir>/ixp400LinuxEthernetDriver-<version>.patch
$ mv
<linux>/drivers/net/ixp400_eth.c
<linux>/drivers/net/ixp400_eth.c.bak
3. Copy ixp400_eth.c from the
<workdir> to <linux>/drivers/net/
$ cp <workdir>/ixp400_eth.c
<linux>/drivers/net/
$ cp <workdir>/IxLinuxEDDIoctl.h <linux>/drivers/net/
Notes:
-
The ixp400LinuxEthernetDriver-3_0.patch is generated for the stock Linux
2.6.20.3. It is recommended to apply this onto an unmodified Linux kernel
source.