IXP1200 Linux How To

This How To explains how to set up an IXP1200 Linux development environment.

Getting Started

Setting up a TFTP server

Burning Cygmon into Flash

Booting Linux

Using Minicom

Using NFS

Installing the toolchain

Compiling hello world

Debugging hello world with remote GDB

Using the Microcode Workbench

Known Issues

Downloads

Mirror Links

  Note: For Fast Downloads, Please use Mirror Links.

 


Getting Started

Hardware needed

 

Software needed

Make sure you use static IP addresses for IXP1200 and for Linux PC.  

Back to Top


Setting up a tftp server

If you want to boot the IXP1200 linux off the network you will need to set up a tftp server on your x86 linux host:

At this point you have a tftp server set up.

 Back to Top


Burning Cygmon into Flash

 

Files needed

FUtil.exe (Mirror link) utility to burn flash on ixp1200 eval system

flash.img (Mirror Link)flash image which includes cygmon

Hardware setup

Once the flash is programmed, you will have cygmon in the flash and can boot linux.

Back to Top


Booting linux

Files needed

zImage  (Mirror Link)                 Linux kernel image (Use ixp1200_linux.tar.gz  (Mirror Link) to compile it)

           ramdisk_img.gz (Mirror Link)        Ramdisk for Linux

 

s rip ipaddress ( remote machine's ip address)

s lip ipaddress ( eval system ip address)

On the remote machine under the directory /tftpboot copy the linux kernel and ramdisk ( zImage and ramdisk_img.gz ). If you do not wish to set up your own tftp server or tftpboot from the machine 10.3.19.166 by setting rip appropriately. If you wish to setup your own tftp server refer to Setting up your own tftp server.

Back to Top


Using Minicom

Instead of Hyperterm on Windows 98/NT, you can use minicom on linux to connect over the serial port to the IXP1200. To set up minicom on your x86 linux machine, first connect the serial port on your x86 linux host to the IXP1200.

Configuring the serial port

Using minicom scripts

If you dont want to type in the ip address every single time you boot, you can use minicom scripts and use your time for more productive things like going to meetings. (thanks layne !!).

Copy the following minicom scripts into your /minicom directory.

bootixp (Mirror Link)

start (Mirror Link)

If the system hangs you can kill the script by typing CTRL C at the minicom window.

Back to Top


Using NFS

To use NFS with the IXP1200, you need to set up an NFS server on your Red Hat x86 machine.

Setting up the NFS server on your Red Hat x86 machine

root# rpm -qa | grep -i "nfs.*"

root# rpm -Uvh nfs-server-2.2beta40-1.i386.rpm

portmap: 10.3.19.0/255.255.255.0

/nfsdir 10.3.19.xx (rw)

where "/nfsdir" is the pathname of the directory that you want to export (to be visible to ixp1200) and 10.3.19.xx is the IP addr of your ixp1200. Alternately, you can have something like

/nfsdir *.sc.intel.com (rw)

          (or)

/nfsdir 10.3.19.0/255.25.255.0 (rw)

          (or)

/nfsdir 10.3.19.*

The former will allow anybody in sc.intel.com to have access to your nfs server and the latter only the machines in 10.3.19.*

(There are documented security holes. Somebody, theoretically, can wipe out your harddisk. ) You can also use readonly permissions (ro) instead of (rw).

        root# /sbin/service portmap status

         root# /sbin/service nfs status

Note: Ignore any warnings you get, unless it doesn't work!

For more details (like how to optimize for better speed, etc etc..)

http://www.linux.org/docs/ldp/howto/NFS-HOWTO.html

Setting up the NFS Client

This will be the ixp1200. The latest kernel and ramdisk image should be nfs ready. so all you need to do is start portmap and then mount. On the current ramdisk image portmap is automatically started when you do ifup. So just mount away

root# mount -t nfs server-ip-or-name:/nfsdir /nfs

Just to make sure that you have the correct image, try first connecting to an existing nfs server. You can use the machine 10.3.19.163 - the directory is /nfsdir.

Note: There are many different versions of nfs server. The daemons are also named differently. With many versions, comes the compatibilty problems. For the ixp1200 client, use only the above mentioned rpm for nfs server.

Back to Top


Installing Cross Hosted toolchain

First add to your path /usr/local/armbe/bin 

Use ixp1200_linux.tar.gz (Mirror Link) to compile and install armtoolchain.

Back to Top


Compiling Hello World

Create your hello.c program. Then type

armv4b-unknown-linux-gcc mbig-endian hello.c o hello

All compiler utilities are prefixed with armv4b-unknown-linux-

Compiler options

armv4b-unknown-linux-gcc mbig-endian hello.c

armv4b-unknown-linux-ld EB hello.o foo.o o hello

Back to Top


Using GDB remotely

You can use GDB on your x86 linux host to remotely debug applications running on the ixp1200.

Installing gdb

Debugging foo

gdbserver <hostip-addr>:<port number> foo <arguments>

e.g. gdbserver 10.3.19.128:12345 foo

gdb foo

            target remote <ixp1200-ipaddr>:<port number>

If you want a GUI front end, then type xxgdb foo instead of gdb foo. The binary for xxgdb can be the one with red-hat since it is only the frontend.

Back to Top


Using the Microcode workbench

cat > /etc/hosts

10.3.19.xxx <name-of-NT-host>  

 hit enter

then type CTRL-D to exit.  

        insmod /lib/modules/ue.o

       rs_udebug &

 

Back to Top


Known Issues

These are the currently known bugs/features

Back to Top


Downloads

You can download all the binaries that are needed for ixp1200.

FUtil.exe (Mirror Link)     utility to burn flash on ixp1200 eval system

flash.img (Mirror Link)         flash image which includes cygmon

zImage             Linux kernel image

           ramdisk_img.gz (Mirror LinkRamDisk for Linux 

        ixa.arm-v4b-1.i386.rpm (Mirror Link) RPM for Big endian cross compiler(armtoolchain).

ixp1200_linux.tar.gz (Mirror Link) contains the patch sources for creating ixp1200 armtoolchain and zImage for linux. All other sources (binutils, gcc, glibc, linux patches for StrongARM) are listed here at http://www.netwinder.org/mirror/users/u/urnaik/

         gdb (Mirror Link)                  x86 binary for linux host for debug.

         bootixp  (Mirror Link          Expect script for bootup configuration for ixp1200.

         start  (Mirror Link             Expect script for bootup configuration for ixp1200.

         octal_gig_headers (Mirror Link )    Header files for Octalmac and Gigabit driver.

 


Mirror Sites

The mirrors are on well connected servers such as rpmfind.net, and will deliver 100+kB/s lot more than the normal sites. It is strongly suggested to use Mirror sites for file downloads.

To generate a list of all mirror sites for this page, click the following Link:

http://www.netwinder.org/mirror/users/u/urnaik

To generate  a complete list of all Mirror sites for Netwinder Website, click the following link:

http://www.netwinder.org/mirrors.html

 

 

Back to Top


It would be appreciated if you send us an email for any comment/query or just to let us know that you had success in following these instructions. We will try to improve them and make it convenient for you.

Email comments/queries/success stories to naeem.m.afzal@intel.com or duke.tallam@intel.com
Copyright 2000 Intel Corp. All rights reserved.
Revised: December 16, 2003 .