140 likes | 279 Views
Setting up IXP1200 Linux. Fei Chen CAPSL Electrical & Computer Engineering University of Delaware. System Overview. Hardware Needed. IXP1200 Evaluation System Linux PC running Red Hat 6.2+ for building the Linux Kernel NT 4.0 SP5+ for developer workbench to develop microcode for IXP1200
E N D
Setting up IXP1200 Linux Fei Chen CAPSL Electrical & Computer Engineering University of Delaware
Hardware Needed • IXP1200 Evaluation System • Linux PC running Red Hat 6.2+ for building the Linux Kernel • NT 4.0 SP5+ for developer workbench to develop microcode for IXP1200 • Serial Cable, Ethernet hub etc.
Software needed • Red Hat Linux 6.2 • Cross Hosted Big Endian Arm toolchain for Linux • IXP12DE Software Development Tools
Linux Boot up Sequence on IXP1200 • Load boot up image in flash; • Download "zImage" (Linux kernel image) & "ramdisk_img.gz" (Ramdisk for Linux) to DRAM from Linux PC via tftp; • Boot up Linux image in DRAM; • Login and reconfigure the IP address and NFS client
Step 1: Burning Cygmon into Flash • Files needed: • FUtil.exe - utility to burn flash on ixp1200 eval system • flash.img - flash image which includes cygmon • Specify FlashUtil as the default boot region with "BootMgr" of IXP1200 and then reboot it; • Futil Host program (FUtil.exe) can be run on a Windows NT PC, which is connected with IXP1200 board by a serial cable, and update the flash image with "flash.img".
Step 2: Configure Cygmon • Specify Cygmon as the default boot region with "BootMgr" of IXP1200 and then reboot the eval system; • At the cygmon prompt, setup a static IP address for the eval system and also the IP address of the remote system (the Linux PC with tftp service); • After the tftp server on remote system is ready, type command "gl" to download the Linux kernel and ramdisk, and then boot linux
Step 3: Using Minicom as Virtual Terminal • Delete the modem device with "rm -f /dev/modem" • Create a soft link between the modem device and ttyS0 with"ln -s /dev/ttyS0 /dev/modem • Run minicom and setup serial port for 9600 8N1 and no flow control • Using Minicom scripts can accelerate initialization procedures
Step 4: Setup Tftp Server • Install the tftp-0.17-14 and tftp-server-0.17-14 packages from the Red Hat 7.2 CD2 • Edit the tftp file under /etc/xinetd.d to specify the following value: server_args = -S / and rerun "xinetd" • Do a mkdir /tftpboot and chmod 777 /tftpboot • Copy "zImage" and "ramdisk_img.gz" to /tftpboot
Step 5: Setting up NFS server • Check to see whether the nfs-utils-0.3.1-12 package is already installed on the workstation and install it if necessary. • In the file /etc/exports add one line:ip-addr: /nfsdir * (rw) • Run exportfs -a to make your changes take effect
Step 6: Setting up NFS client • Make sure portmap is started on IXP1200 • mount -t nfs server-ip-or-name:/nfsdir /nfs
Step 7: Using Cross Hosted Toolchain • Add to your path /usr/local/armbe/bin • Use ixp1200_linux.tar.gz to compile and install armtoolchain • Compile your code likearmv4b-unknown-linux-gcc -mbig-endian hello.c -o hello • -EB should be passed to the linker likearmv4b-unknown-linux-ld -EB hello.o foo.o -o hello
Step 8: Using GDB Remotely • Download gdb from ftp://ftp.netwinder.org/users/u/urnaik/gdband replace the /usr/bin/gdb with this one • Compile your code with -g option • Ftp (or nfs) the binary into the ramdisk of the IXP1200 • On IXP1200 type: gdbserver <hostip>:<port number> <binary> <arguments> • On the host type: gdb <binary> and then on the gdb prompt type: target remote <ixp1200-ipaddr>:<port number>
Using the Microcode Workbench • On the IXP1200 running Linux, either run DNS or add the name of the NT host to the /etc/hosts file • Load ue.o (microengine module) and start rs_udebug daemon on IXP1200 cardinsmod /lib/modules/ue.ors_udebug & • Start the workbench on NT workstation and connect to Linux target by specifying its IP address.