1. 程式人生 > >處理器啟動過程

處理器啟動過程

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啟動
X210開發板的啟動方式選擇

SoC通過OMpin來識別外部啟動介質。

從SD0的eMMC啟動:開發板收到預設就是從eMMC啟動,內部預先燒錄了android。

從SD2啟動:可以使用外接SD卡從SD2通道啟動,但這需要先破壞板載的eMMC中的android映象。破壞方法見九鼎官方的裸機教程文件《x210v3開發板裸機教程.pdf》中2.5.2節(P19)。OMpin設定和SD0啟動一樣。

USB除錯模式

總結:撥碼開關設定我們只需動OM5即可,其他幾個根本不需要碰。需要SD啟動時OM5打到GND,需要USB啟動時OM5打到VCC。
--------------------- 
作者:一萬HOURS 
來源:CSDN 
原文:https://blog.csdn.net/qq_20233867/article/details/70670104 
版權宣告:本文為博主原創文章,轉載請附上博文連結!