However, historically ARM systems did not have a preboot firmware standard. This led each design have its own distinct firmware model that is tightly coupled to the operating system being booted. This traditional approach means the firmware developers would need to maintain completely different codebases even though the systems may use many of the same types of peripheral devices (Network, SATA, USB controllers, etc.) and feature sets across the designs. Generations of ARM cores relied on boot packages such as UBoot, Redboot, or proprietary software.
How to efficiently develop and ship these products and meet time to market demands becomes a challenge. Some form of converged firmware infrastructure is necessary to maximize proper code reuse, enable the products to achieve faster time to market with limited engineering resources, and concurrently add innovative features.
Unified Extensible Firmware Interface (UEFI) is a new opportunity for preboot firmware on ARM-based systems. UEFI defines the interfaces between the operating system and the system firmware, and between firmware driver and the system firmware. In addition, UEFI Platform Initialization (PI) defines the firmware-to-silicon and firmware internal interfaces. UEFI is processor architecture agnostic.
Experts from ARM Ltd., Apple, HP, and Microsoft came together and defined the ARM-binding for UEFI. With UEFI, it is now possible to maximize the code reuse among different designs, including those using different processor architectures.
Before UEFI, there was EFI (Extensible Firmware Interface). EFI was created initially in 1998 for the Intel Itanium processor based systems to overcome the limitations BIOS depends on that presented formidable challenges to the “big iron” system design. For example, the dependency on the legacy 8259 interrupt controller, the 64K IO Port space, the 192K Option ROM execution space, the single PCI segment group all impacted the scalability of the system. We also foresaw the coming of the 2.2TB Master Boot Record (MBR) hard drive partition limitation and defined a new GUID Partition Table (GPT) format.
While addressing all these limitations, EFI also defined a modular, flexible and extensible architecture, enabling the use of high-level programming language. It was created with the processor architecture agnostics in mind supporting Itanium, x86 and a processor-independent byte code, EFI Byte Code (EBC).
EFI was an Intel-owned specification defining the interfaces between the operating systems and the system firmware, as well as the device boot driver and the system firmware. Intel created the “Framework” defining the system firmware internal interfaces to further make the EFI implementation modular.
In 2005, the industry came together and decided to form the UEFI Forum to own the interface definitions that EFI and “Framework” covered. Intel contributed the EFI and “Framework” specifications to the UEFI Forum as the starting point. The change of name from EFI to UEFI (U stands for Unified) signified that the tasks of definition, promotion and adoption were on the shoulders of the industry from then on.
Figure 1: The UEFI Forum
The first specification, UEFI 2.0 Specification, created by the UEFI Forum defined the binding for the x64 processors with the help from AMD and Intel. The “Framework” also evolved into the Platform Initialization (PI) Specification. ARM-binding for UEFI is published in 2009 as part of the UEFI 2.3 Specification.
The open source community “tianocore.org” was launched in 2004 under BSD license. With the publication of the ARM-binding, Apple and HP contributed UEFI reference implementations, including one for the Beagle Board (beagleboard.org), to tianocore.org, enabling silicon vendors to supply UEFI drivers for their hardware. ARM Ltd. recently contributed reference code for the Versatile Express reference platform with Cortex-A9 MP cores, in addition to
- Build environment fixes for the ARM GCC toolchains
- Updates for the ARM RealView Emulation Baseboard code
- A new ArmPlatformPkg containing common components for ARM reference platforms
- TrustZone controller support
- MP Core support
- PL18x MMC Controller Support
- A customized Boot Device Select (BDS) library that supports booting Linux directly
In my next blog I will discuss more details of the benefits of UEFI on ARM and the organization of the UEFI Forum.
Guest Partner Blogger:
Dong Wei is an executive-level distinguished technologist and strategist at Hewlett-Packard Company (HP). He is an IEEE Senior Member. He has extensive experience in leading industry innovations and standardization. He is the Vice President (Chief Executive) of the UEFI Forum and chairs its Test Working Group. He is also the Secretary of the ACPI 5.0 SIG. As the chief architect of UEFI and ACPI at HP, he is responsible for defining platform interfaces between hardware, BIOS firmware and the operating systems for x64, x86, ARM, ia64 and PA-RISC-based systems. He has been a frequent speaker at HP World, HP Tech Forum, Intel Developer Forum, Microsoft Windows Hardware Conference, ARM Developers Conference and PCI Workshop. He holds Executive MBA, MSEE and MS in Physics degrees.
ARM welcomes its wealth of Partners in the ARM Connected Community (CC) to submit guest blogs to be published on our multiple community blogs. If interested in participating please submit email inquiries to Tell.Us@arm.com.
The ARM Connected Community (CC) is an extensive ecosystem covering all aspects of ARM processor-based design, from chip implementation through to system and device design. The CC provides a platform for collaborative innovation, with multiple types of forums for members to work with one another, and with customers, to solve industry challenges, all with the purpose of enabling designers to focus on differentiating features and an accelerated time-to-market for ARM powered solutions.
0 Comments On This Entry
Please log in above to add a comment or register for an account
Search My Blog
on May 08 2013 06:15 PM
New Platform Bring-Up with ARM® Development Studio 5 (DS-5™)
on Apr 30 2013 09:55 AM
如何利用全志安卓4.0 HDMI Dongle进行ARM DS-5 Streamline性能分析
on Apr 26 2013 10:50 AM
DS-5 Streamline Performance Analyzer on Allwinner Android 4.0 HDMI Dongle
on Apr 25 2013 04:58 PM
Spotlight on the Linux Software Ecosystem - openSUSE
on Apr 22 2013 08:10 PM