Boot Time Optimization

From Texas Instruments Embedded Processors Wiki

Jump to: navigation, search


  • Image:Google-16x16.png Search for an article here:


Contents

Boot time optimization

Boot Time

"Boot Time" referred in this page is the time elapsed from "chip coming out of reset" to "Linux Prompt" This page considers under 2 seconds boot time as fast boot

In short

Reuse the existing knowledge. Lot of knowledge is available inside and outside of TI /* provide relevant links here */. Measure and identify boot time spenders. Optimize them. U-boot probably is one of the key areas to target.

Techniques

  • Optimize U-Boot
    • Choose the optimal EMIF settings based on NOR used
    • Optimize the NOR to RAM copy
    • Optimize Crc32
    • Avoid printfs
    • Avoid I2C or any other slow peripheral access during U-boot
  • Optimize Kernel
    • Remove unused components from Kernel
    • Use loadable modules option to defer initialization of components to after-boot.
      Example: network initialization.
    • Avoid Linux timer calibration loop
    • Avoid Kernel printks
  • Optimize Filesystem
    • Rebuild Rootfilesystem with minimal components
    • Use cramfs as rootfilesystem

Linux Boot Sequence

  1. ARM boots and starts executing U-boot code from NOR in-place
  2. U-boot copies Kernel to RAM
  3. U-boot copies filesystem to RAM (copy can be avoided using flash filesystem /* link to relevant page here */ )
  4. U-Boot sets parameters and starts Kernel
  5. Kernel uncompresses itself
  6. Kernel initialization
  7. Driver Initialization
  8. Init
  9. Init scripts
  10. Shell


see also:

  1. Measuring Boot Time
  2. All This For 1 Second Boot

For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article Boot Time Optimization here.
Leave a Comment
Personal tools