General Hydrogen Corporation


High Robustness Bootloader for x86 Platform





Progress Report 1

May 30, 2003





Darryl Gamroth 0123949

CEng 499A Project


University of Victoria supervisor:

Dr. Daler Rakhmatov

Industry  supervisor:

Henrik Christiensen


1        Introduction


1.1    Purpose

The purpose of this document is to introduce the concept of a high reliability bootloader; what is does and how it will be implemented.


1.2    Scope

The finished product shall start an embedded controller from the off state and provide the following services:

  • Basic system initialization
  • Method to load new software
  • Validate installed software image
  • Provide a minimal user interface


Is must be able to do this while maintaining the system in a safe state.


1.3    Definitions


Common abbreviation for the Intel 80x86 (such as 80386, 80486) family of processors. The 80x86 is the processor family used in the Windows based personal computer


Acronym for Basic Input/Output System.  BIOS is the name for the common firmware present on the PC.




1.4    Overview

Section 2 describes the problem which this effort addresses and the proposed solution.  Section 3 introduces the group members.  Section 4 has an approximate time line in which the project will be completed.


2        Project Description

General Hydrogen is developing a custom embedded controller which is to be used in various system controlling hydrogen systems.  A decision was made not to purchase commercial BIOS due to issues to licensing costs and the ability to control system startup.




The initial framework for this project will be RedHat Software’s RedBoot Bootloader.


2.1    Overview of RedBoot

From the RedBoot Web Page


RedBoot is a complete bootstrap environment for embedded systems. Based on the eCos Hardware Abstraction Layer, RedBoot inherits the eCos qualities of reliability, compactness, configurability, and portability.


RedBoot allows download and execution of embedded applications via serial or Ethernet, including embedded Linux and eCos applications. It can be used for both product development (debug support) and in deployed products in the field (flash update and network booting).


Ethernet download and debug support is included, allowing RedBoot to retrieve its IP parameters via BOOTP or DHCP, and program images to be downloaded using TFTP. Images can also be downloaded over serial, using X- or Y-modem.

RedBoot can be used to communicate with GDB (the GNU Debugger) to debug applications via serial or Ethernet, including the ability to interrupt a running application started by GDB.


An interactive command-line interface is provided to allow management of the Flash images, image download, RedBoot configuration, etc., accessible via serial or Ethernet. For unattended or automated startup, boot scripts can be stored in Flash allowing for example loading of images from Flash or a TFTP server.


2.2    Proposed Solution

The eCos operating system already supports the Intel x86 family of processors, unfortunately it requires the system to have an operational BIOS.  As no BIOS is present, eCos will be adapted to work on a bare x86 embedded board.


Of paramount importance is the system initialization sequence.  As this controller will be controlling a safety critical system, it is important that the firmware not cause system to operate in an unsafe manner; for example on boot the system could accidentally open a high pressure valve.


Once the eCos adaptation is completed and the proper device drivers written, RedBoot will be modified to provide additional services not present.  To prevent improper control software from being loaded, software validation will be added such that only signed applications can be loaded.


3        Team Description


The team is comprised of one team member, Darryl Gamroth, who is currently in 4A Computer Engineering: Systems.  Darryl specializes in embedded system development, systems design and optimization.


This project is conducted under contract from General Hydrogen Corporation under Henrik Christiensen, group leader of the embedded software engineering team.  Faculty sponsorship is provided by Daler Rakhmatov of the faculty of electrical engineering.


4        Timeline


  • Set up development system for eCos
  • Set up network for remote download, BOOTP, TFTP etc
  • Start porting eCos



  • Finish port of eCos
  • First deliverables to General Hydrogen for early testing
  • Research BIOS replacements for more functionality
  • Write device drivers for specific hardware (IrDA)



  • Program signing
  • Design review
  • Final testing
  • Final report