eCos Home

RedBoot Home


About eCos

Supported Hardware

Downloading and Installation

Documentation

FAQ

Mailing lists

Problems

Licensing

Anonymous CVS

Contributions and Development Projects

Legal

eCos

Contributions and Development Projects


Introduction

Contributions to eCos are always welcome. These may be in the form of a new package, enhancements to an existing package or bug fixes. A contribution may be from a individual or part of a collaborative project. Information on how to contribute is contained within the eCos FAQ.

Development projects

The eCos maintainers welcome proposals for new eCos packages and enhancements to existing packages. If you have an idea for a new development, please talk to us as early as possible. The best place to initiate a discussion of your proposal is on the ecos-devel mailing list. If your proposal appears sound, we will add your project to the table below. By registering projects in this way, the possibility of duplicated effort is reduced, the potential for community involvement is enhanced and the eCos maintainers are able to offer guidance to help ensure that the final project deliverables will be acceptable.

As a matter of policy, contributions arising from registered projects will be considered for acceptance into the eCos repository with priority over broadly equivalent contributions developed in private. This policy is intended to encourage collaboration on new features and reduce the possibility of a community development being rejected in favour of a private development of similar scope and quality.

Licensing of contributions

Contributions to the eCos project should be licensed under the eCos License. It may also be possible to accept contributions containing third party code from certain trusted sources and covered by more liberal licenses, such as the BSD license. Please seek advice from the eCos maintainers in such cases.

Please note that we are unable to accept contributions which contain code licensed under the unmodified GNU General Public License (GPL) for incorporation into the eCos repository.

Copyright assignments

Any significant contribution (typically greater than 10 lines of code) must be accompanied by an assignment of copyright to the Free Software Foundation. Details of this procedure are available on the eCos Copyright Assignment page.

The rationale behind this policy is to avoid any possible confusion over the legal ownership of eCos, and to ensure that the contributor's employer or academic institution assents to the work being contributed. It also allows the copyright to be vested centrally so that the eCos license may be enforced. Successful enforcement of a software license is dependent on the cooperation of all copyright holders.

The eCos maintainers will advise contributors when a copyright assignment is necessary. If your employer does not consent to the disclaimer, or you do not hold copyright for all the contributed code, then a copyright assignment will not be possible and the contribution will not be accepted into the eCos repository. However, it may still be possible to list the contribution on this page.

Registered projects

ProjectRegisteredCommittedContactsDescription
AT91SAM9G45 processor 2010-03-03   Richard Rauch Support for the Atmel AT91SAM9G45 processor
ENC424J600 ethernet 2009-10-26 2012-05-04 Ilija Stanislevik An SPI-based driver for the Microchip ENC424J600 ethernet controller
i.MX 6 processor 2013-12-27   Michael Jones Support for the Freescale i.MX 6 series processors (Cortex-A9) and SABRE board
Kinetis variant 2010-12-07 2011-10-30 Ilija Kocho Support for the Freescale Kinetis processor family (Cortex-M4) using the TWR-K60N512-KIT board for development
lwIP 1.3.2 2009-06-05 2010-01-26 Simon Kallweit An import of the lwIP 1.3.2 lightweight TCP/IP stack
STM32 ethernet 2010-11-09 2013-04-15 Jerzy Dyrda An ethernet device driver for the STM32 processor family using the Propox MMstm32F107 board for development
STM32 USB 2009-06-05 2010-10-27 Chris Holgate A USB device driver for the STM32 processor family
STR912FAW44 processor 2010-03-08   Jerzy Dyrda Support for the STMicroelectronics STR912FAW44 processor (ARM966E-S) and the Propox MMstr912 board

Other projects

This section lists eCos-related developments which have either not been contributed or not been accepted into the CVS repository for some reason.

MiniGUI

Wei Yongming of Feynman Software has released an eCos port of their lightweight cross-platform Graphics User Interface support system named MiniGUI. It is available under both the GPL and a commercial license. More information can be found at the Feynman Software site, as well as the home of the open source MiniGUI project.

