CELF Project Proposal/Create Open Toolbox Platform
- Design and create a versatile open toolbox platform
- Luc Paugam
The open toolbox platform shall aim at becoming the Swiss Army Knife of embedded Linux developments for debugging and testing of systems, boards, CPUs, or real silicons emulated or not. This framework/tool shall provide a versatile development toolbox usable for many kinds of debugging and testing situations during the development or production of Embedded Linux Systems.
This tool shall be open, fully configurable, flexible and modular enough to be hooked up quickly and easily whatever the development and test environments.
Freely available to the public, The software architecture of this toolbox platform shall allow users to extend the list of supported system targets, to extend the functionalities, and to "derive" the original use of this toolbox to other needs.
Remotely managed by a host application (i.e. GDB or custom application) through an Ethernet or a USB link, connected to an embedded target via a JTAG connection or equivalent, this toolbox product shall allow any kind of debugging purposes, and/or testing of CPUs, real Silicons or emulated ones, boards, or systems.
The firmware embeddable into the toolbox shall be designed around a hierarchy of SW layers featuring:
- The debug of JTAG-chained multi-core HW architectures
- The debug of synchronous and asynchronous multi-core HW architectures
- An embedded GDB multiplexer allowing multi-host debugging sessions, as much as CPU cores detected in a JTAG chain
- The download of new communication plugins into the toolbox to support other CPUs or other "derived" uses ...etc
- The reconfiguration of the whole pinout of the communication mean connected to the target system
- The port of the firmware/SW on any Linux computer connected to debug links of an emulated Silicon
- Allow the firmware to interface and to communicate itself with silicon emulators, like Modelsim or Ncsim
- The design is freely accessible, enabling any kind of enhancements or derived work
- Allow users to increase the set of functionalities, and the list of supported target systems
- Allow derived works to be used in other development contexts, like tracing, profiling or whatever.
It exists some open tools used for debugging purposes with limited functionalities, and limited communication means with the host or the target system. They do not provide configurability, nor enhancements, and do not allow any kinds of "derived" works.
Today there is no real open tool standard. Even if exists fragmented commercial offers of hardware probes, those products are usually closed products, are quite expensive, provide no way to enhance their I/O configurations, their functionalities, and provide no way to enlarge the contexts of debugging and testing situations. they are not able to communicate with open source CPUs (like Sparc, LEON, or Open Cores). Their firmware can't be modified to support other development environments at both the host side, and at the target side.
This open toolbox product shall be a framework/tool for debugging and testing purposes, and will provide some combination of configurability, programmability, adaptability, portability, enhancements, allowing derived works, and build around an open hardware and software embedded system.
- It will take 3 months for the design of the HW part of the product
- It will take 3 months, executed in parallel, for the development of the firmware of the product
- And another month for the final integration of both the HW and the SW parts of this product before shipment