eCos Support for the MX1ADS/A Board — Overview


This document covers the Motorola MX1ADS/A single board computer based on the Motorola MC9328MX1. This platform is both hardware and software compatible with the MXLADS/A, which contains a MC9328MXL; all references to the MX1ADS/A and MC9328MX1 should also be taken to refer to the MXLADS/A and MC9328MXL except where explicitly stated.

The MX1ADS/A contains the MC9328MX1 processor, 64Mb of SDRAM, 32MB of flash memory, a CS8900A ethernet MAC, connections for two serial channels and the various other peripherals supported by the MC9328MX1. The MX1ADS/A is identical to the MXLADS/A except that in addition to the devices supported by the MXLADS/A, it contains support for Bluetooth, analogue signal processing and SIM cards. However, since eCos does not use these devices, there is no difference in the support available.

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 two Am29PDL127H devices in parallel, giving 256 blocks of 128k bytes each. In a typical setup, the first flash block is used for the ROMRAM RedBoot image. The topmost block is used to manage the flash and hold RedBoot fconfig values. The remaining 254 blocks between 0x10020000 and 0x11FDFFFF can be used by application code.

There is a serial driver CYGPKG_IO_SERIAL_ARM_MC9328MXL which supports the two UART serial devices on the MC9328MX1. This is configured for the MX1ADS/A by the CYGPKG_IO_SERIAL_ARM_MX1ADS_A package. These devices can be used by RedBoot for communication with the host. If either of these devices 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 package is loaded automatically when configuring for the MX1ADS/A target.

There is an ethernet driver CYGPKG_DEVS_ETH_CL_CS8900A for the Cirrus Logic CS8900A ethernet device. A second package CYGPKG_DEVS_ETH_ARM_MX1ADS_A is responsible for configuring this generic driver to the MX1ADS/A hardware. These drivers are also loaded automatically when configuring for the MX1ADS/A target.

eCos manages the on-chip interrupt controller. General Purpose Timer 1 is used to implement the eCos system clock and the microsecond delay function. The Watchdog Timer is also supported. Other on-chip devices (Caches, GPIO, UARTs, memory and interrupt controllers) are initialized only as far as is necessary for eCos to run. Other devices (SPI, I²C, RTC etc.) are not touched.


The MX1ADS/A 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.3.3, arm-elf-gdb version 6.1, and binutils version 2.14.