In any stand-alone embedded system which contains a microprocessor, one of the first things to happen when the system comes out of reset is the processor runs a small piece of code called a boot copier, (or bootloader). The boot copier’s job is to locate the appropriate application software in non-volatile memory, copy it to RAM, initialize critical system components, then branch to the entry point of the application software. The block of data in non-volatile memory that contains the application software is commonly referred to as the “boot image”. Boot copiers can range in complexity from basic byte-for-byte copy routines to comprehensive applications that perform rigorous system-tests, choose from multiple software applications, then unpack, decompress and error-detect the proper application.
After reading this document, you will have the knowledge to implement your own custom boot copier software using the Nios II processor and Nios II IDE. Additionally, you will understand the basics of how to externally control the Nios II boot process.
This document does not address custom methods of configuring Altera FPGAs, only implementing a custom boot copier for a Nios II processor already configured in the FPGA.