First Stage Bootloader

information technology and software
First Stage Bootloader (GSC-TOPS-230)
Provides functionality to read the software images from flash memory, using redundant copies and recovery mechanisms to produce valid images
Overview
Software often has two main parts. One part is the main operating system (OS) image, which contains an OS kernel and run-time environment. The other part is the ram filesystem image, which contains application libraries. Both parts must be read from flash memory into the correct locations in DDR memory for the software to be fully operational. The system will store several copies of each file in flash memory, reducing the probability that radiation events will render a given file to be unreadable from flash memory. Previous bootloaders could read the main OS image from flash memory, read redundant copies of images, and synchronize flash memory usage between two processors sharing the same flash memory bank. However, previous bootloaders supported reading only one image from flash memory. They also do not support restarting watchdog timers, meaning the watchdog timer must be off during the boot process. The First Stage Bootloader improves on previous bootloader versions.

The Technology
The First Stage Bootloader reads software images from flash memory, utilizing redundant copies of the images, and launches the operating system. This bootloader finds a valid copy of the OS image and the ram filesystem image in flash memory. If none of the copies are fully valid, the bootloader attempts to construct a fully valid image by validating the images in small sections and piecing together validated sections from multiple copies. Periodically, throughout this process, the First Stage Bootloader restarts the watchdog timer. The First Stage Bootloader reads a boot table from a default location in flash memory. This boot table describes where to find the OS image and its supporting ram filesystem image in flash. It uses header information and a checksum to validate the table. If the table is corrupt, it reads the next copy until it finds a valid table. There can be many copies of the table in flash, and all will be read if necessary. The First Stage Bootloader reads the ram filesystem image into memory and validates its contents. Similar to the boot table, if one copy of the image is corrupt, it will read the remaining copies until it finds one with a valid header. If it doesn't find a valid copy, it will break the image down into smaller portions. For each section, it checks each copy until it finds a valid copy of the section and copies the valid section into a new copy of the image. The First Stage Bootloader reads the OS image and interprets it. If anything in the image is corrupt, it reads the remaining copies until it finds a fully valid copy. If no copy is fully valid, it will use individual valid records from multiple copies to create a fully valid image.
The heart of the NASA Center for Climate Simulation (NCCS) is the Discover supercomputer. In 2009, NCCS added more than 8,000 computer processors to Discover, for a total of nearly 15,000 processors.
Benefits
  • Increases software reliability
  • Improves update speed
  • Facilitates recovery of corrupted software images

Applications
  • Automotive manufacturing
  • IoT software
  • Embedded space systems
Technology Details

information technology and software
GSC-TOPS-230
GSC-17931-1
Stay up to date, follow NASA's Technology Transfer Program on:
facebook twitter linkedin youtube
Facebook Logo Twitter Logo Linkedin Logo Youtube Logo