当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]ARM系统预引导固件的新机遇-UEFI

ARM处理器已经在智能手机市场占主导地位,并越来越成为整个嵌入式领域的主流。最近,ARM处理器也进军服务器领域,追求计算连续性。

  然而,历史上,ARM系统没有一个预引导固件的标准。这使得每个设计都有自己独特的与所引导的操作系统紧密结合的模式。这种传统的方法意味着固件开发者必须保持完全不同的代码库,即使系统可能使用的外围设备(网络,SATA接口,USB控制器等)和整个设计功能集是相同的。传统的ARM设计依赖诸如UBoot,Redboot,或专有软件启动软件包。

  如何有效地开发生产这些产品来满足快捷上市需求已成为一个挑战。很有必要用某种形式的融合固件基础设施来实现代码重用的最大化,使这些产品可在有限的工程资源条件下实现更快推上市场,并同时添加创新功能。

  统一可扩展固件接口(UEFI)对ARM系统的预引导固件是一个新机遇。 UEFI负责定义操作系统和系统固件之间以及固件驱动程序和系统固件之间的接口。此外,UEFI的平台初始化(PI)负责定义固件到芯片之间和固件内部的接口。 UEFI是处理器架构无关。

  ARM公司,苹果,惠普和微软的专家们一起确定了UEFI的ARM绑定。这样,使用UEFI就可以最大限度地实现不同设计间的代码重用,包括那些使用不同的处理器架构的设计。

  历史

  在UEFI之前,有EFI(可扩展固件接口)。EFI最初创立于1998年,为的是让使用英特尔安腾处理器的系统摆脱BIOS对设计大型计算机的束缚,例如,BIOS对原有8259中断控制器的依赖,仅有64K的IO端口空间,仅有192K的OptionROM执行空间,单一的PCI段组。所有这些都影响系统的可扩展性。我们也预见到将要遇到的2.2TB主引导记录(MBR)硬盘驱动器分区限制,并定义了新的GUID分区表(GPT)格式。

  在摆脱束缚的同时,EFI还采用了一个模块化的,灵活的可扩展体系结构,并使用高层次的编程语言。创建EFI时就考虑到它应与处理器架构无关,当时就支持安腾,x86和一个与处理器无关的字节代码,叫EFI字节代码(EBC)。

  EFI是一个英特尔公司拥有的规范定义操作系统和系统固件之间,以及设备引导驱动程序和系统固件之间的接口。英特尔还创建了“框架”来定义系统固件内部接口以使EFI的实现进一步模块化。

  2005年,计算机行业决定组建UEFI论坛来规范EFI和“框架”所涵盖的接口。英特尔贡献了EFI和“框架”规范给UEFI论坛作为新的起点。名称从EFI变为UEFI(U为统一的缩写)标志着定义、推广和使用的任务从此落在业界的肩膀上。

  

 

  Figure 1: The UEFI Forum

  由UEFI论坛定义的第一个规范(UEFI 2.0)在AMD和英特尔的帮助下定义了x64处理器的绑定。 “框架”也演变成了平台初始化(PI)规范。UEFI的ARM绑定作为UEFI 2.3规范的一部分于2009年公布。

  开源社区“tianocore.org”于2004年开始,采用BSD许可证。随着ARM绑定的公布,苹果和惠普向tianocore.org贡献了UEFI的参考实现,其中对Beagle Board(beagleboard.org)的一个实现,使硅片供应商可为他们的硬件提供UEFI的驱动程序。 ARM公司近日贡献了使用Cortex A9 多核处理器的Versatile Express参考平台的核心代码,以及

  · 修复了ARM GCC工具链的构建环境

  · ARM的RealView仿真底板代码的更新

  · 新的包含ARM参考平台通用组件的ArmPlatformPkg

  · 支持TrustZone控制器

  · 支持多核

  · 支持PL18x MMC卡控制器

  · 一个特制的启动设备选择BDS库以支持直接启动Linux

  有关在ARM上实现UEFI的优越性和UEFI论坛组织结构的详细说明,请见下回分解。

  现在我将探讨它,特别是在ARM的系统上的优越性。我也会更详细地描述UEFI论坛的组织结构。[!--empirenews.page--]优越性

 

  尽管现有的ARM预引导固件并没有BIOS的束缚,使用UEFI标准对ARM预引导固件仍有很多优越性。 OEM / ODM厂商一直在试图降低开发成本。代码共享是在预引导固件领域实现这目标的一种方式。

  ARM和x86都注重计算连续性,UEFI不仅使得在ARM产品之间或在x86产品之间代码共享,还可以让代码在不同处理器架构的产品之间共享。产品可以共享外围设备(网络,SATA,USB控制器等),以及众多的设计功能集。

  图2显示了从x86到ARM的一个移植有99.42%的代码不需要更改。

  

 

  图2: ARM移植中添加和更改的程序行数

  模块化的UEFI技术还可以使芯片厂商能够为自己的硬件提供驱动程序。这使得OEM / ODM厂商能够灵活地使用来自不同供应商的模块,扩大了选择余地。

  UEFI在ARM的实现提供了真正独立于操作系统的启动解决方案,而其他大多数现有的ARM启动解决方案(UBoot,小内核等)是与他们的支持操作系统相耦合的。对计算连续性的追求也包括支持Windows和Linux等多个操作系统。

  把预引导固件标准化于UEFI也使潜在的独立固件供应商能够进入市场提供支持。这将有可能让这些厂商为多个客户提供支持,有效地部署模块,并提供可扩展的共同解决方案。这种标准化也将减少芯片厂商的开发成本,现在他们只需要支持一种类型的驱动程序给所有的OEM/ ODM来整合。这可以提高验证效率和调试的能力。

  对于操作系统厂商,这种标准化使它们能够集中在同一个引导程序方面的投资。这种标准化也将为独立软件开发商提供新的创新的机会。

  组织结构

  UEFI论坛是一个非赢利的合作贸易组织,旨在促进和管理UEFI标准。 AMD,安迈,苹果,戴尔,惠普,IBM,系微,英特尔,联想,微软和凤凰科技是发起人在董事会任职。 ARM公司,博通,博科,ARCI,Emulex,富士通,鸿海,浪潮,LSI,百敖软件,日电,英伟达,甲骨文,QLogic,桑迪亚国家实验室,希捷,东芝,威盛和威睿是贡献者成员,还有130多个公司和个人的使用者成员。这是在预引导固件行业最广泛的行业代表。

  如图3所示,论坛有四个工作组。发起者和贡献者有机会在这些工作组贡献和施加影响:

  

 

  图3: UEFI 论坛组织结构图

  工业通讯工作组(ICWG)

  ICWG旨在通过教育,宣传和营销各种方案使业界对UEFI规范有清楚的认识并鼓励业界普及其使用。ICWG与ODM和OEM,产业界的合作伙伴,技术联盟/协会团体同行,以及行业媒体进行交流和协作,以达到他们对UEFI的认识和广泛采纳。

  ICWG负责有关UEFI论坛进展和成功的对外交流。这个工作组将制定如新闻稿,新闻文章,白皮书,演示文稿,相关文件等必要的技术和市场营销方式。

  ICWG将帮助指引会员公司的营销和新闻发布,以确保信息内容及相关UEFI活动的时间安排上的一致性。

  平台初始化工作组(PIWG)

  该工作组的范围如下:PI规范和其他由工作组的大多数商定的相关规范。这些规范的实现是作为固件在UEFI规范的界面层之下提供计算机系统初始化服务。PI的实现不是UEFI规范的必须。

  UEFI规范工作组(USWG)

  该工作组的范围是管理和发展的“统一可扩展固件接口”规范的定义。该规范的目的是定义在平台固件和操作系统软件之间的控制转移中使用的编程接口和相关数据结构和约定。此外,操作系统启动前环境中附加卡适配器引导支持,制造测试和自动化等的编程接口需要也在考虑的范围。

  为支持主要规范工作,该工作组还被授权编写“UEFI的驱动程序作者指南”及任何类似的材料,这将有助于在UEFI产品的开发。

  UEFI测试工作组(UTWG)

  该小组负责(1)制作和维护UEFI自我认证测试套件,(2)认可开源的平台初始化规范的自我认证为测试套件和(3)组织UEFI的插拔大会活动和培训。

  每个工作组可组建子团队来就特定专题召集专家对某些界面和功能深入探讨。例如,USWG有一个网络子团队专职网络有关的协议,包括对IPv6的支持,一个安全子团队专职与安全相关的协议,一个配置子团队专职人机接口基础设施相关的协议。当然,还有一个ARM绑定子团队来定义UEFI2.3规范中的ARM绑定。 ARM公司,苹果,惠普,微软和凤凰科技是该子团队的主要成员。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

