Building NPE Microcode

Note: These steps may no longer be necessary. I did a fresh install from the 2008-08-31 trunk, and /lib/firmware/NPE-* files were created and detected automatically.

In order to use the ethernet ports on this router, you have to build the Intel NPE-B and NPE-C microcode binaries, concatenate them together, and write them into a flash partition with the name “microcode”.

Dig through the Intel site until you find IPL_ixp400NpeLibrary-2_4.zip. Good luck!

Extract the zip file, and go to ixp400_xscale_sw/src/npeDl. You should see a couple .c files there.

Download IxNpeMicrocode.h from OpenWRT. (There's an “Original Format” link at the bottom.)

By default, IxNpeMicrocode.h is configured to build the Crypto version of NPE-C, which is not easy to obtain. Edit the .h file to uncomment only the basic non-Crypto versions:

Opening the case

Photos

Internal photo of the 7001 A/B/G model router:

Serial

There is an 4 pin header near center of the board
The pinout is:

Rx

(no pin)

VCC

GND

Tx

Baud: 115200 , 8 bits of data, no parity (8N1)

Installation

Overview

Unfortunately the firmware update feature in the Gateway software does not work with OpenWrt and Redboot's telnet has been crippled as it does not ship with a default IP address. To install OpenWrt you need to access the console via the serial port and upload OpenWrt with a TFTP server. It is assumed the user has basic networking and terminal experience. If you don't understand a concept or know how to change a setting (ie you computer IP) this should be easy to find in the Forum or Google.

Preparation

Hardware

Philips screwdriver to open the case

TTL Serial Level Converter or compatible adapter

Serial cable

Ethernet crossover cable or Ethernet switch

Software

TFTP server program

openwrt-gateway7001-zImage

openwrt-ixp4xx-squashfs.img

Serial Connection

Determine how you will interface with the serial port in the 7001. This port is driven at TTL levels (3.3 volts) so it is not directly compatible with standard computer serial ports. For more information and a good write up on different TTL converter options see the NSLU2 wiki. please note the pin outs are different between the NSLU2 and the 7001

Once you have the appropriate interface you need to connect to the 7001 header, this can be done by obtaining a connector or simply wire wrapping. You will not need this for long, but do not short between pins or to anything else on the board.

With the serial port connected to your computer and the 7001 powered off open your favorite terminal program and connect on the serial port at 115200 Baud, 8 bits of data, no parity (8N1). Power on the the 7001 and you should see the boot sequence. Let this run to ensure everything is working.

Permanently Enable Telnet

With your terminal program still connected, cycle the power by removing and replacing the power cable.
As soon as the boot sequence starts press Ctrl-C to enter the Redboot command line
You should see

reset the device
Now when Redboot initializes it will be listening at IP 192.168.0.1 on port 9000 for 5 seconds before it executes the boot script.

To continue to connect via Telnet make sure you press Ctrl-C to enter the Redboot command line as the 7001 reboots.

Confirm Telnet Access

Ensure you are logged into the Redboot terminal via the serial console as instructed when you enabled Telnet access.
Ensure your computer's TCP/IP address is set to 192.168.0.2 (the IP you set as the Default Server IP) and any networking devices besides your main ethernet connection are off (including wireless connections).
Using a crossover cable or switch (not connected to any other devices) connect you computer to the 7001 ethernet port labeled LAN 2.

In your terminal program connected to Redboot via the serial port enter

Redboot> ip_address

confirm that Redboot is using the 192.168.0.1/255.255.255.0
if everything checks out try and ping your machine

Redboot> ping -h 192.168.0.2

wait a few seconds until you see

PING - received 10 of 10 expected

If you see 0 of 10 expected you need to troubleshoot the connection, check your cabling, and the address of the computer your are trying to ping.

If that is successful, from your computer ping the 7001 at 192.168.0.1
With a successful ping you have now enabled the ability to telnet into the 7001.

Let's double check that telnet is working before starting the OpenWrt install.
With your favorite telnet application telnet to 192.168.0.1 port 9000
you should receive the Redboot prompt.