Name
eCos Support for the Freescale MCIMX25WPDK Board — Overview
Description
This document covers the configuration and usage of eCos and RedBoot on the Freescale MCIMX25WPDK board. The board consists of a base board, a CPU module and a debug board. The CPU module contains the i.MX25 processor, RAM, NAND flash and a connector carrying most on-chip peripherals to the Personality board. The Personality board contains the CPU module, 2Mbytes of serial NOR flash memory on CSPI1, a DP83640 PHY, external connections for Ethernet, and the various other peripherals supported by the CPUs. The Debug board connects to the Personality boards and carries power, RS232 serial, and JTAG connectors; it also contains a second Ethernet device which is not used. An LCD is connected to the Personality board, and is supported by a frame buffer driver. eCos support for the devices and peripherals on the board and the CPU 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 the serial line or over Ethernet.
This documentation is expected to be read in conjunction with the i.MXxx processor HAL documentation and further device support and subsystems are described and documented there.
Supported Hardware
The SPI NOR flash consists of 32 blocks of 64Ki bytes each. In a typical setup, the first four blocks are reserved for the ROM RedBoot image. The topmost block is used to manage the flash and also holds RedBoot fconfig values. The remaining blocks can be used by application code.
Serial support is through the
CYGPKG_IO_SERIAL_ARM_IMX
driver
package which is modified by the
CYGPKG_IO_SERIAL_ARM_MCIMX25
driver package
for the MCIMX25WPDK. These packages can support all the serial
devices on the i.MX25. However, this board only has UART1
connected to an external connector which this HAL indicates by
implementing the CYGINT_HAL_IMX_UART1
interface. This serial channel is 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 mcimx25x
target.
There is an Ethernet driver
CYGPKG_DEVS_ETH_FREESCALE_ENET
for the on-chip
FEC Ethernet device. The platform HAL package is responsible for
configuring this generic driver to the hardware. This driver is
also loaded automatically when configuring for the mcimx25x
board.
There is a watchdog driver
CYGPKG_DEVICES_WATCHDOG_ARM_IMX
. This
driver is also loaded automatically when configuring for the
board.
The platform HAL provides definitions to allow access to devices
on the SPI bus. The HAL provides information to the more general
CSPI driver (CYGPKG_DEVS_SPI_ARM_CSPI
)
which in turn provides the underlying implementation for the SPI
API layer in the CYGPKG_IO_SPI
package. All
these packages are automatically loaded when configuring for the
board.
Furthermore, the platform HAL package contains support for the SPI
NOR flash. The HAL support integrates with the
CYGPKG_DEVS_FLASH_SPI_M25PXX
package as well as
the above SPI packages. That package is automatically loaded when
configuring for the target. This driver is capable of supporting
the JFFS2 filesystem.
I²C support is provided by the
CYGPKG_DEVS_I2C_FREESCALE_I2C
package. Only I²C
bus 1 is directly supported, to which are attached an EEPROM and
power management chips. There is a test program to test access to
the former and the latter are accessed to enable the Ethernet PHY
during initialization.
ADC support is provided by the
CYGPKG_DEVS_ADC_ARM_TSC
package. Only ADC
inputs INAUX0
, INAUX1
and
INAUX2
are supported at present.
LCD support is provided by the
CYGPKG_DEVS_FRAMEBUF_ARM_IMX
package. This
supports a fixed 640x480 16 bits per pixel display mode.
In general, devices (Caches, GPIO, UARTs) are initialized only as far as is necessary for eCos to run. Other devices (SPI, Watchdog 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. Devices not used by eCos (MMC/SD, Audio, CAN etc.) are not touched at all.
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.7.3, arm-eabi-gdb version 7.2, and binutils version 2.23.2.
2024-03-18 | eCosPro Non-Commercial Public License |