UEFI Boot Flow系列之DXE

轉自CeliaQianhj

DXE: Driver Execution Environment

爲什麼要有DXE Phase?

大部分系統的初始化工作都是在DXE 階段實現的。

DXE Phase由以下幾部分組成:

1. DXE Core (DXE Foundation)

     產生一組Boot Services, Runtime Services, DXE Services。 由boot service code組成,boot到OS之後就不存在了。

2. DXE Dispatcher

    負責發現並以正確的順序執行DXE Drivers。

3. DXE Drivers

    負責初始化CPU,Chipset,系統組件以及爲Sysem Services、控制檯和啓動設備提供系統概要。

這幾部分協同工作以完成platform的初始化,並提供啓動到操作系統所要求的services.

DXE Phase與PEI Phase的關係:

可以執行DXE Phase的唯一的條件是:有一個有效的HOB List。 有很多種方式產生HOB List, PEI只是其中一種。所以DXE Phase之前並不要求一定先執行PEI Phase。

DXE Phase與BDS Phase的關係

DXE Phase與BDS Phase協同工作以建立工作臺並嘗試boot OS。當OS成功啓動,即BDS Phase開始的時候,DXE Phase就結束了。

DXE Driver 的分類:

1. Early DXE Driver--Platform initialization Drivers

       a. 在DXE Phase最早執行的Driver

       b. 包含Dependency Expression Syntax(DEPEX) 來描述Dispatch的順序。

       c. 典型的包含:

              Basic Services

              Processor Initialization Code

              Chipset Initialization Code

              Platform Initialization Code

       d. 產生Architectural Protocols

2. EFI Drivers that follow EFI Driver Model

        a. 初始化的過程中不會涉及到硬件

        b. Follow EFI Driver Model

        c. 典型的提供對Console Devices 和 Boot Devices的訪問

        d. Abstract Bus Controller

        e. 只有Boot OS 所需要的Driver才被初始化

        f. DXE Dispather完成的時候才被呼叫

        g. 像個Driver一樣被執行

        h. 需要建立控制檯(Keyboard,Video)和處理EFI Boot Option(Boots OS)的時候要連接EFI Drivers

 

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