Solutions offered by DENX Software Engineering:
DENX Software Engineering is your competent partner through all steps of
developing software for an embedded systems project:
Boot Loader for Embedded Systems
You will need some boot loader before you can run Linux on an
Embedded System. That's what DENX provides - Open Source, of course.
Our boot loader "Das U-Boot" is running on more than 500 ARM, AVR32,
Blackfin, ColdFire, Microblaze, MIPS, PowerPC, SH, x86, ... boards,
including most well-known evaluation boards.
You can find the U-Boot project page at
. The git repository with
the sources is here
You can also download tarballs with the latest released versions from
our FTP server - see directory ftp://ftp.denx.de/pub/u-boot/
Our excellent know-how of U-Boot and extensive experience from
porting U-Boot to many, many evaluation boards and custom systems
puts DENX in an unrivaled position whenever you need help with
U-Boot, for example to get it ported to your hardware.
SWUpdate - Software Updater for Embedded Systems
Hardly any industrial system can do without software updates - be
it that new features need to be added, bugs be fixed or patches for
security exploits need to be installed. The usually package manager
based update tools of the classic Linux distributions don't fit this
purpose: for example, in case of errors they cannot guarantee neither
a recovery nor a fall-back to the previous version, so that for
example "Over-the-Air" updates would present unacceptable risks.
SWUpdate is based on the experience of 18 years of Embedded Linux
development and accumulates the knowledge of a very large number of
projects for different customers and use cases. In the meantime, a
constantly growing community has been using SWUpdate in many
projects outside DENX. Putting the focus on robustness,
reliability, security and flexibility, SWUpdate has become a
de facto industry standard.
- SWUpdate supports multiple update strategies, especially Recovery
System and Double Copy.
- All popular storage media can be used, e. g. NOR/SPI-NOR flash,
NAND flash, eMMC, SDCard, ...
- The design is focused on robustness so that in all cases (like or
example power loss during an update) it is guaranteed to recover
into an operational state.
- Using features like hardware watchdog, boot counter etc. guarantee
that even if for example the newly installed software does not
- All updates are strictly atomic and lead to strictly reproducible
- SWUpdate can check for hardware compatibility, so a common
SWUpdate image can be used for whole product families.
- Security is one of the key features of SWUpdate: images can be
cryptographically signed (authentication) and/or encrypted using
- SWUpdate supports a streaming mode so you can install updates on
the target without need for intermediate storage.
- Both pull and push modes are supported, i. e. the embedded system
either actively searches for updates, or a remote server
distributes these to the target systems.
- SWUpdate is fully integrated into common build systems like Yocto
- It is scriptable (LUA, Shell) and supports pre- and post-install
scripts so that it is easy to adjust to specific requirements.
- SWUpdate provides an open, well documented interface to back ends.
It has been successfully integrated into industrial provisioning
systems like hawkBit.
- SWUpdate is fully Open Source (GPLv2).
See also: SWUpdate flyer
tbot - Automatic Test Framework
The Story So Far:
Software Engineers are not really fond of test tools. They use
them, if the project management requires so, but usually they don't
love them. Why is this so?
Software development projects are often subdivided in phases
Specification, Design, Implementation, Testing, Documentation, and
Maintenance. Most software engineers consider the first three
phases creative and interesting, while the last three are more or
less boring. Good tools are made for a specific purpose. Test
tools are made for testing. Testing is boring. So while test tools
can help (for example, by reducing the time needed to run the
tests), they are not associated with the sexy parts of the
development process. Test tools are primarily made for managers, so
managers love them, developers don't.
In reality, there is often not such a hard cut between
implementation and testing - even a compiler run is some kind of
test (for syntax errors, for example). But test tools don't help
here, as they are made for testing, not for the implementation
phase. Well, most of them. Except tbot. tbot was written by
developers, for developers. It's main purpose is not to generate
test charts for the management (it does that, too, of course), but
to automate boring parts of the developer's work. So tbot is
focussed on the tasks that developers have to perform routinely, to
eliminate necessary, but non-creative parts of the daily work.
While most other test tools add
to the work a developer has to
perform, tbot actually reduces
the amount of work.
In the end, the developer has more time to focus on the creative,
mentally challenging, sexy parts of his job, and the manager can
access a lot of statistical data about performed tests. And
they all lived happily ever after...
A nice fairy tale? No! Try it out yourself:
- Tests are performed on real hardware.
- Even complex scenarios are fully supported (for example power
cycling, tests for boot loaders (e.g. U-Boot), operating systems
(e.g. Linux) and device drivers, applications, communication with
other systems etc.
- tbot is implemented in Python. Extensions and test cases are also
written in Python and thus very easy.
- tbot is modular and easy to configure. It can be flexibly adapted
to different lab equipment (for example computerized power
switching, plugging and removing of SDCards or USB sticks, etc.)
- Test cases can run other test cases, so that it is very easy to
construct test groups and hierarchies, or to re-use existing test
cases for other projects.
- An event-driven postprocessing allows to generate for example
statistical data or graphic representations of the test results.
Another interesting use case is the automated generation of
- tbot can easily be integrated into other CI and Test Systems like
Buildbot or Jenkins.
- tbot is completely Open Source (GPLv2).
See also: tbot flyer
Cross Development Tools and Target File System
The DENX Embedded Linux Development Kit
provides a complete and powerful
software development environment
for embedded and real-time systems.
It is available for ARM, PowerPC and MIPS processors
and consists of:
- Cross Development Tools
(Compiler, Assembler, Linker etc.)
to develop software for the target system.
- Native Tools (Shell, commands and libraries) which provide
a standard Linux development environment that runs on the target system.
- Firmware that can be easily ported
to new boards and processors.
- Linux kernel including the complete source-code with all
device drivers, board-support functions etc.
- Xenomai (Real Time Framework for Linux)
Extension for systems requiring hard real-time responses.
- SELF (Simple Embedded Linux Framework)
as fundament to build your embedded systems on.
All components of the ELDK are available for free
with complete source code under GPL and other Free Software Licenses.
Also, detailed instructions to rebuild all the tools and packages from scratch are included.
The ELDK can be downloaded for free from our server
as well as several
or ordered on CD-ROM for a nominal charge (99 Euro).
To order the CD please contact
Detailed information about the ELDK is available here
Embedded Linux Operating System
DENX helps you to get Linux running on your hardware. We port Linux
to your boards, develop device drivers and other low-level or
hardware-related software components according to your specifications.
We try to push the results of our work upstream, so it becomes available
in the standard
Linux kernel tree.
In addition, our development repository is publicly available
Xenomai Real-Time Framework for Linux
For projects requiring support for hard real-time behaviour and/or
emulation of other RTOS (like Vxworks or pSOS)
DENX prefers and recommends to use the
Real-Time Framework for Linux.
As a founding member of the Open Source
Automation Development Lab (OSADL
DENX supports Xenomai as one implementation of the OSADL-featured
hard real-time capable, POSIX standard conforming Linux kernel.
On our Xenomai Projects
page you can
find a list of Xenomai features and extensions that were developed or
driven by DENX.
On September 28, 2009, the Xenomai core development team met with
their users at the first "Xenomai User Meeting"
). Abstracts and PDF copies
of the presentations are available
The list of users and use cases presented at XUM-2009 gives also some
reference for what can be done with Xenomai, and which sort of
companies are relying on this technology.
Graphics Support for Embedded Systems
DENX has in-depth know-how in the development and deployment of
graphics drivers and toolkits for embedded systems. We developed and
support graphics drivers for U-Boot and Linux for several popular
graphics processing units, including for example the
controller family (like Mint, Lime, Coral, Carmine, etc.).
We develop drivers for DirectFB
See for example the application note
Qt for embedded Linux 4.5.2 on MPC5200 based board with Coral-P(A) GDC
Other Cool Stuff
Over time DENX has developed other interesting pieces of software
which we are happy to host in our git
Next to a root file system builder
not yet part of, but designed for our ELDK
, there is also
Test System) which is tightly coupled to the DULG documentation mentioned
Whoever has seen us in person on trade shows in Europe has very likely
external interrupt latency benchmark
The sources are just as readily
available as a pretty complete
15740) implementation for GNU/Linux systems.
Documentation, Questions & Answers for U-Boot and Embedded Linux
DENX maintains extensive documentation covering all topics needed to
get an Embedded Linux project started, like setup and configuration
of the development host, installation of the
, configuration, installation and use of the
boot loader and the
This also includes advanced topics
like options for root file systems, etc.
A collection of Frequently Asked Questions (with answers!) about
U-Boot, Embedded Linux, and similar topics can also be found
Consulting and Support
DENX provides Consulting and Support Contracts that allow you to get
professional help in your projects whenever you need it.
DENX offers Maintenance Contracts that guarantee you
your hardware will keep working with recent versions of U-Boot, Linux
and xenomai, so you can update your code whenever you want or have
We also offer contracts for Security Updates. With such a contract,
DENX will continuously monitor and evaluate the respective Security
Advisories and check these for relevance for your systems. We then
provide updates or fixes that are relevant for system security