ARM系統(tǒng)預引導固件的新機遇-UEFI
ARM處理器已經在智能手機市場占主導地位,并越來越成為整個嵌入式領域的主流。最近,ARM處理器也進軍服務器領域,追求計算連續(xù)性。
本文引用地址:http://butianyuan.cn/article/150337.htm然而,歷史上,ARM系統(tǒng)沒有一個預引導固件的標準。這使得每個設計都有自己獨特的與所引導的操作系統(tǒng)緊密結合的模式。這種傳統(tǒng)的方法意味著固件開發(fā)者必須保持完全不同的代碼庫,即使系統(tǒng)可能使用的外圍設備(網絡,SATA接口,USB控制器等)和整個設計功能集是相同的。傳統(tǒng)的ARM設計依賴諸如UBoot,Redboot,或專有軟件啟動軟件包。
如何有效地開發(fā)生產這些產品來滿足快捷上市需求已成為一個挑戰(zhàn)。很有必要用某種形式的融合固件基礎設施來實現(xiàn)代碼重用的最大化,使這些產品可在有限的工程資源條件下實現(xiàn)更快推上市場,并同時添加創(chuàng)新功能。
統(tǒng)一可擴展固件接口(UEFI)對ARM系統(tǒng)的預引導固件是一個新機遇。 UEFI負責定義操作系統(tǒng)和系統(tǒng)固件之間以及固件驅動程序和系統(tǒng)固件之間的接口。此外,UEFI的平臺初始化(PI)負責定義固件到芯片之間和固件內部的接口。 UEFI是處理器架構無關。
ARM公司,蘋果,惠普和微軟的專家們一起確定了UEFI的ARM綁定。這樣,使用UEFI就可以最大限度地實現(xiàn)不同設計間的代碼重用,包括那些使用不同的處理器架構的設計。
歷史
在UEFI之前,有EFI(可擴展固件接口)。EFI最初創(chuàng)立于1998年,為的是讓使用英特爾安騰處理器的系統(tǒng)擺脫BIOS對設計大型計算機的束縛,例如,BIOS對原有8259中斷控制器的依賴,僅有64K的IO端口空間,僅有192K的OptionROM執(zhí)行空間,單一的PCI段組。所有這些都影響系統(tǒng)的可擴展性。我們也預見到將要遇到的2.2TB主引導記錄(MBR)硬盤驅動器分區(qū)限制,并定義了新的GUID分區(qū)表(GPT)格式。
在擺脫束縛的同時,EFI還采用了一個模塊化的,靈活的可擴展體系結構,并使用高層次的編程語言。創(chuàng)建EFI時就考慮到它應與處理器架構無關,當時就支持安騰,x86和一個與處理器無關的字節(jié)代碼,叫EFI字節(jié)代碼(EBC)。
EFI是一個英特爾公司擁有的規(guī)范定義操作系統(tǒng)和系統(tǒng)固件之間,以及設備引導驅動程序和系統(tǒng)固件之間的接口。英特爾還創(chuàng)建了“框架”來定義系統(tǒng)固件內部接口以使EFI的實現(xiàn)進一步模塊化。
2005年,計算機行業(yè)決定組建UEFI論壇來規(guī)范EFI和“框架”所涵蓋的接口。英特爾貢獻了EFI和“框架”規(guī)范給UEFI論壇作為新的起點。名稱從EFI變?yōu)閁EFI(U為統(tǒng)一的縮寫)標志著定義、推廣和使用的任務從此落在業(yè)界的肩膀上。
Figure 1: The UEFI Forum
由UEFI論壇定義的第一個規(guī)范(UEFI 2.0)在AMD和英特爾的幫助下定義了x64處理器的綁定。 “框架”也演變成了平臺初始化(PI)規(guī)范。UEFI的ARM綁定作為UEFI 2.3規(guī)范的一部分于2009年公布。
開源社區(qū)“tianocore.org”于2004年開始,采用BSD許可證。隨著ARM綁定的公布,蘋果和惠普向tianocore.org貢獻了UEFI的參考實現(xiàn),其中對Beagle Board(beagleboard.org)的一個實現(xiàn),使硅片供應商可為他們的硬件提供UEFI的驅動程序。 ARM公司近日貢獻了使用Cortex A9 多核處理器的Versatile Express參考平臺的核心代碼,以及
· 修復了ARM GCC工具鏈的構建環(huán)境
· ARM的RealView仿真底板代碼的更新
· 新的包含ARM參考平臺通用組件的ArmPlatformPkg
· 支持TrustZone控制器
· 支持多核
· 支持PL18x MMC卡控制器
· 一個特制的啟動設備選擇BDS庫以支持直接啟動Linux
有關在ARM上實現(xiàn)UEFI的優(yōu)越性和UEFI論壇組織結構的詳細說明,請見下回分解。
現(xiàn)在我將探討它,特別是在ARM的系統(tǒng)上的優(yōu)越性。我也會更詳細地描述UEFI論壇的組織結構。
評論