General Hydrogen Corporation
High Robustness Bootloader for x86 Platform
Progress Report 1
Darryl Gamroth 0123949
CEng 499A Project
Dr. Daler Rakhmatov
The purpose of this document is to introduce the concept of a high reliability bootloader; what is does and how it will be implemented.
The finished product shall start an embedded controller from the off state and provide the following services:
Is must be able to do this while maintaining the system in a safe state.
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.
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.
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.
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.
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.
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.