1 處理器啟動過程簡介
處理器上電后,PC寄存器固化了一個默認值
PC默認值用于決定第一條執行的指令
第一條執行指令隸屬于啟動程序
2 啟動程序(BootLoader)
系統上電后運行的第一個程序(Not Os)
根據運行階段、體積和功能的不同分為三個部分
BL0 - 固化于硬件中,用于初始化硬件,加載并運行BL1
BL1 - 存儲于外部設備中,用于初始化主存,加載并運行BL2
BL2 - 存儲于外部存儲設備中,用于引導操作系統執行3 S3C6410啟動過程
4 S5PV210啟動過程
4.1 啟動過程簡介
S5PV210使用的啟動方式是:外接的大容量Nand + 外接大容量DRAM + SoC內置SRAM。實際上210的啟動還要更好玩一些,210內置了一塊96KB大小的SRAM(叫iRAM),同時還有一塊內置的64KB大小的NorFlash(叫iROM)。210的啟動過程大致是:
第一步:CPU上電后先從內部IROM中讀取預先設置的代碼(BL0),執行。這一段IROM代碼首先做了一些基本的初始化(CPU時鐘、關看門狗···)(這一段IROM代碼是三星出廠前設置的,三星也不知道我們板子上將來接的是什么樣的DRAM,因此這一段IROM是不能負責初始化外接的DRAM的,因此這一段代碼只能初始化SoC內部的東西);然后這一段代碼會判斷我們選擇的啟動模式(我們通過硬件跳線可以更改板子的啟動模式),然后從相應的外部存儲器去讀取第一部分啟動代碼(BL1,大小為16KB)到內部SRAM。
第二步:從IRAM去運行剛上一步讀取來的BL1(16KB),然后執行。BL1負責初始化NandFlash,然后將BL2讀取到IRAM(剩余的80KB)然后運行。
第三步:從IRAM運行BL2,BL2初始化DRAM,然后將OS讀取到DRAM中,然后啟動OS,啟動過程結束。通過以上分析可以發現只能運行最大為96KB的bootloader,以上只是三星官方推薦的啟動方式,實際上并不一定采取這種啟動方式。
4.2 S5PV210啟動過程相關補充說明
210內部有iROM和iRAM,因此啟動時分兩個階段:內部啟動階段和外部啟動階段。對于內部啟動階段各種S5PV210的開發板都是相同的,對于外部啟動階段,不同開發板會有不同。IROM和IRAM
S5PV210出廠時內置了64KB iROM和96KB iRAM。iROM中預先內置燒錄了一些代碼(稱為iROM代碼),iRAM屬于SRAM(不需軟件初始化,上電即可使用)。210啟動時首先在內部運行iROM代碼,然后由iROM代碼開啟外部啟動流程。為什么需要設計iROM和iRAM?答案是為了支持多種外部設備啟動。
Second boot support
When 1 st boot mode fails, SD/MMC boot will be tried through SD/MMC channel 2 with 4-bit data。
當第一啟動模式失敗時,SD/MMC卡啟動模式下將會從SD/MMC2通道嘗試再次啟動。這種二級啟動是一種冗余設計。SoC中第一啟動介質故障而導致不能啟動時,可以從備用啟動介質啟動。我們做裸機實驗時從SD2啟動就是利用了這一設計特性。使用IROM啟動的好處
1、降低BOM成本。因為iROM可以使SOC從各種外設啟動,因此可以省下一塊boot rom(專門用來啟動的rom,一般是norflash)。
2、支持各種校驗類型的nand。
3、可以在不使用編程器的情況下使用一種外部存儲器運行程序來給另一種外部存儲器編程燒錄。這樣生產時就不用額外購買專用編程器了,降低了量產成本。BL0做了什么
關看門狗
初始化指令cache
初始化棧
初始化堆
初始化塊設備復制函數device copy function
設置SoC時鐘系統
復制BL1到內部IRAM(16KB)
檢查BL1的校驗和
跳轉到BL1去執行
S5PV210的啟動順序(不優先選擇Uart、USB啟動)先1st啟動,通過OMpin選擇啟動介質
再2nd啟動,從SD2
再Uart啟動
再USB啟動
上一篇:關于交叉編譯openssh的問題
下一篇:Tiny210 U-BOOT(二)----配置時鐘頻率基本原理
推薦閱讀最新更新時間:2025-06-22 15:11


