am335x uboot2016.05 (MLO u-boot.img)執行流程


am335x的cpu上電后,執行流程:ROM->MLO(SPL)->u-boot.img

第一級bootloader:引導加載程序,板子上電后會自動執行這些代碼,如啟動方式(SDcard、SPI、NOR),然后跳轉至第二級bootloader。這些代碼應該是存放在 176KB 的 ROM 中

第二級bootloader:MLO(SPL),用於硬件初始化,關看門狗,關中斷,設置CPU時鍾頻率、速度、加載uboot.img、dts等操作,MLO文件應該會被映射到 64 KB的 Internal SRAM 中。

第三級bootloader:u-boot.img, C代碼的入口

MLO與u-boot執行流程如下:

reset //(arch/arm/cpu/armv7/start.S)
save_boot_params_ret //(arch/arm/cpu/armv7/start.S)
  |- disable interrupts
  |- cpu_init_cp15 //(arch/arm/cpu/armv7/start.S)
  |   |- Invalidate L1 I/D
  |   |- disable MMU stuff and caches
  |- cpu_init_crit //(arch/arm/cpu/armv7/start.S)
  |   |- lowlevel_init //(arch/arm/cpu/armv7/lowlevel_init.S)
  |       |- Setup a temporary stack
  |       |- Set up global data
  |       |- s_init //(arch/arm/cpu/armv7/am33xx/board.c)
  |           |- watchdog_disable
  |           |- set_uart_mux_conf
  |           |- setup_clocks_for_console
  |           |- uart_soft_reset
  |- _main //(arch/arm/lib/crt0.S)
      
      |(MLO)如果是 MLO 文件
      |- board_init_f //(arch/arm/cpu/armv7/am33xx/board.c)
      |   |- board_early_init_f //(arch/arm/cpu/armv7/am33xx/board.c)
      |   |   |- prcm_init
      |   |   |- set_mux_conf_regs
      |   |- sdram_init //(board/ti/am335x/board.c) 初始化 DDR
      |- spl_relocate_stack_gd
      |- board_init_r //(common/spl/spl.c)                                              【完成u-boot.img  dts加載】
          |- ...
          |- spl_load_image //根據不同的啟動方式加載 u-boot 鏡像,
          |- jump_to_image_no_args //進入u-boot代碼運行
      
 
      |(U-Boot)如果是U-Boot 鏡像
      |- board_init_f //(common/board_f.c)
      |   |- ...
      |   |- initcall_run_list(init_sequence_f)  
      |   |- ...  
      |  
      |- relocate_code //(arch/arm/lib/relocate.S) 代碼重定位
      |- relocate_vectors //(arch/arm/lib/relocate.S) 向量表重定義
      |- Set up final (full) environment
      |- board_init_r //(common/board_r.c)
          |- initcall_run_list(init_sequence_r)//初始化各種外設
              |- main_loop()

詳細參考 BeagleBone Black 從零到一 (2 MLO、U-Boot) http://jexbat.com/2016/BBB-Uboot/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM