RedBoot™ is a comprehensive debug and bootstrap firmware solution for the development, deployment, and management of embedded devices. It supports a wide variety of embedded applications ranging from native stand-alone, proprietary and eCos RTOS based applications, through to embedded Linux based systems. RedBoot is fully open source, and free of royalty and license fees.
The feature set of RedBoot provides assistance in all phases of a product's life-cycle. In the initial development phases it supplies a standardized bootstrap and debug environment on commercial development boards, and on an OEM's own prototype hardware. During manufacturing it can provide application installation, power-on self tests (POST), and built-in diagnostic tests. Finally, when products are deployed, RedBoot provides the system bootstrap mechanism, site specific configuration ability, as well as a straightforward migration path for firmware, OS, and file system content upgrades.
RedBoot has been adopted by many semiconductor and development board manufacturers as their standard bootstrap firmware. All major architectures are supported including ARM, ColdFire, MIPS, PowerPC, SuperH, XScale and x86. RedBoot is the standard firmware shipped in all of Intel's XScale development boards. It has also been used in various boards from Freescale in their i.MX and PowerPC ranges, SH based boards from STMicroelectronics and SuperH, and Cirrus Logic's ARM boards. A wide variety of third-party development boards that feature RedBoot are available from ADI Engineering, Arcom, Analogue & Micro, Embedded Planet, RadiSys, SSV, Telelogic, and many others. Most development boards supported by eCosCentric's eCosPro® Developer's Kit also include a port of RedBoot. RedBoot has been deployed in embedded products from Axis, Buffalo, HP, Intel, Linksys, NETGEAR, Yamaha, Zyxel, and many others.
RedBoot is, in essence, a minimal eCos RTOS application, using the hardware abstraction layer (HAL) and device drivers from eCos to provide its portability and device access infrastructure. It therefore inherits the key eCos qualities of reliability, portability and configurability, and leverages the wide range of peripherals, processor ports, development and evaluation platforms already supported by the eCos HAL.
Typical flash memory footprints are less than 64kB for basic configurations, rising to 96kB or more for fully-featured systems that include TCP/IP & Ethernet connectivity, image decompression, filesystem, and Linux bootstrap support. The compact and configurable nature of RedBoot and eCos allows functionality to be enabled, customised, or removed to suit the target system's functional requirements and Flash budget. For example, network communications and filesystem access capabilities can be used to speed software development, and then removed for the product to minimise RedBoots overall flash footprint.
RedBoot has been architected for flexibility and rapid customisation. Interruptible boot scripts enable adaptable custom boot sequences that can automatically load application and data images from flash memory, removable memory cards, or even by downloading via an Ethernet connection.
Power-on self testing is readily implemented and new RedBoot commands may be created to provide vendor specific customizations such as POST and hardware diagnostics. These new commands can then be either inserted into the boot script or run interactively. In addition to the bootstrap of native and eCos RTOS based applications, RedBoot can also boot other operating systems, and in particular embedded Linux. Linux-specific features include architecture specific initialization of processor and board state, kernel boot parameters, kernel image decompression support, and kernel image loading from native ext2, JFFS2 and other file systems.
Both serial and Ethernet based communications can be used to connect to RedBoot for system management and file downloading. Both communications methods can also be used to directly connect to the target from a host-based debugger. Serial channels are generally available on even the most basic embedded development systems, and may be available on final production hardware for diagnostics and firmware upgrade purposes. Ethernet connections have become widely available on development boards and facilitate faster development cycles.
Supported communications protocols and formats include:
- Command line management console: terminal emulator (serial), telnet (Ethernet)
- Image file download: X-modem and Y-modem (serial), TFTP and HTTP (Ethernet)
- Image file formats: ELF, SREC, raw binary, gzip/zlib compressed binaries
- Network setup: BOOTP, DHCP, ping (Ethernet)
- Host-based debugger communication: GDB remote debug protocol (serial, Ethernet)
Flash Memory Management
Redboot incorporates its own simple flash based image storage system that provides the ability to manage multiple code and data images stored directly within the system's flash memory. Persistent configuration data such as networking parameters and the boot script are also stored in a reserved area of flash memory. Multiple flash device types can be accomodated enabling a single RedBoot binary to support multiple hardware versions.
RedBoot's flexible built-in image handling support simplifies system development and deployment, and even provides for the updating of RedBoot itself. Code can either be executed in place (if held in NOR flash), or copied (with decompression if required), into RAM prior to execution. The built-in support for decompression increases available flash storage capacity, and reduces download time. eCosCentric also provides the optional RBL (Robust Boot Loader) extension for reliable in-field flash upgrades. This ensures that backup copies of updated files are retained and will continue to be used should the upgrade process be interrupted or fail.
File System Support
RedBoot's built-in flash image storage system is suitable for many embedded applications, but for more demanding applications, full file system functionality is available. This supports a number of different file systems types including JFFS2 (Journaling Flash File System), MS-DOS compatible file systems, and the Linux ext2 file system. MS-DOS file systems can reside on either hard disks or removable cards such as MMC or Compact Flash. FAT12, FAT16 and FAT32 formats along with long file names are all supported. Linux Ext2 file system functionality is limited to read-only hard disk access. RedBoot provides set of commands common to all supported file systems which cover file writing, loading, moving and deletion; directory listing, creation and deletion; and file system mounting, unmounting and status information.
System and Application Debugging
Support for direct connection of the GNU source level debugger (GDB) to the target system is integrated into RedBoot. This enables immediate download and debugging of embedded applications from within the debugger environment. Developers can make use of all the standard GDB features such as single stepping, breakpoints, watchpoints, state inspection, and interruption of the application's execution. A communications channel is also provided that allows the application to send diagnostic messages for display on the host. The debug support is compatible with both the command line version of GDB, and GUI-based debugger incorporated in the Eclipse-based IDE supplied with the eCosPro Developer's Kit.
RedBoot also provides a command line interface (CLI) based maintainance console, through which developers have full access to all the commands provided by RedBoot. Commands cover communications, manipulation of persistent data, flash image management, file system management, image download, and code execution. Commands are also available to inspect, edit, fill, copy, compare, or checksum memory.
For complete technical details you can read the RedBoot User's Guide. The eCosPro Reference Manual also includes additional material on filesystems, and eCosPro specific RedBoot Robust Boot Loader (RBL) and RedBoot Extra Initialization (RBINIT) extensions. The RBL package provides the infrastructure for reliable in-field flash memory upgrades. The RBINIT package provides a mechanism to support file system based application upgrades.
eCosCentric delivers a range of RedBoot related commercial services to OEMs, board vendors, and semiconductor companies. Services on offer include porting, customization & new feature additions, and technical support. For commercial enquiries please contact us.