Firmware Images =============== The OpenWrt build for Horst generates several images in directory trunk_rootdir/bin/ixp4xx. I use openwrt-ixdpg425-zImage (zImage partition) openwrt-ixp4xx-generic-squashfs.img (rootfs partition) These two images were made available to an tftp server. Partitioning and Flashing ========================= Using the fis tool within Redboot, on Horst I deleted all partitions between (i.e. not including!) the partitions named RedBoot' and 'RedBoot config' Then I flashed the above mentioned files using these RedBoot commands: load -r -b %{FREEMEMLO} openwrt-ixdpg425-zImage fis create zImage load -r -b %{FREEMEMLO} openwrt-ixp4xx-generic-squashfs.img fis create rootfs This is how the partition layout looks like on my Horst: RedBoot> fis list Name FLASH addr Mem addr Length Entry point 0x28011301 0x00696E66 0x6F5F636F 0x6E736F6C RedBoot 0x50000000 0x0013A400 0x00080000 0x0013A400 nvram 0x50080000 0x00800000 0x00040000 0x00800000 zImage 0x500C0000 0x00026400 0x00100000 0x00026400 rootfs 0x501C0000 0x00026400 0x007A0000 0x00026400 RedBoot config 0x50FC0000 0x50FC0000 0x00001000 0x00000000 FIS directory 0x50FE0000 0x50FE0000 0x00020000 0x00000000 0x5F736372 0x69707400 0x00000000 0x0411010C Note that on the first boot after flashing, OpenWrt automatically allocates a jffs2 file system in the free space between the 'rootfs' and the 'RedBoot config' partition. This jffs2 file system is made to overlay (merge with) the readonly squashfs file system. This is implemented by using an 'overlayfs' file system, which drives both the squashfs and the jffs2 file systems. This way the jffs2 file system captures all changes made to the root file system. overlayfs is similar to UnionFS. Learn from UnionFS: http://en.wikipedia.org/wiki/UnionFS Advantages of this approach: * The initial root file system (squashfs) is highly compressed (higher than jffs2) * Any changes to the initial system can be easily saved or identified by looking at the content of the jffs2 file system. Very usefull when reflashing/upgrading. Fconfig settings ================ These are the fconfig settings I use: RedBoot> fconfig -l Run script at boot: true Boot script: .. fis load zImage .. exec -c "console=ttyS0,57600n8 console=ttyS0 rootfstype=squashfs,jffs2 root=/dev/mtdblock3 redboot.directory=127" Boot script timeout (1000ms resolution): 3 Use BOOTP for network configuration: false Gateway IP address: 0.0.0.0 Local IP address: 192.168.0.23 Local IP address mask: 255.255.255.0 Default server IP address: 192.168.0.9 Console baud rate: 57600 GDB connection port: 9000 Force console for special debug messages: false Network debug at boot time: false Default network device: npe_eth0 Network hardware address [MAC] for NPE eth0: 0xAA:0xCC:0xCC:0xDD:0xEE:0xFE Network hardware address [MAC] for NPE eth1: 0xAA:0xBB:0xCC:0xDD:0xEE:0xFF serial_nr: abcdef012345