eCos Support for the Spectrum Digital OMAP-L137 Evaluation Module -- Overview
Description
This document covers the configuration and usage of eCos and
RedBoot on the Spectrum Digital OMAP-L137 Evaluation Module. This
board is fitted with an OMAP L137 processor, 64 MBytes of SDRAM,
four megabytes of serial NOR flash attached to the SPI0 bus, 32K
of EEPROM attached to the I2C0 bus, a DB9 serial connector for
UART2, a KSZ8893MQL ethernet switch/phy, a jtag connector, and a
number of other peripherals and expansion sockets. eCos support
for the devices and peripherals on the board is described below.
For typical eCos development, a RedBoot image is programmed into
the SPI NOR flash memory, and the board will load 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.
This documentation is expected to be read in conjunction with the
OMAP L1xx processor HAL documentation and further device support
and subsystems are described and documented there.
Supported Hardware
Bootstrap on the OMAP-L137 is complicated. The chip has two
processors, a DSP and an ARM. The chip powers up with the DSP
running a primary bootloader from on-chip memory, and with the
ARM powered down. The primary bootloader checks the state of a
number of GPIO pins to determine how to proceed. In a typical
setup it will proceed to read in an AIS script from the serial NOR
flash on the SPI0 bus and execute the script's instructions. The
AIS script will load a secondary bootloader into on-chip memory
and transfer control to that. The secondary bootloader will load
a tertiary bootloader elsewhere in on-chip memory, activate the
ARM processor, and put the DSP to sleep. The tertiary bootloader
will initialize more of the hardware, in particular the external
SDRAM, load RedBoot or another ROM startup eCos application, and
transfer control. RedBoot can then be used to download and debug a
RAM startup application, or in production systems it can load such
an application from flash or other storage and start it.
There are 4 MBytes of SPI NOR flash, arranged in 64 64K blocks. In
a typical setup the first four blocks are used to hold a boot
image containing the AIS script for the primary bootloader, the
secondary and tertiary bootloaders, and RedBoot. The topmost block
is used to manage the flash and also holds RedBoot
fconfig values. The remaining blocks can be
used by application code.
On this board only uart2 is connected, and this is normally used
by RedBoot for communication with the host. If the device is
needed by the application, either directly or via the serial
driver, then it cannot also be used for RedBoot communication
and another communication channel such as ethernet should be used
instead. The port also includes support for the ethernet,
watchdog, and real-time clock devices and for the SPI and I2C
buses. Details of this support can be found below.
In general, devices (Caches, GPIO, UARTs) are initialized only as
far as is necessary for eCos to run. Other devices (RTC, SPI, I2C,
etc.) are not touched unless the appropriate driver is
loaded, although in some cases, the HAL boot sequence will set up
the appropriate power control and pin multiplexing configuration.
Tools
The board support is intended to work with GNU tools configured
for an arm-eabi target. The original port was undertaken using
arm-eabi-gcc version 4.4.5, arm-eabi-gdb version 7.2, and binutils
version 2.20.