網路城邦
上一篇 回創作列表 下一篇   字體:
Security Phase (SEC)
2013/07/29 00:21:25瀏覽2152|回應0|推薦0

Security(SEC) Phase

SEC Phase 簡介

SECreset power-on PI ( Platform Initialization)的第一個phase定義在Platform Initialization Specification, Ver. 1.2.1,Volume 1, Chapter 13SEC必須確保firmware "完整" SEC他是相依於platformCPU的,也就是說必須針對不同的CPU或平台來做移植。另外,SEC大部分的實作都是在assembly下的,而且是不可以壓縮的。

SEC Phase 的責任

SEC有四個主要的任務分別如下:

1.     Restart SEC必須要處理所有的platform restart event,包含開機、重開機或是其他異常的重啟。

2.     Memory Sotre SEC必須要建立一塊臨時的memory在系統初始化前使用。使用例如CAR( Cache as Ram)SRAM的技術。

3.     Root of Trustestart SECpower on 開始要尋找和驗證PEI的最初步驟。目的是要保證Processor最開始的code是可以信賴的。

4.     Passing 傳送Handoff訊息和把controlPEI Fondation。傳送的訊息包含了a. 平台狀態、b. BFV(Boot Firmware Volume)位置及大小、c. temporary RAM的位置大小等等。

SEC透過

EFI_PEI_STARTUP_DESCRIPTOR

將上述Passing的資料passPEI

EFI_PEI_STARTUP_DESCRIPTOR

的資料結構是長這樣子的:

1

2

3

4

5

typedef struct {

    UINTN                   BootFirmwareVolume;

    UINTN                   SizeOfCacheAsRam;

    EFI_PEI_PPI_DESCRIPTOR  *DispatchTable;

} EFI_PEI_STARTUP_DESCRIPTOR;

SEC Platform Information PPI

在上面我們有提到SEC利用(強制使用)

EFI_PEI_STARTUP_DESCRIPTOR這個資料結構將Handoff德資訊passPEI。另外,我們也可以pass"額外"(optional)PPI 

EFI_SEC_PLATFORM_INFORMATION_PPIPEI。這個PPI 抽象化了PEI Fondation所需要用來discover dispatching PEIM的起始位置的platform-specific資訊。這個PPI也可以存在

EFI_PEI_STARTUP_DESCRIPTOR這個資料結構的最後一個參數裡(*DispatchTable)

Health Flag Bit Format

Health Flag Bit Format

SEC_PLATFORM_INFORMATION_PPI.PlatformInformation()

定義了PFI_HEALTH_FLAGS

存放由microcodehardware或是Itanium才有的PAL 產生的CPU statusHealth Flagbit format如下圖

下圖則是每一個bit的說明。

Self-Test State Parameter

Self-test state定義的參數for IA-32 Intel® processors Intel® Itanium® processor family 是一樣的。某些 bit可能沒辦法直接對應到IA-32CPU,這時候讀到的值就會是NULL

下圖說明了每一個bit 的意義。

如果Status顯示functionally restricted,我們可以從vm,ia,fp得到failure的訊息。下面列出導致functionally restricted的情況:

1.     Processor PAL偵測到且獨立出錯誤的component,所以不會被使用。

2.     Processor必須至少要有一個可以用的memory unitALUshifterbranch unit

3.     Floating-point may be disable

4.     For ItaniumRSE(Register Stack Engine)is  not required to work,但register renaming logic必須要能正常work

5.     Processor-controlled cachesregister files之間的path在測試的過程中必須要能work

6.     讀取firmware address space必須要能正常work

Processor-Specific Detail

下面以IA-32為例,解釋SEC PhaseIA-32架構下的運作狀況。

1.     Locating PEI Foundation

2.     使用 architecture defineHandoff statecontrol交給PEI

3.     初始化processor-controlled memory resource例如processor data cache

 

參考資料:http://clhjoe.blogspot.tw/2012/05/uefipi-3-securitysec-phase.html

           VOLUME 1: Platform Initialization Specification Pre-EFI Initialization Core Interface Version 1.2.1

( 知識學習科學百科 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=wens1689&aid=8034072