eCos Support for the Intel IQ80321 Board — Overview


This document covers the Intel IQ80321 development board for the IOP321 XScale device. The IQ80321 contains the IOP321 processor, 128MB of SDRAM, 8MB of Intel Strataflash memory, an Intel i82544 Ethernet MAC and a TL16C550C UART.

For typical eCos development, a RedBoot image is programmed into the flash memory, and the board will boot this image from reset. RedBoot provides gdb stub functionality so it is then possible to download and debug stand-alone and eCos applications via the gdb debugger. This can happen over either a serial line or over ethernet.

Supported Hardware

The flash memory consists of 64 blocks of 128k bytes each. In a typical setup, the first two flash blocks are used for the ROM RedBoot image. The topmost block is used to manage the flash and hold RedBoot fconfig values. The remaining 62 blocks between 0xF0040000 and 0xF07DFFFF can be used by application code.

There is a serial driver CYGPKG_IO_SERIAL_GENERIC_16X5X which supports the 16C550 UART. The CYGPKG_IO_SERIAL_ARM_IQ80321 package provides customization of this generic driver to the IQ80321 hardware. This device can be used by RedBoot for communication with the host. If this device is needed by the application, either directly or via the serial driver, then it cannot also be used for RedBoot communication. Another communication channel such as ethernet should be used instead. The serial driver packages are loaded automatically when configuring for the IQ80321 target.

There is an ethernet driver CYGPKG_DEVS_ETH_INTEL_I82544 for the Intel i82544 ethernet device. A second package CYGPKG_DEVS_ETH_ARM_IQ80321 is responsible for configuring this generic driver to the IQ80321 hardware. These drivers are also loaded automatically when configuring for the IQ80321 target.

eCos manages the on-chip interrupt controller. Timer 0 is used to implement the eCos system clock and the microsecond delay function. Other on-chip devices (Caches, MEMC, INTC, PCI bridge, ATU, MMU, I²C) are initialized only as far as is necessary for eCos to run. Other devices are not touched.


The IQ80321 port is intended to work with GNU tools configured for an arm-eabi target. The original port was undertaken using arm-elf-gcc version 3.2.1, arm-elf-gdb version 5.3, and binutils version 2.13.1.