2012年5月21日 星期一

UEFI/PI (2) 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是完整的。
      3. PEI
      4. PEI是pre-EFI initialization的簡稱。任務是先做CPU、Chipset及Memory等等的初始化。在這一個階段,PEI初始化基本的環境 for下一個 phase。另外,PEI執行完會有Hand-off block (HOB)傳給DXE
      5. DXE
      6. Driver Execution Environment這個階段負責enumerate及init device、初始化UEFI services、  及 protocol等等
      7. BDS
      8. Boot Dev Select這邊負責how and where to boot OS.
      9. TSL
      10. Transient System Load這個階段將control transit 給OS
      11. RT
      12. Runtime的階段已經脫離boot sequence了,這個階段是由OS執行中
      13. AL
      14. After Life指的是系統reboot或shutdown

    2 則留言:

    william30101 提到...

    我來了!!!!!!!1

    william30101 提到...

    哈~~
    終於找到你了