Bootloader的啟動流程有兩個階段:stage1和stage2。
一、Stage1完成的基本工作
1、基本硬體初始化
包括屏蔽所有的中斷、設定CPU的速度和時鐘頻率、RAM初始化、初始化LED、關閉内部指令和資料cache燈。
2、為加載stage2準備RAM空間,通常為了獲得更好的執行速度,通常把stage2加載到RAM空間來執行,必須為加載Bootloader的stage2準備好一段可用的RAM空間範圍。
3、拷貝stage2到RAM中,這裡要确定兩點:
stage2的可執行映像在固态儲存設備的存放其起始位址和終止位址
RAM空間的起始位址
4、設定堆棧指針sp,這是為了執行stage2的C語言代碼做準備。
二、stage2完成的基本工作
1、用彙編語言跳轉至main入口函數
2、初始換本階段要使用到的硬體裝置,包括初始化序列槽、初始化計時器等。
3、檢測系統的記憶體映射
4、加載核心映像和根檔案系統映像
5、設定核心啟動參數。