据《日经新闻》报道,软银旗下英国芯片制造商Arm计划到2025年销售AI芯片。该公司专门成立一个AI芯片部门,并将在2025年春季之前制造出原型产品,并于秋季开始大规模生产。

关键字: 软银 AGI ARM AI芯片

业内消息,近日日本软件银行集团(SoftBank Group)旗下安谋国际科技公司(Arm)计划研发人工智能(AI)芯片,先成立一个AI芯片部门,目标是明年春季建立AI芯片原型产品,然后将量产工作交由代工厂制造,预估20...

关键字: ARM AI芯片

Arm CPU正在从根本上推动AI变革,并造福地球。Arm架构是未来AI计算的基石。​

关键字: ARM AI

近日,Arm推出了Arm® Ethos™-U85神经网络处理器(NPU)和Arm Corstone™-320物联网参考设计平台,旨在满足海量的数据处理和大规模计算,加速推进边缘AI的发展进程。

关键字: ARM

为了赶超云计算市场上的竞争对手,谷歌正试图通过定制的Arm服务器芯片降低云计算服务成本。

关键字: 谷歌 ARM 定制芯片

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

Windows Embedded Compact 7(简称WinCE)是一种专为嵌入式系统设计的操作系统,具有体积小、效率高、可定制性强的特点。在WinCE中设置自动运行软件,通常是为了满足设备在启动后自动执行特定任务的...

关键字: 嵌入式系统 软件 操作系统

随着汽车软件数量爆发式的增长,整个行业都需要重新思考汽车产品的开发流程。为此,Arm推出了丰富的硬件IP、新的系统IP,以及全新的汽车计算与计算子系统产品路线图,旨在为各种汽车应用实现性能、功能安全、可扩展等方面的支持。

关键字: ARM 汽车电子

知名移动芯片设计公司ARM最近迈出重要一步,它正式推出汽车芯片设计。ARM推出的芯片设计方案名叫Neoverse,随同芯片一起推出的还有面向汽车制造商、汽车供应商的新系统。

关键字: ARM 汽车芯片 芯片

随着通用人工智能的发展,数据中心的计算需求逐步提高。针对多模态数据、大模型的推理和训练需要更高的算力支持,而随着算力提升与之而来的还需更关注在功耗方面的优化。对于头部云计算和服务厂商而言,针对专门用例提高每瓦性能变得至关...

关键字: ARM 服务器 AI Neoverse CSS
关闭
关闭