Q1.12: Unified Extensible Firmware Interface

943
-1

Published on

Resource: Q1.12
Name: Unified Extensible Firmware Interface
Date: 09-02-2012
Speaker: David Rusling

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
943
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
35
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Q1.12: Unified Extensible Firmware Interface

  1. 1. Unified Extensible Firmware Interface Feb 2012 UEFI
  2. 2. Slide 2 Introduction to UEFI? ●What is UEFI? ●What is EDKII? ●Why use UEFI? ●What is the ARM Landing Team's involvement?
  3. 3. Slide 3 What is UEFI? Unified Extensible Firmware Interface UEFI is an interface spec., not an implementation "UEFI will be a specification detailing an interface that helps hand off control of the system for the pre-boot environment [...] to an operating system[...]. UEFI will provide a clean interface between operating systems and platform firmware at boot time" www.uefi.org
  4. 4. Slide 4 Community effort Collaboration of 11 vendors ● AMD ● American Megatrends Inc. ● Apple Computer, Inc. ● Dell ● Hewlett Packard ● IBM ● Insyde ● Intel ● Lenovo ● Microsoft ● Phoenix Technologies
  5. 5. Slide 5 UEFI Protocols UEFI specification defines Protocols ● Protocols are interfaces for drivers and services ● Every protocol has a unique GUID ● GUID is a Universally Unique Identifier (UUID) defined by the UEFI spec ● A protocol can have multiple implementations ● eg. multiple file formats ● Protocols can depend on other protocols ● e.g. USB depends on PCI
  6. 6. Slide 6 What is EDKII? EDKII is Intel's implementation of the UEFI spec Open Source BSD License Multi-platform ● ARM: Versatile Express, BeagleBoard, Samsung Origen, … ● Intel: Apple Mac, many PC vendors, ... It's a Boot Loader ● It can perform "Bare Metal" initialisation ● eg. Versatile Express ● Or it can act as a 2nd/3rd stage Boot Loader
  7. 7. Slide 7 Support for many OS types ● Linux ● Windows ● MacOS Supports 64bit and Unicode Linux image support ● zImage ● initrd ● ATAGS ● Device Tree EDKII Features
  8. 8. Slide 8 EDKII Features (cont.) Modular Design ● Easy to contribute new drivers without modifying other code ● You can minimise footprint by removing unneeded modules
  9. 9. Slide 9 UEFI Boot on VE-A9 SEC SECure Code xip PEI Pre-EFI Initialisation xip -> relocated DXE Driver eXecution Env. relocated BDS Boot Device Selection relocated
  10. 10. Slide 10 EFI Shell EFI Shell is a small EFI application ● Can be configured to run at boot ● Command Line utility EFI Shell is defined by the UEFI specification ● Standard commands across all platforms
  11. 11. Slide 11 EFI Shell features What can the EFI Shell do? •Load drivers and protocol implementations •Memory inspection and modification •File editor •Load OS Boot Loader i.e. boot and operating system •Run scripts •Store variables in persistent storage
  12. 12. Slide 12 SCT - Self Certification Test What is SCT? ● A framework to allow automated testing of UEFI ● A specification for user defined tests ● Compliance test suite •SCT agent • Runs on the target • Allows automated testing •EMS (UEFI Management Side) • Runs on the test host • Allows remote management
  13. 13. Slide 13 Why use UEFI on ARM? UEFI is important for the ARM server effort Server vendors require a unified approach to hardware • i.e. vendors want each server to look the same to the OS UEFI is fast •It's faster than U-Boot UEFI is small •It's compressed •Smaller than U-Boot when built with minimal options
  14. 14. Slide 14 How does UEFI compare to U-Boot ? Feature U-Boot UEFI / EDKII Boot Linux with ATAG / initr / FDT Y / Y / Y Y / Y / Y Shell / File Editor Y / N Y / Y Start standalone apps Y Y Boot from MMC / flash / USB Y / Y / Y Y / Y / Y Fat32 / ext2 Y / Y Y / in development TFTP / PXE Y / Y Y / Y License GPL BSD GDB support Y in development Spec available N Y Toolchains GCC GCC, RVCT, XCode Number of platforms in repo 20+ 5
  15. 15. Slide 15 ARM Landing Team Hosts GIT trees for EDKII ports ● Based on Intel's Tianocore project ● Stable "History Tree" http://git.linaro.org/gitweb?p=arm/uefi/uefi.git ● Working Tracking Tree http://git.linaro.org/gitweb?p=arm/uefi/uefi-next.git Support for ARM Ltd. Platforms ● Versatile Express A5 & A9 (available now) ● Versatile Express A15 (coming soon) Hosting of Member ports
  16. 16. Slide 16 ARM Landing Team (cont.) Tools Integration ● We're working with the Infrastructure Team to integrate UEFI into the Linaro tools ● LT is hosting two sessions at this Connect event to define and progress the work: ● 9am – Salon 1 - Hardware Pack Extensions ● 11am – Salon 1- Add UEFI Support to Linaro Tools LAVA Integration ● We're working with the Validation Team to allow LAVA to use UEFI to boot platforms
  17. 17. Slide 17 Summary UEFI is a widely adopted specification ● It's important for ARM server EDKII is a popular implementation of the UEFI spec ● Open Source ● It's a Boot Loader Linaro are helping ARM support UEFI.
  18. 18. Slide 18 Links Unified EFI Forum ● http://www.uefi.org/home/ Tianocore project on Sourceforge ● http://sourceforge.net/apps/mediawiki/tianocore/ Linaro ARM Landing Team ● https://wiki.linaro.org/ARM/UEFI ● http://git.linaro.org/gitweb?p=arm/uefi/uefi-next.git
  19. 19. The End

×