OpenSSL

Andrew Lunn of Ascom has made available a port of the OpenSSL library. Due to export problems this library is not available and unfortunately will not become available from ecos.sourceware.org. Instead it is hosted at eCosCentric's FTP server as this is based in the UK, not the US. The package is distributed in EPK format and can be installed using the eCos package administration tool. It is available by FTP from ftp://ftp.ecoscentric.com/pub/contrib/openssl-1.9.6b.epk. Use shift-click on this link to save the file - some browsers incorrectly treat this file as text.

Be aware of the legal status of using encryption libraries like OpenSSL. The use of some encryption algorithms are patented in various territories, especially the US. Similarly some territories control the export of products containing encryption, again including the US.

LUA language support and pre-built Configtool versions

Xylanta Ltd hosts a eCos port for the LUA 5.0 programming language. They also host pre-built versions of the eCos Configtool (Cygwin only) and an experimental version of the Configtool for Cygwin that supports two repositories.

EtherCAT master library for eCos

The Flanders Mechatronics Technology Centre - FMTC - has decided to release their EtherCAT master implementation as open source software. The EtherCAT master library, together with its technical documentation can be obtained from http://ethercatmaster.berlios.de. The software has been written for and has been tested with the eCos operating system.

Port to Renesas H8S architecture

Uwe Kindler of cetoni GmbH has developed a port of eCos to H8S microcontroller architecture. The port includes various variant and platform ports (i.e. for EDOSK2674) and a number of drivers (i.e. Serial, Network, RTC...). cetoni also hosts a prebuild h8300-elf toolchain for eCos (Cygwin only) and a detailed porting guide for H8S variant and platform ports.

Port to Nios II architecture

A port of eCos for the Nios II architecture is under development at Zylin AS. The port is based on original work by Altera. It includes support for the Altera NEEK target and the OpenCores Ethermac.

Port to Game Boy Advance

Charmed Labs has developed the Xport which turns the Nintendo Game Boy Advance into an embedded development system, complete with eCos and RedBoot port.

Technical details and ordering information are available from Charmed Labs.

Port to easyCAN3 ARM CPU

Europe Technologies has provided a port to their easyCAN3 ARM-based microcontroller and in particular the EVM-CAN low-cost high performance development platform. This is available via FTP for download as a complete source repository snapshot. The sources will be integrated into the eCos development repository shortly.

Single precision math library and termios non-canonical mode

luoqi has ported FreeBSD's single precision portion of the math library to eCos. Luoqi has also added support for non-canonical mode in the existing termios support. The necessary patches are available to download here.

3G LAB projects

3G LAB were engaged in quite a number of projects that will enhance eCos. Some of them, like ROM filesystem and iPAQ port have already been incorporated into the development repository. Other projects of interest include:

  • ELF shared library loading and run-time linking (including lazy procedure linking at call time).
  • Memory protection for loaded libraries.
  • Advanced memory allocation and virtual space management.
  • XIP (Execute in place) for ROMFS and RAMFS loaded applications.
  • User-id & group-id based permissions checking for file access.
  • ARM USER mode execution of shared library code, with SWI interfaces to the kernel.
  • Parameter checking for calls from user mode into the kernel.
  • Advanced stack checking for user applications that allow faulty applications to be terminated whilst leaving the rest of the system executing.
  • Partial POSIX process emulation, with pthread grouping and signal marshalling.

Microwindows port to Linux synthetic target and Assabet

I-Jui Sung has done a preliminary port of Microwindows/Nano-X to the Linux synthetic and Assabet targets. This port differs from the iPAQ demo port in that it uses POSIX mqueues instead of a loopback TCP/IP socket, which is more lightweight. The Linux port comes with a framebuffer simulator for eCos that communicates with the real desktop. Downloads are available here.

Microwindows port to x86 target and Trident VGA card

Li Hui has also separately done a Microwindows port. This is to x86 systems using a Trident VGA card. It also includes the PC mouse support he wrote earlier that is mentioned separately below. A zip file containing the complete microwindows sources he used, mouse driver, and TVGA driver is available from here.

