網路城邦
上一篇 回創作列表 下一篇  字體:
EFI Architecture
2013/07/28 13:00:24瀏覽2440|回應0|推薦0

EFIPhase比較

 

SEC

PEI

DXE

BDS

用途簡介
特點

  1. 開機第一個執行的程式碼

  2. 驗證平台與程式碼的可靠性

  3. Cache內建立暫存memory供後續phase執行

  1. 初始化

    1. 處理器

    2. 晶片組

    3. 主板

  2. 提供下一個phase一個完整的執行環境,最重要的是找到實體記憶體

  3. 與下一個Phase間用HOB溝通

  4. 處理S3 Resume / Recovery

  1. 初始化多數系統元件

  2. 提供載入作業所必須的環境

  3. 提供作業系統EFI Services (EFI System Table)

 

建立好boot時所需的console環境

依照boot順序到boot device載入OS loader將控制權交給OS

如果fail的話,將控制權轉回DXE

組成元件

(核心部分)

 

PEI Core

  1. Service

  2. Dispatcher

DXE Core

  1. Service (Architecture Protocol)

  2. Dispatcher

 

組成元件

(執行模組)

 

PEIM

 

DXE Driver

 

相關

 

PPI

HOB

Protocol

 

進行到下一個Phase的條件

 

執行完所有PEIM

最後執行DXE IPL進入DXE phase

執行完所有DXE Driver

最後Dispatcher呼叫BDS.Entry()

 

 

 

解釋名詞

 

通用

名詞

敘述

FV(Firmware Volume)

存放firmware的儲存空間,有可能有多個Firmware Volume,一開機執行的程式碼放在Boot Firmware Volume

FFS

Firmware Volume的檔案系統

SMM Mode

BIOS會提供SMM handler

Runtime phase之後會有部分的DXE core service可以在此階段用

HII

(Human Interface Infrastructure)

提供architecture for setup code

包含String & Font & Form(IFR)

Form (Setup)

IFR(Internal Form Representation)表示 (VFR轉換),架構類似HTML

CSM

功能:

提供legacy Os會用到的interrupt & table

載入option ROM

Boot legacy OS (Only support ACPI capable Legacy OS)

限制:

Not all DOS program will work



 

PEI & DXE

名詞

敘述

PEI / DXE Service

整個EFI架構者提供的核心function,提供執行模組一些會用到的函式,執行模組就可以用這些service function完成所期望的目標(初始化硬體元件...).

Dispatcher

負責驗證,載入,執行執行模組的程式,並且提供執行順序(與模組間相依性有關)的功能

PPI (PEI) / Protocol(DXE)

PEIM (PEI) / Driver(DXE) 間溝通橋樑,包含

Data

Function

Notifications

Notification

一種通知的機制,或者可以稱為call back. 平常程式的執行都是你指定要執行什麼程式碼,然後執行. Call back而是Programmer提供的一個函式給系統,你向系統(PEI Core/DXE Core)註冊在某個情況下要呼叫這個函式,Programmer去處理對應的情況下,要做的事情.

比較: Function-Programmer主動做某些事 , Notification被動被別人呼叫來做事

 

PEI

名詞

敘述

HOB

PEIM產生的data,用來傳遞給資料給DXE, HOBLink List的形態

第一個HOBPHIT (記錄Boot Mode)

最後一個HOBTermination HOB

記錄memory, firmware device相關資訊

GUIDed HOB可以存放自定的information

S3 Resume

記憶體恢復到sleep之前,並且不執行DXE

 

DXE

名詞

敘述

SOR

(Schedule On Request)

設在DXE Driver的相依敘述內,若有此mark表示預設不執行這個DXE Driver. 會有鄉對應的DXE Driver去清除SOR的標籤,讓原本有SOR markDXE Driver執行.

 

 

 

EFI Architecture Protocol

名稱

功能

Security

驗證firmware volume上的檔案

CPU

管理CPU cache, interrupt

取得頻率,processer based timer

Metronome

delay功能

Timer

提供Timer功能,Core在間隔某段時間後,來呼叫Programmer所提供的Notification function

BDS

DXE進入BDS的進入點

負責建立boot用的console

Watchdog Timer

提供timeout機制,若指定的時間內沒有執行完指定的code,Corereset或執行某段程式碼之後reset

Runtime

轉換runtime service & driver所使用的實體記憶體位置到與作業系統相同的虛擬記憶體位置

Variable

存取環境變數

Monotonic Counter

取得monotonic counter (64 bit,每次取得都比上次大)

Low 32bit : reset清成0, 每次GetNextMonotonicCount()1

High 32bit: 非揮發性的,Low 32bit overflow,或系統reset時加1

Reset

重置系統 (重開機)

Status Code

輸出Debug code到外部裝置

Real Time Clock

存取真實世界的時間

 

 

DXE Driver Type

種類

Type 1

Type 2

Driver Model

Non EFI Driver Model

EFI 1.1 Driver Model

執行順序

In early in the DXE phase

 

執行動作

提供protocol interface for DXE core

提供特定硬體的軟體function

Driver binding protocol

BDS階段會Connect IO driver

 

資料來源:

http://blog.xuite.net/sammy902583/DontThink?st=c&p=1&w=2439241

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

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