Design Article
Understanding embedded-system-boot techniques
Mohit Arora and Varun Jain
7/5/2011 4:46 AM EDT
Accessing the reset configuration
Engineers often implement the design by means of an external buffer or a line driver, such as the 74LVC125, which drives either a logic one or a logic zero to the pins for reset configuration (Figure 4).
The reset signal usually connects to the enable pin of a tristate buffer—that is, an external line driver—so any change from one to zero or vice versa to the input of the tristate buffer appears as an input to the pins that eventually handle the reset configuration. This approach provides additional flexibility and control. For example, if one of the buffers controls whether PLL is enabled or disabled during boot-up, a buffer output can allow users to enable the PLL when the buffer connects to the drain-to-drain voltage and conversely disable it when the buffer connects to the source-to-source voltage. The number of pins available for this purpose usually constrains this approach. Note, too, that most external line drivers, such as that of the 74LVC125, integrate groups of four or eight buffers. To limit the implementation’s cost, define the buffer numbers in multiples of four.
Understanding embedded-system-boot techniques figure 5You can also load the reset configuration through an external serial interface. For a highly integrated complex microprocessor, it is impractical to either dedicate or share pins for the numerous available power-up options. This scheme conversely involves loading the chip-reset- configuration data from an external serial memory (Figure 5).
In a typical implementation flow, when system reset asserts, the chip establishes communication with the serial memory, subsequently transferring reset-configuration information to the microcontroller. Upon serial-data reception, the microcontroller configures system registers based on the received data and deasserts reset. This method provides the maximum flexibility in configuring options in system registers because serial memories can store a large number of data bytes.
In advanced serial-configuration schemes, the serial memory can even hold software code. In such cases, the system reads both reset-configuration data and boot code from external serial memory during the microprocessorreset sequence, thereby requiring few I/O pins. By reading data stored in, for example, external SPI (serial-peripheral- interface) memory, the system would also need to configure the SPI memory’s clock frequency along with the powerup options for the microprocessor and optionally load code into the microprocessor’s memory. The system would have to accomplish all these tasks before the negation of device reset, thereby ensuring that the chip is properly configured when exiting the reset state. Serial memories’ low cost, simple implementation, high flexibility, and optional software-boot code often make this option the preferred one for booting or loading the reset configuration.
Next: System-boot components
Engineers often implement the design by means of an external buffer or a line driver, such as the 74LVC125, which drives either a logic one or a logic zero to the pins for reset configuration (Figure 4).
Understanding embedded-system-boot techniques figure 5You can also load the reset configuration through an external serial interface. For a highly integrated complex microprocessor, it is impractical to either dedicate or share pins for the numerous available power-up options. This scheme conversely involves loading the chip-reset- configuration data from an external serial memory (Figure 5).
In a typical implementation flow, when system reset asserts, the chip establishes communication with the serial memory, subsequently transferring reset-configuration information to the microcontroller. Upon serial-data reception, the microcontroller configures system registers based on the received data and deasserts reset. This method provides the maximum flexibility in configuring options in system registers because serial memories can store a large number of data bytes.
In advanced serial-configuration schemes, the serial memory can even hold software code. In such cases, the system reads both reset-configuration data and boot code from external serial memory during the microprocessorreset sequence, thereby requiring few I/O pins. By reading data stored in, for example, external SPI (serial-peripheral- interface) memory, the system would also need to configure the SPI memory’s clock frequency along with the powerup options for the microprocessor and optionally load code into the microprocessor’s memory. The system would have to accomplish all these tasks before the negation of device reset, thereby ensuring that the chip is properly configured when exiting the reset state. Serial memories’ low cost, simple implementation, high flexibility, and optional software-boot code often make this option the preferred one for booting or loading the reset configuration.
Next: System-boot components
Navigate to related information


atul_iisc
7/6/2011 1:46 AM EDT
Nice article explaining the Booting process. Provides a good review of the booting process in a variety of embedded systems.
Sign in to Reply
s@mke10
7/6/2011 9:42 AM EDT
Great article.
Sign in to Reply
Dr DSP
7/21/2011 1:11 PM EDT
This is a great article to archive. It's difficult to know what part of it you will need on your next design but you will be able to use something...
Sign in to Reply
Robotics Developer
7/21/2011 11:24 PM EDT
Thanks for a good article! I enjoyed it and will use the information for sure.
Sign in to Reply
checrazzy
11/15/2011 5:09 AM EST
exactly what I needed!
Sign in to Reply
Luis Sanchez
12/15/2011 4:48 PM EST
Interesting boot-loader article! I have to give a glance to the U-boot universal boot loader you mention. It seems very good for big operating systems. And I suppose instead of using a computer with something like Hyper-Terminal software a microcontroller can due the part of the host computer through the UART or RS-232 serial port. Boot-loaders get even more complex when they have to handle the software upgrade process. They might boot-up the system in a different mode like the industry standard DFU (Device Firmware Upgrade) mode and after that, switch the device to the normal user mode. This can be done with only one value in a memory register and the system goes and reads such address and boot accordingly.
Sign in to Reply