Please note as of Wednesday, August 15th, 2018 this wiki has been set to read only. If you are a TI Employee and require Edit ability please contact x0211426 from the company directory.

Boot Time Optimization

From Texas Instruments Wiki
Jump to: navigation, search

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 BootDaVinci_Optimization