網路城邦
上一篇 回創作列表 下一篇   字體:
UEFI Introduction
2013/07/28 23:47:15瀏覽2580|回應0|推薦0

UEFI 簡介


    • 什麼是 UEFI ? 
    •  
Unified Extensible Firmware Interface
       定義了
OS
platform firmware
    之間溝通的介面。例如跟一般都會有firmware的GPU 卡。

      UEFI的出現是INTEL為了要取代傳統的 BIOS(Legacy BIOS) 然後發展EFI最後移交出去改名成UEFI

       
    • 為什麼UEFI?

    1. Legacy BISO的執行環境都是在16 bit下,之後的CPU儘管支援64 bit還是必須"額外"實作支援16 bit 環境以支援BIOS執行。於是像INTEL的vendor就想改變這點取代傳統的BIOS
    2. 16 bit的CPUaddressing可以到2^20 Bytes ,也就是說極限到1024 KBytes,這當然大大的限制了BIOS可以做的事情。
    3. 對開發者來說,Legacy BIOS多以ASM來開發,懂的人相對地少且對於開發速度也會有程度的受限。
    • UEFI Resource

          1. Intel 移交EFI後實際管理的單位是
      Unified EFI Forum
         因此在上面我們可以看到最新的SPEC.
        2. Intel Release了代號為Tiano 的EFI的實作後,我們可以直接從SourceForge去抓代號為Tianocore的Opensource project.

      UEFI and Platform Initialization(PI)

        • Background

          前一篇說明了UEFI的大概,也提到了Tiano這個OpenSource Project. 這一篇將簡介UEFI的PI。 

          過去Intel發展了 
      The Intel Platform Innovation framwork for UEFI
          或是"
      The Framework
          " 是一個符合UEFI規範的一個firmware實作。這一個幾乎以C來實作的framework支援了大部分的Intel CPU family。


          而目前,這個framework已經被更全面支援的UEFI Platform Initialization (PI)所取代了。UEFI和PI有兩個主要不同的點。

        1.  UEFI定義了OS, add-in driver和system firmware之間的Interface。(下圖藍色部分)
        2.  PI則定義了偏向Implementation的部分 e.g. 從 power on 到移交control給OS之間的所有操作。 (下圖綠色部分)
         
          PI負責從開機到UEFI可以work之間的流程,舉例來說,UEFI是負責跟OS做溝通,然而,UEFI本身並不處理memory initialization、recovery或platform initialization等等跟platform有關的事情。這些都是由PI做掉的。

          另外,UEFI跟PI的SPEC都是UEFI Fourm所制定的。 
          • PI 簡介
          • 如下圖,PI分成六個部分,
          從開機的過程來看,順序是由左到右。下面一一解釋各個流程在做什麼。
          1. SEC
          2. SEC是Security的簡稱,這一個phase是開機後第一個執行的phase。任務是確保在reset 或 power on之後的integraty是完整的。

          1. PEI
          2. PEI是pre-EFI initialization的簡稱。任務是先做CPU、Chipset及Memory等等的初始化。在這一個階段,PEI初始化基本的環境 for下一個 phase。另外,PEI執行完會有Hand-off block (HOB)傳給DXE

          1. DXE
          2. Driver Execution Environment這個階段負責enumerate及init device、初始化UEFI services、  及 protocol等等

          1. BDS
          2. Boot Dev Select這邊負責how and where to boot OS.

          1. TSL
          2. Transient System Load這個階段將control transit 給OS

        1. RT
        2. Runtime的階段已經脫離boot sequence了,這個階段是由OS執行中
        3. AL
        4. After Life指的是系統reboot或shutdown
        ( 知識學習科學百科 )
        回應 推薦文章 列印 加入我的文摘
        上一篇 回創作列表 下一篇

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