This is the mail archive of the mailing list for the eCos project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Significant updates to Red Hat eCos

Red Hat is pleased to announce a series of significant additions and
updates to eCos, the Embedded Configurable Operating System. As an Open
Source company, Red Hat has made these improvements available from the
development repository available via anonymous CVS ( see ).

Key additions to generic eCos functionality include:

* EL/IX compatibility layer - POSIX 1003.1 threads and
  synchronization primitives
* Plug-in filesystem and network stack support (including a sample
  RAM-based filesystem)
* RedBoot ROM monitor permitting ethernet debugging, flash management,
* SNMP support
* PCMCIA and Flash support

Also of particular note are the inclusion of ports to the Intel StrongARM
Assabet and Brutus evaluation boards, and support for the NEC v850
architecture and NEC CEB-v850/SA1 evalation board. More details of these
and other improvements are listed below.

eCos 1.3.1 users should ensure they are using the latest host tools
available for download from
instead of the standard eCos 1.3.1 tools before using the anonymous CVS

As usual, the sources in the anonymous CVS repository are under continual
development, and as such there can be no guarantees to reliability or
stability. Developer support contracts are available for users in need of a
reliable, stable and tested eCos release. A full standard public release
will be made available in due course in collaboration with the Open Source
community. No firm date is set for the next public release at this time.

EL/IX related functionality

EL/IX is an API that allows applications to be ported transparently between
Linux, Embedded Linux and small embedded OS's like eCos. Visit for details.

- Support has been added for POSIX 1003.1 threads, mutexes, semaphores,
message queues, condition variables, clocks, timers and real-time signals
in the new POSIX compatibility package (part of the EL/IX initiative) found
at compat/posix in the source repository.

- Plug-in filesystem support added, with a POSIX 1003.1 compatible API,
found in the io/fileio package, and integrated with the C library.

- An initial example filesystem implementation is provided in fs/ram. This
is a RAM-based filesystem that attempts to both be a useful tool in its own
right and an example of how to write a filesystem that plugs into the eCos
filesystem infrastructure.

The source of the filesystem is in fs/ram/VERSION/src/ramfs.c and is
intended to be largely self documenting. The General Description at the
beginning of the file gives an overview of the structure of the system, and
comments within the code explain specific points. This code should be read
in conjunction with the description of the fileio infrastructure.

- POSIX termios support has been added as specified by EL/IX level 1

Note that the above features should be considered to be at an early beta
stage of development.

Networking functionality

- The most up-to-date TCP/IP stack sources are now available from anonymous

- A port of the University of California at Davis (UCD) SNMP stack has been

- DHCP support has been added

- TFTP server and client support is now included

Target/platform and device driver support

- Intel StrongARM SA1110 Assabet evaluation board port added

- Intel StrongARM SA1100 Brutus evaluation board port added. This should be
considered a beta release at this time.
- An architecture port to the NEC V850 has been added, with an initial
platform of the NEC CEB-v850/SA1. A serial driver is also included.

- CqREEK SH7708 (SH3) board port added - contributed by Haruki Kashiwaya.
(Note: support for an SH4 based CqREEK system will be added shortly).

- Hitachi SH7709A variant support added

- Hitachi SH7707A variant support added

- Added PCMCIA and Compact Flash support, including drivers for the
ARM-Assabet board. This should be considered of beta quality at this time.

- Added Flash memory support for Intel StrongARM EBSA285 and Cirrus Logic
ARM EDB7xxx boards

- Added an ethernet driver for the Socket Communications Low Power Compact
Flash Ethernet (LP-CF+) PC Card  - see (NB only
tested on the Assabet board at this time).


RedBoot - the Red Hat Embedded Debug and Boot ROM monitor has been added.

RedBoot provides:
- serial and ethernet GDB debugging support
- Flash image management
- Flash booting
- Download via TFTP
- SREC or "raw" download formats
- IP address setting by BOOTP/DHCP
- A CLI interface.

Zmodem download support is to be added shortly.

RedBoot will become the standard firmware supplied and supported by Red
Hat, replacing CygMon and GDB stubs based boot loaders.

Initial support is for the ARM-EDB7xxx, ARM-EBSA285, and StrongARM-Assabet

This is the initial release of RedBoot and should be considered an alpha -
it is still under major development. In particular little documentation is
yet available, although what is available can be obtained from

Other functionality

- Improved dynamic memory management support in the memory allocator
package. Existing dynamic memory support in the kernel (fixed and variable
block allocators) and in libc (malloc, etc.) has been moved to this
package, located at services/memalloc/common. It is now possible to support
memory pools occupying all of remaining memory (as determined by the MLT).
New memory allocators can be "plugged in", and an example of Doug Lea's
malloc (dlmalloc) has been included.

- Most targets now implement a standard form of "virtual vectors" - a
mechanism to allow enhanced co-operation between ROM monitors and running
applications. This allows the application to leave to the ROM things that
the ROM supports rather than duplicating, including debug channels that may
be via serial or ethernet. To take advantage of this, new GDB stub
images/CygMon images should be programmed onto boards, although old images
will continue to work - they will just not be able to use the new
facilities. GDB itself does not need rebuilding either.

- Support added for both software and hardware serial I/O flow control with
an initial version of the latter available only for the ARM PID board at

- Kernel enhanced with Asynchronous Service Routines (ASRs) which are
routines called back at the point a thread is scheduled.

- Added configurable priority ceilings for kernel mutexes

- Support sorted thread queues in kernel, rather than LIFO, controlled by

Other new items

- Updated eCos on-line documentation with many corrections and
clarifications, including documentation on the CEB-v850 port, using RedBoot
on the EBSA285 and on using the plug-in filesystem, socket, and memory
allocator interfaces. The updated documentation is at

- The FAQ has been updated to cover common problems encountered with
building development tools and eCos, particularly for Windows users

Existing users of the anonymous CVS repository should note that the above
changes may be quite destabilising to any existing build trees and saved
configurations. To avoid updating to the most recent changes, you may
update to the snapshot immediately preceding them by checking out with the
CVS tag "ecos-sw-2000-07-21". Existing users should also pay particular
notice to the sections above on new GDB stub/CygMon images, and the new
host tools.

Any discussions on these improvements are welcomed on the ecos-discuss
mailing list - visit to

Jonathan Larmour
eCos Engineering
Red Hat, 35 Cambridge Place, Cambridge, UK. CB2 1NS  Tel: +44 (1223) 728762

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]