Informations about the Networking Driver using the IXP4XX CPU internal NPEs
and Queue manager.

If this driver is used, the IAL (Intel Access Library) must not be loaded.
However, the IAL may be loaded, if this Modules are unloaded:
	ixp4xx_npe.ko, ixp4xx_qmgr.ko ixp4xx_mac.ko

This also means that HW crypto accelleration does NOT work when using this
driver, unless I have finished my crypto driver for NPE-C


Adoption to your custom board:
------------------------------
use "arch/arm/mach-ixp4xx/ixdp425-setup.c" as template:

in "static struct mac_plat_info" adopt the entry "phy_id" to your needs
(Ask your hardware designer about the PHY id)

The order of "&mac0" and "&mac1" in the "struct platform_device"
determines which of them becomes eth0 and eth1


The Microcode:
---------------
Solution 1)
 Configure "CONFIG_HOTPLUG" and "CONFIG_FW_LOADER" and configure
 IXP4XX_NPE as module.
 The default hotplug script will load the Firmware from
 /usr/lib/hotplug/firmware/NPE-[ABC]
 see Documentation/firmware_class/hotplug-script

 You should take care, that $ACTION is "add" and $SUBSYSTEM is "firmware"
 to avoid unnessecary calls:
 test $ACTION = "remove" -o $SUBSYSTEM != "firmware" && exit

Solution 2)
 create a char-dev: "mknod /dev/misc/npe c 10 184"
 cat the Microcode into it:
 cat /usr/lib/hotplug/firmware/NPE-* > /dev/misc/npe
 This also works if the driver is linked to the kernel

 Having a mix of both (e.g. solution 1 for NPE-B and solution 2 for NPE-C)
 is perfectly ok and works.

 The state of the NPEs can be seen and changed at:
 /sys/bus/platform/devices/ixp4xx_npe.X/state


Obtaining the Microcode:
------------------------
1) IxNpeMicrocode.h in this directory:
   Download IPL_IXP400NPELIBRARYWITHCRYPTO-2_1.ZIP from Intel
   It unpacks the Microcode IxNpeMicrocode.c
   Read the Licence !
   Compile it with "gcc -Wall IxNpeMicrocode.c -o IxNpeMicrocode" on your host.
   The resulting images can be moved to "/usr/lib/hotplug/firmware"

2) mc_grab.c in this directory:
   Compile and execute it either on the host or on the target
   to grab the microcode from a binary image like the RedBoot bootloader.


