uboot啓動第2階段總結

uboot啓動階段就是start_armboot開始的

init_fnc_t

         cpu_init                          空的

         board_init                       初始化dm9000網卡,機器碼和啓動參數

         interrupt_init                   中斷初始化,uboot不使用中斷

         env_init 

         init_baudrate                  波特率初始化一般115200,其實第一階段已經初始化了

         serial_init                        空的

         console_init_f                 基本空的,gd->have_console = 1;設置了一個標誌位

         display_banner               打印version_string

         print_cpuinfo                   打印CPU時鐘的信息

         checkboard                     檢測開發板的名字

         init_func_i2c                    初始化IIC

         dram_init                          gd->bd->bi_dram中的信息,size和start——address

         display_dram_config        DRAM的信息,打印DRAM的大小

         mem_malloc_init              初始化uboot自己管理的堆內存

         mmc_initialize                   計算並打印SD卡的大小

         env_relocate                     環境變量重定位

         gd->bd->bi_ip_addr                  IP Address

         gd->bd->bi_enetaddr[reg]         MAC Address

         devices_init                         驅動設備初始化,基本空的

         jumptable_init                      不關注

         console_init_r                      第二次控制檯初始化,真正的初始化

         enable_interrupts                 空的

         loadaddr,bootfile                環境變量讀出初始化全局變量

         board_late_init                     空的


         eth_initialize                         空的

         x210_preboot_init    LCD初始化和顯示logo


         check_menu_update_from_sd    檢查自動更新


         main_loop            主循環

啓動過程特徵總結
(1)第一階段爲彙編階段、第二階段爲C階段
(2)第一階段在SRAM中、第二階段在DRAM中
(3)第一階段注重SoC內部、第二階段注重SoC外部Board內部

 

移植時的注意點
(1)x210_sd.h頭文件中的宏定義
(2)特定硬件的初始化函數位置(譬如網卡)

 

 

         

          

         

         

         

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章