Port to Sony Playstation 2

Yaegashi Takeshi has ported eCos and RedBoot to the Sony PlayStation 2 based on the MIPS Emotion Engine. More information is available at http://ps2hacking.sourceforge.net/.

eSoap for eCos

Rosimildo daSilva has developed an embedded SOAP toolkit named eSoap that runs under eCos. More details are available at http://www.embedding.net/eSOAP. eSoap is free for non-commercial applications.

x86 NE2000 ethernet driver

Christian Plessl and Thomas Meyer have ported an Ne2000 driver from OpenBLT to eCos. It is restricted to the x86 PC port only. The README contains details and instructions from Christian's announcement to the ecos-discuss list. The driver package tarball and addto.ecos.db file can be downloaded here.

Kaffe Java VM

Ryouzaburou Suzuki has ported the Kaffe Java VM to eCos 1.3.1 on SH4. It is available for download here. Note that it is covered by the GNU General Public License.

TCP/IP stack

Tristan Gingold has ported RTEMS libnetworking to eCos. This includes a FreeBSD-derived TCP/IP stack. The sources are available for download from ftp://ecos.sourceware.org/pub/ecos/contrib/io/tcpip/rtems/

Note that this contribution is not related to the eCos TCP/IP stack and may not be usable in the current release of eCos.

Thanks to our contributors

Complex number math library port

Ilija Kocho has contributed a port of complex number arithmetic functions from the newlib math library to eCos.

Single-precison floating point math library port

Ilija Kocho and Visar Zejnullahu have contributed a port of single-precision floating point arithmetic functions from the newlib math library to eCos.

Freescale Kinetis TWR-K60F120M board port

Mike Jones has contributed a port of eCos to the Freescale Kinetis TWR-K60F120M development board.

Freescale I2C driver

Tomas Frydrych has contributed an I2C driver for Freescale processors including Kinetis family parts.

STMicroelectronics STM32 ethernet driver

Jerzy Dyrda has contributed an ethernet driver for the STMicrolectronics STM32 processor family.

Freescale Kinetis flash driver

Nicolas Aujoux has contributed a flash driver for the Freescale Kinetis processor family.

Microchip ENC424J600 ethernet driver

Ilija Stanislevik of SIvA doo has contributed an ethernet driver for the Microchip ENC424J600 ethernet part over SPI.

Freescale Kinetis KwikStik board port

Tomas Frydrych has contributed a port of eCos to the Freescale Kinetis KwikStik development board.

Actel SmartFusion port

Christophe Coutand has contributed a port of eCos to the Actel SmartFusion evaluation board.

Silicon Storage Technology SST25xx SPI flash driver

Christophe Coutand has contributed an SPI flash driver for the Silicon Storage Technology SST25xx device family.

Atmel AT25DFxxx SPI flash driver

Christophe Coutand has contributed an SPI flash driver for the Atmel AT25DFxxx device family.

Olimex LPC1766-STK port

Ilija Kocho has contributed a port of eCos to the Olimex LPC1766-STK development board. The port includes serial, ethernet and wallclock device drivers.

Stellaris LM3S811 port

Christophe Coutand has contributed a port of eCos to the Luminary Micro Stellaris LM3S811 evaluation board. The port includes ADC and I2C device drivers.

USB mass storage function

Christophe Coutand has contributed a USB mass storage function driver. It has been tested with eCos USB slave drivers for the AT91 and STM32 processor families.

STMicroelectronics STM32 USB slave driver

Chris Holgate has contributed a USB slave driver for the STMicroelectronics STM32 CPU family.

Atmel AT91 ADC driver

Christophe Coutand has contributed an ADC driver for the Atmel AT91 CPU family.

lwIP

Simon Kallweit has contributed a port of lwIP 1.3.2 to eCos. The port supports both ethernet and SLIP interfaces. It also includes an experimental implementation of PPP, pending an update of the upstream lwIP PPP support planned for lwIP 1.4.

uSTL

Uwe Kindler has contributed a port of uSTL 1.3 to eCos. uSTL is a partial implementation of the C++ Standard Template Library (STL) which is optimised for minimal code size.

Object loader

Anthony Tonizzo has contributed a relocating object loader for eCos. The original contribution supported the loading of object code from an eCos filesystem. Gernot Zankl has extended the package to support the loading of object code directly from ROM.

PDCurses

Sergei Gavrikov has contributed a port of PDCurses 3.4 to eCos. The contribution includes a PDCurses driver for eCos serial I/O, enabling eCos applications to present a text user interface on a remote terminal.

PXA250

Holger Schurig contributed a port to the PXA250.

ARM AT91 Watchdog driver

Thomas Koeller of Basler Vision Technologies has contributed a watchdog driver for the ARM AT91 CPU.

MPC5xx ports

Bob Koninckx at the Department of Mechanical Engineering at the Katholieke Universiteit Leuven has contributed ports to two PowerPC MPC555 based boards, the CME0555 eval board from Axiom Manufacturing and the ec555 from Wuerz Elektronik. Both ports include FLASH, serial and wallclock drivers.

There are also some extra packages for the ec555 port in EPK format containing device drivers for the A/D and D/A convertors as well as the Time Processor Unit.

H8/300 port

Yoshinori Sato has contributed a port to the Hitachi H8/300. This port will be made available in the upcoming eCos v2 release, but until then you can get more details from Yoshinori's website.

lwIP lightweight TCP/IP stack

Jani Monoses at Astechnix SRL has contributed a port of the lwIP lightweight TCP/IP stack to eCos.

Improved AT91 serial driver

John Recker at HP has written a new serial driver for the AT91 port, designed to drop fewer characters at high bit rates.

Andrew Lunn at Ascom

Andrew Lunn at Ascom has contributed many useful things back to the eCos community, including an FTP client, DNS support, OpenSSL, linux synthetic target flash driver and many many small fixes and improvements.

The entire eCos community is grateful to Andrew and Ascom for their excellent efforts!

3GLAB

The eCos community would also like to thank Richard Panton and Dominic Ostrowski working for 3GLAB who have contributed many excellent features, including the initial Compaq IPAQ port, ROMFS filesystem and (soon) JFFS2 filesystem support.

ARM Integrator HAL and drivers

Philippe Robin at ARM has contributed a port to the ARM Integrator platform.

PC mouse driver

Li hui has developed some sample code that can be used to make a PC serial mouse driver, and is available here.

ARM Evaluator-7T serial device drivers

Lars Lindqvist of Combitech Systems contributed serial device drivers for the ARM Evaluator-7T (AEB-2) platform. The sources are in the anonymous CVS development repository.

PC platform HAL

Patrick O'Grady developed the initial port of eCos for the PC platform. The sources are included in the eCos net distribution as of release 1.3.1.

Synthetic Linux platform HAL

Chris Provenzano developed the eCos i386/Linux synthetic target. This is essentially a port of the eCos HAL to a Linux process and allows the developer to run eCos applications under Linux as if they were native Linux applications. The sources are included in the eCos net distribution as of release 1.2.1.

Motorola MPC8xxFADS platform HAL

Kevin Hester developed an eCos HAL for the Motorola MPC8xx Family Application Development System platform. The sources are included in the eCos net distribution as of release 1.2.1.

Arm Industrial Module AIM711 Port

Roland Caßebohm of Vision systems developed a full port of eCos to the Vision Systems AIM711. This port includes HAL, FLASH, serial and wallclock device drivers, plus a patch to make an existing ethernet device driver work with this hardware.

Hardware contributors

Andrew Lunn would like to thank Ronetix for the loan of a PEEDI JTAG Emulator

Individual contributors

In addition, the eCos team recognizes the following individuals who have contributed to eCos:

If we have left anyone off the list, please accept our apologies and inform the eCos maintainers of the omission.

About this site

We acknowledge the support of Red Hat to the open source community in providing the computing resources at ecos.sourceware.org.