對於S5PV210加載u-boot過程的理解

    本文對整體的加載邏輯進行梳理,不作詳細說明,學習過程主要參考《嵌入式Linux學習筆記(基於S5PV210、TQ210)》。

    上電後最先運行的時iRom中的代碼( BL0, 由三星固化,不能修改,別人能不能改不一定閉嘴) 會根據OM引腳配置選擇一種啓動方式, 主要用到sd卡啓動和Nandflash啓動,UART和USB啓動沒有測試過。對於沒有代碼的板子,使用SD啓動,SD中存放的當然就是u-boot了,啓動u-boot後,通過tftp 或者 其它方式將uboot將u-boot代碼寫入到nand中。 此時更改OM配置就能從Nand中啓動了,不再使用SD卡。

    對於iRom加載的代碼(BL1, 存放在SD卡或Nand中),有格式要求,不然處理器也不知道加載多長的代碼。這個代碼必須以一個特定的數據頭開始,且長度不超過16K,處理器會根據數據頭讀取實際的代碼長度。當啓動方式爲SD裏,這段代碼的必須從SD卡的512B的位置開始存放,這是處理器的規定,在Nand中時,則是從0位置開始。

    因爲u-boot的代碼超過了16k,所以u-boot只能分成兩段加載,16K代碼裏必須初始化SDRAM,然後將另一段u-boot代碼(BL2)加載到SDRAM中運行。

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