一、前置知識
irom
媽的,百度就沒人說清楚這是啥,都說用來啓動,我一個程序員也不知道這是什麼鬼,姑且當rom理解吧iram
個人理解是集成DRAM的東西 DRAM比sram快
icache
由於指令從內存讀取速度的限制,所以在cpu與內存之間放了一類高速的,容量較小的寄存器,以緩存的方式來提高指令讀取速度。
二、流程介紹
s5pv210啓動的三個階段BL0 BL1 BL2
BL0 是指S5PV210的iROM中固化的啓動代碼
關閉看門狗;
初始化 icache;
初始化堆棧;
順便貼一個irom啓動流程圖
BL1 是指在iRAM自動從外擴存儲器(nand/sd/usb)中拷貝的uboot.bin二進制文件的頭最大16K代碼
初始化RAM
設置時鐘;
判斷啓動設備(nand/sd/onenand 等),檢查校驗和,然後從啓動設備中拷貝前 16K 的代碼 到 IRAM 的 0xD0020000 處;
若是安全模式啓動,則進行完整性檢查;
跳轉到 IRAM 的 0xD0020010 地址上繼續運行;
BL2 是指在代碼重定向後在內存中執行的uboot的完整代碼
第一步 啓動其他外設
第二部 引導系統啓動
三者之間的關係:(Interal ROM固化代碼)BL0將BL1(bootloader的前16KB--BL1)加載到iRAM;
BL1然後在iRAM中運行將BL2(剩下的bootloader)加載到SDRAM;BL2加載內核,
把OS在SDRAM中運行起來,最終OS是運行在SDRAM(內存)中的。
這對於以後學習uboot很有幫助