ARM系統預引導固件的新機遇- UEFI
ARM處理器已經(jīng)在智能手機市場(chǎng)占主導地位,并越來(lái)越成為整個(gè)嵌入式領(lǐng)域的主流。最近,ARM處理器也進(jìn)軍服務(wù)器領(lǐng)域,追求計算連續性。
本文引用地址:http://dyxdggzs.com/article/257847.htm然而,歷史上,ARM系統沒(méi)有一個(gè)預引導固件的標準。這使得每個(gè)設計都有自己獨特的與所引導的操作系統緊密結合的模式。這種傳統的方法意味著(zhù)固件開(kāi)發(fā)者必須保持完全不同的代碼庫,即使系統可能使用的外圍設備(網(wǎng)絡(luò ),SATA接口,USB控制器等)和整個(gè)設計功能集是相同的。傳統的ARM設計依賴(lài)諸如UBoot,Redboot,或專(zhuān)有軟件啟動(dòng)軟件包。
如何有效地開(kāi)發(fā)生產(chǎn)這些產(chǎn)品來(lái)滿(mǎn)足快捷上市需求已成為一個(gè)挑戰。很有必要用某種形式的融合固件基礎設施來(lái)實(shí)現代碼重用的最大化,使這些產(chǎn)品可在有限的工程資源條件下實(shí)現更快推上市場(chǎng),并同時(shí)添加創(chuàng )新功能。
統一可擴展固件接口(UEFI)對ARM系統的預引導固件是一個(gè)新機遇。 UEFI負責定義操作系統和系統固件之間以及固件驅動(dòng)程序和系統固件之間的接口。此外,UEFI的平臺初始化(PI)負責定義固件到芯片之間和固件內部的接口。 UEFI是處理器架構無(wú)關(guān)。
ARM公司,蘋(píng)果,惠普和微軟的專(zhuān)家們一起確定了UEFI的ARM綁定。這樣,使用UEFI就可以最大限度地實(shí)現不同設計間的代碼重用,包括那些使用不同的處理器架構的設計。
歷史
在UEFI之前,有EFI(可擴展固件接口)。EFI最初創(chuàng )立于1998年,為的是讓使用英特爾安騰處理器的系統擺脫BIOS對設計大型計算機的束縛,例如,BIOS對原有8259中斷控制器的依賴(lài),僅有64K的IO端口空間,僅有192K的OptionROM執行空間,單一的PCI段組。所有這些都影響系統的可擴展性。我們也預見(jiàn)到將要遇到的2.2TB主引導記錄(MBR)硬盤(pán)驅動(dòng)器分區限制,并定義了新的GUID分區表(GPT)格式。
在擺脫束縛的同時(shí),EFI還采用了一個(gè)模塊化的,靈活的可擴展體系結構,并使用高層次的編程語(yǔ)言。創(chuàng )建EFI時(shí)就考慮到它應與處理器架構無(wú)關(guān),當時(shí)就支持安騰,x86和一個(gè)與處理器無(wú)關(guān)的字節代碼,叫EFI字節代碼(EBC)。
EFI是一個(gè)英特爾公司擁有的規范定義操作系統和系統固件之間,以及設備引導驅動(dòng)程序和系統固件之間的接口。英特爾還創(chuàng )建了“框架”來(lái)定義系統固件內部接口以使EFI的實(shí)現進(jìn)一步模塊化。
2005年,計算機行業(yè)決定組建UEFI論壇來(lái)規范EFI和“框架”所涵蓋的接口。英特爾貢獻了EFI和“框架”規范給UEFI論壇作為新的起點(diǎn)。名稱(chēng)從EFI變?yōu)閁EFI(U為統一的縮寫(xiě))標志著(zhù)定義、推廣和使用的任務(wù)從此落在業(yè)界的肩膀上。
Figure 1: The UEFI Forum
由UEFI論壇定義的第一個(gè)規范(UEFI 2.0)在A(yíng)MD和英特爾的幫助下定義了x64處理器的綁定。 “框架”也演變成了平臺初始化(PI)規范。UEFI的ARM綁定作為UEFI 2.3規范的一部分于2009年公布。
開(kāi)源社區“tianocore.org”于2004年開(kāi)始,采用BSD許可證。隨著(zhù)ARM綁定的公布,蘋(píng)果和惠普向tianocore.org貢獻了UEFI的參考實(shí)現,其中對Beagle Board(beagleboard.org)的一個(gè)實(shí)現,使硅片供應商可為他們的硬件提供UEFI的驅動(dòng)程序。 ARM公司近日貢獻了使用Cortex A9 多核處理器的Versatile Express參考平臺的核心代碼,以及
· 修復了ARM GCC工具鏈的構建環(huán)境
· ARM的RealView仿真底板代碼的更新
· 新的包含ARM參考平臺通用組件的ArmPlatformPkg
· 支持TrustZone控制器
· 支持多核
· 支持PL18x MMC卡控制器
· 一個(gè)特制的啟動(dòng)設備選擇BDS庫以支持直接啟動(dòng)Linux
有關(guān)在A(yíng)RM上實(shí)現UEFI的優(yōu)越性和UEFI論壇組織結構的詳細說(shuō)明,請見(jiàn)下回分解。
現在我將探討它,特別是在A(yíng)RM的系統上的優(yōu)越性。我也會(huì )更詳細地描述UEFI論壇的組織結構。
優(yōu)越性
盡管現有的ARM預引導固件并沒(méi)有BIOS的束縛,使用UEFI標準對ARM預引導固件仍有很多優(yōu)越性。 OEM / ODM廠(chǎng)商一直在試圖降低開(kāi)發(fā)成本。代碼共享是在預引導固件領(lǐng)域實(shí)現這目標的一種方式。
ARM和x86都注重計算連續性,UEFI不僅使得在A(yíng)RM產(chǎn)品之間或在x86產(chǎn)品之間代碼共享,還可以讓代碼在不同處理器架構的產(chǎn)品之間共享。產(chǎn)品可以共享外圍設備(網(wǎng)絡(luò ),SATA,USB控制器等),以及眾多的設計功能集。
圖2顯示了從x86到ARM的一個(gè)移植有99.42%的代碼不需要更改。
圖2: ARM移植中添加和更改的程序行數
模塊化的UEFI技術(shù)還可以使芯片廠(chǎng)商能夠為自己的硬件提供驅動(dòng)程序。這使得OEM / ODM廠(chǎng)商能夠靈活地使用來(lái)自不同供應商的模塊,擴大了選擇余地。
UEFI在A(yíng)RM的實(shí)現提供了真正獨立于操作系統的啟動(dòng)解決方案,而其他大多數現有的ARM啟動(dòng)解決方案(UBoot,小內核等)是與他們的支持操作系統相耦合的。對計算連續性的追求也包括支持Windows和Linux等多個(gè)操作系統。
把預引導固件標準化于UEFI也使潛在的獨立固件供應商能夠進(jìn)入市場(chǎng)提供支持。這將有可能讓這些廠(chǎng)商為多個(gè)客戶(hù)提供支持,有效地部署模塊,并提供可擴展的共同解決方案。這種標準化也將減少芯片廠(chǎng)商的開(kāi)發(fā)成本,現在他們只需要支持一種類(lèi)型的驅動(dòng)程序給所有的OEM/ ODM來(lái)整合。這可以提高驗證效率和調試的能力。
對于操作系統廠(chǎng)商,這種標準化使它們能夠集中在同一個(gè)引導程序方面的投資。這種標準化也將為獨立軟件開(kāi)發(fā)商提供新的創(chuàng )新的機會(huì )。
組織結構
UEFI論壇是一個(gè)非贏(yíng)利的合作貿易組織,旨在促進(jìn)和管理UEFI標準。 AMD,安邁,蘋(píng)果,戴爾,惠普,IBM,系微,英特爾,聯(lián)想,微軟和鳳凰科技是發(fā)起人在董事會(huì )任職。 ARM公司,博通,博科,ARCI,Emulex,富士通,鴻海,浪潮,LSI,百敖軟件,日電,英偉達,甲骨文,QLogic,桑迪亞國家實(shí)驗室,希捷,東芝,威盛和威睿是貢獻者成員,還有130多個(gè)公司和個(gè)人的使用者成員。這是在預引導固件行業(yè)最廣泛的行業(yè)代表。
如圖3所示,論壇有四個(gè)工作組。發(fā)起者和貢獻者有機會(huì )在這些工作組貢獻和施加影響:
圖3: UEFI 論壇組織結構圖
工業(yè)通訊工作組(ICWG)
ICWG旨在通過(guò)教育,宣傳和營(yíng)銷(xiāo)各種方案使業(yè)界對UEFI規范有清楚的認識并鼓勵業(yè)界普及其使用。ICWG與ODM和OEM,產(chǎn)業(yè)界的合作伙伴,技術(shù)聯(lián)盟/協(xié)會(huì )團體同行,以及行業(yè)媒體進(jìn)行交流和協(xié)作,以達到他們對UEFI的認識和廣泛采納。
ICWG負責有關(guān)UEFI論壇進(jìn)展和成功的對外交流。這個(gè)工作組將制定如新聞稿,新聞文章,白皮書(shū),演示文稿,相關(guān)文件等必要的技術(shù)和市場(chǎng)營(yíng)銷(xiāo)方式。
ICWG將幫助指引會(huì )員公司的營(yíng)銷(xiāo)和新聞發(fā)布,以確保信息內容及相關(guān)UEFI活動(dòng)的時(shí)間安排上的一致性。
平臺初始化工作組(PIWG)
該工作組的范圍如下:PI規范和其他由工作組的大多數商定的相關(guān)規范。這些規范的實(shí)現是作為固件在UEFI規范的界面層之下提供計算機系統初始化服務(wù)。PI的實(shí)現不是UEFI規范的必須。
UEFI規范工作組(USWG)
該工作組的范圍是管理和發(fā)展的“統一可擴展固件接口”規范的定義。該規范的目的是定義在平臺固件和操作系統軟件之間的控制轉移中使用的編程接口和相關(guān)數據結構和約定。此外,操作系統啟動(dòng)前環(huán)境中附加卡適配器引導支持,制造測試和自動(dòng)化等的編程接口需要也在考慮的范圍。
為支持主要規范工作,該工作組還被授權編寫(xiě)“UEFI的驅動(dòng)程序作者指南”及任何類(lèi)似的材料,這將有助于在UEFI產(chǎn)品的開(kāi)發(fā)。
UEFI測試工作組(UTWG)
該小組負責(1)制作和維護UEFI自我認證測試套件,(2)認可開(kāi)源的平臺初始化規范的自我認證為測試套件和(3)組織UEFI的插拔大會(huì )活動(dòng)和培訓。
每個(gè)工作組可組建子團隊來(lái)就特定專(zhuān)題召集專(zhuān)家對某些界面和功能深入探討。例如,USWG有一個(gè)網(wǎng)絡(luò )子團隊專(zhuān)職網(wǎng)絡(luò )有關(guān)的協(xié)議,包括對IPv6的支持,一個(gè)安全子團隊專(zhuān)職與安全相關(guān)的協(xié)議,一個(gè)配置子團隊專(zhuān)職人機接口基礎設施相關(guān)的協(xié)議。當然,還有一個(gè)ARM綁定子團隊來(lái)定義UEFI2.3規范中的ARM綁定。 ARM公司,蘋(píng)果,惠普,微軟和鳳凰科技是該子團隊的主要成員。
關(guān)于作者
魏東是惠普公司的高管級杰出技術(shù)專(zhuān)家和策略家。他是IEEE的資深會(huì )員。他有領(lǐng)導業(yè)界創(chuàng )新和標準化的豐富經(jīng)驗。他是UEFI論壇的副董事長(cháng)(行政總裁)和測試工作組主席。他也是在A(yíng)CPI5.0 國際標準組織的秘書(shū)。作為惠普UEFI和ACPI的總設計師,他負責 為使用x64, x86, ARM, ia64 and PA-RISC處理器的系統定義硬件,BIOS固件和操作系統的平臺接口。他經(jīng)常在惠普世界,惠普技術(shù)論壇,英特爾開(kāi)發(fā)者論壇,微軟Windows硬件大會(huì ),ARM開(kāi)發(fā)研討會(huì ),和PCI會(huì )議上發(fā)表演講。他擁有主管級工商管理,電子工程,和物理學(xué)的碩士學(xué)位。
評論