ARM引導過程(s5pv210)

ARM引導過程(s5pv210)


1. 引導過程

s5pv210處理器有 iROM 與 iRAM 兩個存儲器作爲內部存儲器。iROM 有 64k 的空間,而 iRAM 有 96k 的空間。iROM 位於內部 ROM 中,而 iRAM 位於內部 SRAM 中。

在進行安全啓動的過程中,引導程序固化在 iROM 中。採用了 e-fuse (只能進行一次編程,以後便不能再進行更改)的形式。

引導程序主要由 iROM、第一引導順序(the first booting loader, BL1)與第二引導順序(the second booting loader, BL2)組成。iROM 又稱爲 BL0。其詳細內容見如下表格:

名字 依賴關係 存儲位置
iROM 平臺獨立 內部存儲區
BL1 平臺獨立 外部存儲區
BL2 指定平臺 外部存儲區

2. 引導順序

    其引導順序如下圖所示:     

這裏寫圖片描述

  1. iROM 初始化時鐘,堆棧等
  2. iROM將來自指定的引導設備的第一引導順序相關代碼加載到 SRAM 中,然後進行完整性檢測(160 個 e-fuse 會對加載驗證公鑰進行驗證),然後對BL1進行完整性檢測。引導設備由OM引腳指定,引導設備可以是

    • General NAND Flash memory
    • OneNAND memory
    • SD/ MMC memory (such as MoviNAND and iNAND)
    • eMMC memory
    • eSSD memory
    • UART and USB devices

  3. BL1 對 BL2 進行加載並進行完整性檢測。

  4. BL2 對時鐘、UART、DRAM進行初始化,在完成對 DRAM 的初始化檢測後,加載OS(操作系統)鏡像,由引導設備加載到 DRAM 。然後對 OS 鏡像進行完整性檢測。
  5. 引導完成後,將一切都交給操作系統。

3. 引導順序例子

例子中的引導過程可以分爲三個部分,如下圖所示:
這裏寫圖片描述

  1. 內部 iROM 加載過程
    1-1. 關閉看門狗
    1-2. 初始化指令緩存控制器
    1-3. 初始化堆棧與堆區域
    1-4. 檢查安全鑰匙
    1-5. 設置時鐘分頻,時鐘節拍,鎖相環(PLL)和時鐘源
    1-6. 檢測OM引腳及從 iRAM 加載 BL1。
    1-7. 如果安全啓動成功,則執行完整性檢測。
    1-8.完整性檢測通過,則將跳轉到BL1進行執行(0xDOO2_0010)。前16個字節存儲安全祕鑰。
  2. 內部 iRAM 加載過程
    2-1. 將BL2從引導驅動設備加載到 iRAM。
    2-2. 如果安全啓動成功,則執行完整性檢測。
    2-3. 如果完整性檢測通過,則將跳轉到BL2進行執行。
    2-4. 如果完整性檢測失敗,則停止BL1。
    2-5. BL2 初始化 DRAM 控制器。
    2-6. 從指定的引導設備中加載 OS 鏡像到 DRAM
    2-7. 跳轉到 OS 代碼進行執行(在 DRAM 中,0x2000_0000或者0x4000_0000)。
  3. DRAM加載過程
    3-1. 如果s5pv210在睡眠,深度睡眠等狀態中甦醒,則恢復原先裝載
    3-2. 跳轉到 OS 代碼進行執行

參考文獻

[1] S5PV210芯片手冊

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