PEI Foundation

PEI Foundation是PEI階段的一個Image,與底層硬體有關的一層,專門處理和指令集相關的平台結構,包含了SEC以及PEI的一小片段。在SEC階段結束後,PEI最一開始的code是一段Platform-specific的Machine Code,這在Platfom移植上會有困難。因此,我們會盡量讓PEI Foundation的code越小越好,以減少移植上的困難。

PEI Foundation主要負責了4個項目:

  1. Dispatch PEIMs。
  2. Maintain Boot Mode。
  3. Initial Memory。
  4. Invoke DXE Loader。

PEI Foundation會建立一個所有PEIMs都可以看到的System Table叫PEI Service Table,這可能被定義為Function,Command或者是Capability Manifested。因為PEI階段直到最後面才有Memory可以使用,因此指向PEI的Pointer會傳進每一個PEIM的Entry Point以及PPI (PEIM To PEIM Interface)。

而PEI Foundation提供了下列7種的服務:

  1. PPI Service - PEIM To PEIM Interface是用來讓PEIM之間做溝通,這個Service會存放在Temporary-RAM中,主要提供了4種Function:InstallPpi (), ReInstallPpi (), LocatePpi () and NotifyPpi ()。
  2. Boot Mode Service - 管理系統的Boot mode,像S3, S5, Normal boot, Diagnostic等,主要提供了2種Function:GetBootMode () and SetBootMode ()。
  3. HOB Service - 建立一個HOD的資料結構,收集並傳給下一個DXE階段,主要提供了2種Function:GetHobList () and CreateHob ()。
  4. Firmware Volume Service - 在FFS (Firmware File System)中尋找PEIMs以及其他Firmware Files,主要提供了3種Function:FfsFindNextVolume (), FfsFindNextFile () and FfsFindSectionData ()。
  5. PEI Memory Service - 管理永久記憶體在初始化前後的操作,主要提供了5種Function:InstallPeiMemory (), AllocatePages (), AllocatePool (), CopyMem () and SetMem ()。
  6. Status Code Service - 提供Debug Error Code的Reporting服務,主要Function為:PeiReportStatusCode ()。
  7. Reset Service - 提供系統Cold Boot or Warm Boot的服務,主要Function為:PeiResetSystem ()。

results matching ""

    No results matching ""