eCos Support for the SuperH SH4-202 MicroDev Board -- Overview
The SuperH SH4-202 MicroDev board (henceforth just "MicroDev") has
an SH4-202 processor, 64MB of external SDRAM, 32MB of external flash
memory, an SMSC LAN91C111 ethernet controller and connectors plus
required support chips for all the on-chip peripherals.
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.
The flash memory consists of 128 blocks of 256k bytes each.
In a typical setup, the first
flash block is used for the ROM RedBoot image
and the second is used to store a version of RedBoot that can run out of
RAM. The topmost two blocks are used to manage the flash and hold RedBoot fconfig
values. The remaining 124 blocks between 0xA0080000 and 0xA1F7FFFF can be
used by application code.
The board is fitted with a PLCC socket suitable for an EEPROM (or PROM) such as
the 1Mbit ST M29WO10B. This is enabled by toggling two DIP switches, after which
the EEPROM is mapped into the same address as the flash memory. Therefore,
the flash is not accessible if booting from the EEPROM.
There is a serial driver CYGPKG_DEVS_SERIAL_SH_SCIF
which supports the on-chip serial device. 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 package is loaded automatically when configuring for the
There is an ethernet driver CYGPKG_DEVS_ETH_SH_MICRODEV
for the on-chip ethernet device. This driver is also loaded
automatically when configuring for the MicroDev target.
eCos manages the on-chip interrupt controller. Timer 0 is used to
implement the eCos system clock, and timer 1 is used to implement a
microsecond delay function. Timer 2 is unused and
left for the application. Other on-chip devices (FEMI, EMI, INTC, TMU,
CAC, UBC) are initialized only as far as is necessary for eCos to
run. Other devices (eg RTC, DMAC, etc) are not touched.
The MicroDev port is intended to work with GNU tools configured for an
sh-elf target. The original port was done using sh-elf-gcc version
3.2.1, sh-elf-gdb version 5.3, and binutils version 2.13.1.