Thursday, May 2, 2013

UEFI Boot Services vs Runtime Services

 

      在之前的文章中有提到UEFI的系統大概可以區分兩個階段,起初是Boot Service再來就是Runtime Service(RS)如紅框所涵蓋的程序都可以稱為RS。

image

區分這兩個Service最重要的一項轉類點函數為

  • ExitBootServices()

讓我們稍微的Trace一下Code來感覺一下。

%%% In My Case (Maybe Different source code has signification procedure for costumer) %%%

發現ExitBootServices()會處在universal\acpi\acpifpdtsupport\acpifpdtsupport.c檔案中,

acpifpdtsupport(ACPI Firmware Performance Data Table Support)

經過一番波折後發現,acpifpdtsupport.inf檔案會發現有inclulde AcpiFPDTSupport.dxs

透過.dxs(Dependency eXpreSsion)找出了觸發的條件為

  1. EFI_BOOT_SCRIPT_SAVE_PROTOCOL_GUID
  2. EFI_ACPI_SUPPORT_GUID
  3. EFI_CPU_ARCH_PROTOCOL_GUID

以上三項Protocols啟動後便會觸發

  • InitailizeAcpiFPDTSupport()

 

透過上敘的過程中會發現.inf和.dxs對於UEFI的重要性。

No comments:

Post a Comment

Register Transfer Level Design with Verilog (1) [ebook]

設計程式之所以有趣不外乎是它的千變萬化,同樣的結果卻有不同的寫法。 但這些不同寫法當中也並沒有分誰對誰錯,也沒有制定標準來規範何事該用何解。 這也就是我們設計者的珍貴!! [1] Primitive Instantiations 在Verilog中最基本的邏輯...