uboot原始碼分析2 啟動第二階段

2022-07-19 12:27:13 字數 547 閱讀 9303

注意:board_init中除了網絡卡的初始化之外,剩下的2行用來初始化ddr。

這裡的初始化ddr和彙編階段lowlevel_init中初始化ddr是不同的。當時是硬體的初始化,目的是讓ddr可以開始工作。現在是軟體結構中一些ddr相關的屬性配置、位址設定的初始化,是純軟體層面的。

注:這個函式只是對記憶體裡維護的那乙份uboot的env做了基本的初始化或者說是判定(判定裡面有沒有能用的環境變數)。當前因為我們還沒進行環境變數從sd卡到ddr中的relocate,因此當前環境變數是不能用的。

注:f表示是第一階段初始化,_r表示第二階段初始化

(1)第一階段為彙編階段、第二階段為c階段

(2)第一階段在sram中、第二階段在dram中

(3)第一階段注重soc內部、第二階段注重soc外部board內部

u boot原始碼分析 啟動第二階段002

我們先來看初始化函式表 init sequence lib arm board.c typedef int init fnc t void init fnc t init sequence 這些初始化函式會依次執行,我們乙個個的來看 arm920t cpu.c int cpu init void 對...

u boot原始碼分析 啟動第二階段002

我們先來看初始化函式表 init sequence lib arm board.c typedef int init fnc t void init fnc t init sequence 這些初始化函式會依次執行,我們乙個個的來看 arm920t cpu.c int cpu init void 對...

u boot第二階段原始碼分析

typedef int init fnc t void init fnc t init sequence void start armboot void 理解 1 init fnc t宣告為函式型別,這個函式型別的引數為空,函式返回值為int整型。2 init fnc t init sequence...