Optimize Boot Loader (Compact 2013)
This topic discusses strategies for optimizing the performance of the boot loader.
Boot Loader Quick Summary
You typically use the boot loader to place the run-time image into memory and then begin the OS start routine. In addition, you can use a boot loader to quickly download a new run-time image to a device from your development computer. The boot loader is usually located in nonvolatile storage on a device and executes when the system starts or resets.
Boot Loader Performance
Boot loader performance can be affected by the following factors:
- Device CPU and hardware characteristics, which can affect overall system performance or create performance bottlenecks in certain hardware devices.
- OS execution model, such as running execute in place (XIP) code from NOR flash or battery-backed RAM, which is much faster than fetching executable files from NAND flash into RAM before executing.
- OS image size and layout, which can affect executable file fetch time.
You can use any of the following actions to help improve the performance of your boot loader:
- Avoid unnecessarily clearing RAM during startup.
- Use a binary ROM Image File System (BinFS) instead of a single BIN image. BinFS is a file system that reads the binary image file format that Romimage.exe generates. BinFS parses the .bin file records of each region and reduces the time it takes the internal system function KernelRelocate to copy the variables.
BinFS enables you to use multiple XIP OS images, which reduces the size of the image that the boot loader needs to load into RAM at startup, because it pages required modules into RAM on demand.
- Remove unnecessary items from your image. This will also reduce the time it takes the internal system function KernelRelocate to copy the variables, and therefore, reduce the time it takes the image to load.
- Use a HIVE-based registry instead of ObjectStore. For more information about implementing the registry, see Optimize Kernel and OAL Initialization.
- To improve the user experience, add a splash screen or small text string for devices with a display that users will see during boot. Although this strategy does not improve startup performance, it can provide users with the perception of an improved startup performance if they can see an indication that startup is happening.