追踨法蘭克

2012年4月26日 星期四

什麼是UEFI BIOS

這裡的文章以UEFI BIOS為主,UEFI (Unified Extensible Firmware Interface)它是一個以Intel EFI為基礎,由各BIOS vendor 和相關 vendor 所定義的規範,用來取代Legacy BIOS的新韌體架構。它以C語言為主,使得它的架構更為模組化(modulize)、偵錯方便、開發較易、維護較易,也突破了Legacy BIOS的限制,類似於一個低階的作業系統,把BIOS的工作做完了,還能在開機階段
做更多的事情,這對於未來許多Chipset vendor和OS vendor要整合一些硬體和OS的技術更為方便。

UEFI開機有以下幾個階段:

SEC: Security Phase是用assembly所撰寫,CPU會動起來且會把cache當作RAM來使用,它會驗證PEI階段的code是否是正常可執行。

PEI: Pre-EFI Phase 就開始用C語言來撰寫,它會在cache裡執行,會初始化基本的硬體裝置,但不是完整的初始化,最重要的工作是把記憶體給初始化好。

DXE: Driver Execute Enviroment Phase, 記憶體已初始化完成,開始做完整的初始化硬體裝置和分配硬體資源(MEMORY、IRQ、IO、DMA),

BDS: 在Boot Device Selection Phase 開始嘗試連接開機的裝置,並嘗試把控制權交給OS,如果失敗會回到DXE繼續把該初始化的硬體給初始化好,或是顯示沒有開機裝置的訊息。

TSL: 在Transient System Load,其本的開機該做的都做完了,這裡是一個叫Shell的環境,可以執行一些UEFI的Application. 一般我們不會選擇進入這裡,會直接進入OS.

RT: Run time, 也就是已經開到作業系統階段,可以執行一些runtime service, 或是跟OS上的Driver 或Application配合,也有一些SMM的程式是在這階段會中斷且執行它。

AL: After life, 關機後,這些程式就會消失了,runtime service也不會存在。

沒有留言:

張貼留言