43
Unified Extensible Firmware Interface (UEFI) Framework UEFI Overview Intel SSG/SSD/UEFI

Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

  • Upload
    vomien

  • View
    313

  • Download
    8

Embed Size (px)

Citation preview

Page 1: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Unified Extensible Firmware Interface (UEFI) Framework

UEFI Overview

Intel SSG/SSD/UEFI

Page 2: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Legal Disclaimer INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL'S TERMS AND CONDITIONS OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. UNLESS OTHERWISE AGREED IN WRITING BY INTEL, THE INTEL PRODUCTS ARE NOT DESIGNED NOR INTENDED FOR ANY APPLICATION IN WHICH THE FAILURE OF THE INTEL PRODUCT COULD CREATE A SITUATION WHERE PERSONAL INJURY OR DEATH MAY OCCUR.

Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics of any features or instructions marked "reserved" or "undefined." Intel reserves these for future definition and shall have no responsibility whatsoever for conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with this information.

The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published specifications. Current characterized errata are available on request.

Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.

Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-4725, or go to: http://www.intel.com/design/literature.htm

This document contains information on products in the design phase of development.

All products, computer systems, dates, and figures specified are preliminary based on current expectations, and are subject to change without notice.

Intel, Intel Atom, Intel Core, and the Intel logo are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

* Other names and brands may be claimed as the property of others.

Copyright © 2011, Intel Corporation. All rights reserved.

BLDK PRC Training 2011

Page 3: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Agenda

BIOS Background

UEFI Overview

Platform Initialization (PI) Overview

Page 4: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

What’s Legacy BIOS

• Basic Input - Output System for original IBM PC/XT and PC/AT

• Originated in 1980s

• Based on 8086 architecture

• A group of clearly defined OS-independent interface for hardware Int10 for Video service

Int13 disk service

Int16 keyboard service

Int18 BIOS ROM loader

Int19 bootstrap loader

• Availability of MS-DOS outside of IBM allowed applications to run equally

well across different brands of box "PC clones".

BIOS background

Page 5: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

EFI / UEFI History Timeline

2005 2000 1995 1990 1985

PCI Spec

Sp

ecif

icati

on

s

Im

ple

men

tati

on

IBM 16 Bit BIOS

Intel® Itanium® Platforms 64 bit develops

EFI only way to boot Itanium® Platforms

EFI 1.02

EFI Dev Kit (EDK)

Tianocore.org Open Source

EFI Sample Implementation 1.10.14.6x

Open Source EFI Developer Kit (EDK) http://www.tianocore.Sourceforge.net UEFI Specifications - http://www.uefi.org

PC Era 1980s

framework1 0.9 Spec

EFI 1.10

BIOS background

Page 6: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

UEFI Specification Timeline

2010 2009 2008 2007 2006

UEFI 2.0

PI 1.0

UEFI 2.1

PI 1.1

UEFI 2.3 UEFI 2.2

EDK 1.01: UEFI 2.0

Shell 2.0

PI 1.2

Packaging 1.0

SCT UEFI 2.1

EDK 1.04: UEFI 2.1 PI 1.0

Sp

ecif

icati

on

s

Im

ple

men

tati

on

http://uefi.org

Open Source

EDK 1.05: UEFI 2.1+ PI 1.0

SCT PI 1.0

SCT UEFI 2.0

EDK II: UEFI 2.3+ PI 1.2+

All products, dates, and programs are based on current expectations and subject to change without notice.

EDK II: UEFI 2.1+ PI 1.0

BIOS background

UDK2010

Page 7: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Agenda

BIOS Background

UEFI Overview

Platform Initialization (PI) Overview

Page 8: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

What is UEFI?

• Unified (EFI) / Extensible Firmware Interface (EFI)

• UEFI is an interface specification • Abstracts BIOS from OS

–Decouples development • Compatible by design

–Evolution, not revolution • Modular and extensible

–OS-Neutral value add • Provide efficient Option ROM Replacement

–Common source for multiple CPU architectures • Complements existing interfaces

OS Loader

Hardware

BIOS

UEFI

Com

pati

bilit

y

*

UEFI Overview

Page 9: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

PLATFORM HARDWARE

PLATFORM SPECIFIC FIRMWARE

UEFI BOOT SERVICES UEFI RUNTIME SERVICES

UEFI OS LOADER

(OTHER)

SMBIOS

ACPI

INTERFACES FROM OTHER REQUIRED SPECS

Me

mo

ry

Time

r

Driver Driver

UEFI or PI

Drivers

Boot Devices

Protocols + Handlers

OPERATING SYSTEM

Legacy OS LOADER

Compatibility

UEFI API

Motherboard ROM/FLASH Option

ROM Option ROM

Option ROM

UEFI Drivers UEFI Drivers

UEFI OS Loader

UEFI SYSTEM PARTITION

UEFI Drivers

OS PARTITION

Concept

*

UEFI Overview

Page 10: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Unified EFI (UEFI) Forum – www.uefi.org

• Promoters – OEMs: Dell, HP, IBM, Lenovo

– IBVs: AMI, Insyde, Phoenix

– AMD, Apple, Intel, Microsoft

• UEFI Specification – EFI 1.10 specification contributed to the Forum by Intel and Microsoft

to be used as a starting draft

– UEFI 2.0 - 2.3 specification released.

– Forum will evolve, extend, and add any new functionality as required

– Intel contributed EFI 1.10 SCT being used as starting base for UEFI conformance tests (UEFI SCT 2.1 released 2008)

*

Purpose: Worldwide adoption and promotion of UEFI specifications.

UEFI Overview

Page 11: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

UEFI Membership

• Any entity wanting to implement the specification

Adopters:

• Corporations, groups or individuals wanting to participate in UEFI

• Chance to join work groups and contribute to spec or test development

• Early access to drafts and work in progress

Contributors:

• Board and Corporate Officers

Promoters:

UEFI Overview

Page 12: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Boot device support

• Hard disk

• Removable media – CD-ROM, DVD-ROM

• El Torito 1.0 “No emulation”

– Floppy, USB Storage, etc.

• Network – PXE BIOS support specification (Wire for

Management)

– iSCSI

• Future media via extensibility methods

Full Device Support

Boot Support

Page 13: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Partition

Tab

le HD

R

Partition 1

MB

R

Partition

Tab

le HD

R

0 1 n ...

LBA0 LBA1 LBAn

Start partition

End partition Start partition

Primary Partition Table

Backup Partition Table

0 1 n ...

End partition

First useable block

Last useable block

See Section-5 UEFI 2.X Spec.

New Partition Structure

Boot Support

Page 14: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

GPT Advantages over MBR Partition Table

• 64-bit Logical Block Addressing. • Supports unlimited number of partitions • Uses a primary and backup table for redundancy. • Uses version number and size fields for future expansion. • Uses CRC32 fields for improved data integrity. • Defines a GUID for uniquely identifying each partition. • Uses a GUID and attributes to define partition content type. • Each partition contains a 36 Unicode character human

readable name. • No magic code must execute as part of booting • Fixes the 2.2 Terabyte Problem

Boot Support

Page 15: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

UEFI Specification - Key Concepts

• Objects - manage system state, including I/O devices, memory, and events

• The UEFI System Table - data structure with data in-formation tables to interface with the systems

• Handle database and protocols - callable interfaces that are registered

• UEFI images - the executable content format • Events - the software can be signaled in response

to some other activity • Device paths - a data structure that describes the

hardware location of an entity

UEFI Terminology

Page 16: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

UEFI Data Structures - UEFI System Table

EFI System Table

EFI Runtime Services Table

Variable Services

Real Time Clock Services Reset Services

Status Code Services Virtual Memory Services EFI Boot Services Table

Task Priority Level Services Memory Services

Event and Timer Services Protocol Handler Services

Image Services Driver Support Services

Input Console

Active Consoles

Output Console Standard Error Console

Version Information

EFI Specification Version Firmware Vendor Firmware Revision

Handle Database Protocol Interface Protocol Interface Protocol Interface

Protocol Interface Protocol Interface Protocol Interface

Boot Service Data Structures Runtime Data Structures

UEFI Terminology

Page 17: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

GUID

• “Globally” Unique Identity

–128-bit quantity defined by Wired for Management WfM 2.0 specification **

• Used to identify protocols

–1:1 with interfaces

• Regulate extension mechanism

–Documented in the spec

–Added through drivers

Safe co-existence of 3rd party extensions

** http://www.intel.com/design/archives/wfm/index.htm

UEFI Terminology

Page 18: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Legacy BIOS vs UEFI

• UEFI

• GUID1 UEFI Specification

• GUID2 PI Specification

• GUID3 ODM defined

• GUID4 OEM defined

• GUID5 IBV defined

Legacy BIOS

INT 10h INT 13h

Chaining INT 16h INT 15h

?

Ralf Brown’s Interrupt List

UEFI Means the Pieces all Fit and Work!

Page 19: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Handles

• All protocols have a handle which is associated with the protocol

• Every device and executable image in UEFI has a handle protocol in the handle database

• Every boot device must have a device path protocol to describe it

UEFI Terminology

Page 20: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Protocols (API) GUID, Interface Structure, Services

DEVICE_PATH, DEVICE_IO, BLOCK_IO, DISK_IO, FILE_SYSTEM,

SIMPLE_INPUT, SIMPLE_TEXT_OUTPUT, SERIAL_IO, PXE_BC,

SIMPLE_NETWORK, LOAD_FILE, UNICODE_COLLATION

Handle

Function Ptr 1

Private Data

GUID

Function Ptr 2

. . .

Protocol Interface GUID 1

GUID 2

Function 1

Function 2

Access Device

or Services

Produced by Other UEFI

Drivers

BlkIo->ReadBlocks(BlkIo, …)

. . .

. . .

UEFI Terminology

Page 21: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Handle Protocol Database

...

Handle

First Handle

GUID GUID

Protocol Interface

Instance Data

Protocol Interface

Instance Data

Handle

GUID

Protocol Interface

Instance Data

Image Handle Controller Handle Attributes

...

Image Handle Controller Handle Attributes

Image Handle Controller Handle Attributes

Image Handle Controller Handle Attributes

Image Handle Controller Handle Attributes

...

GUID

Protocol Interface

Instance Data

UEFI Terminology

Page 22: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Device Path Protocol

• A data structure description of where a device is in the platform

• All boot devices, logical devices and images must be described by a device path

• 6 types of device paths: –Hardware –ACPI – UID/HID of device in AML –Messaging – i.e. LAN, Fiber Channel, ATAPI, SCSI, USB –Media – i.e. Hard Drive, Floppy or CD-ROM –EDD 3.0 boot device – see EDD 3.0 spec int13 48 –End of hardware – marks end of device path

See Section-9 UEFI 2.X Spec.

UEFI Terminology

Page 23: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Acpi(PNP0A03,0) /Pci(1F|1) /Ata(Primary,Master) /HD(Part3, Sig010…) \EFI\Boot”/”OSLoader.efi”

An UEFI Device Path describes a boot target.

Binary description of the physical location of a specific target.

Why UEFI Device Path ? –

Acpi(PNP0A03,0) Acpi(PNP0A03,0) /Pci(1F|1) Acpi(PNP0A03,0) /Pci(1F|1) /Ata(Primary,Master) Acpi(PNP0A03,0) /Pci(1F|1) /Ata(Primary,Master) /HD(Part3, Sig010…) Acpi(PNP0A03,0) /Pci(1F|1) /Ata(Primary,Master) /HD(Part3, Sig010…) \EFI\Boot”/”OSLoader.efi”

Initialize PCI root Bridge

Initialize PCI Device

Initialize ATA Device

Initialize the Partition Driver

Initialize File System Driver

Launch O/S Loader

Connect PCI Root Bridge & Install OP ROM

Connect Consoles

Diagnostics/Shell

Boot

*

Bo

ot

Seq

uen

ce

UEFI Terminology

Note: Boot Sequence is part of the PI Spec.

Page 24: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

• Events and notifications – Polled devices, no

interrupts

• Watchdog timer – Elegant recovery

• Memory allocation

• Handle location – for finding protocols

• Image loading – Drivers, applications, OS

loader

RT Services are Minimal set to meet OSV needs

• Timer, Wakeup alarm – Allows system to wake up or

power on at a set time.

• Variables – Boot manager handshake

• System reset

Boot Services Runtime Services Available at both Boot time and Runtime

*

Exit

Bo

otS

ervi

ces(

)

UEFI Aware OS

Page 25: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Typical System

CPU

PCI Host Bus

USB

IDE

PCI-ISA Bridge

VGA

Keyboard

Mouse

Floppy Drive

Hard Drive

CD-ROM

PCI Bus

USB Bus

ISA Bus

IDE Bus

Device Controller Bus Controller Other

ISA FDC

PCI-PCMCIA

See Section-2.5 UEFI 2.X Spec.

UEFI Driver Design

Page 26: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Driver Initialization

• UEFI Driver Handoff State

• Not Allowed to Touch Hardware Resources

• Installs Driver Binding on Driver Image Handle

Installed in Driver Initialization Implemented by Driver Writer

Created by LoadImage() Driver Image Handle

EFI_DRIVER_BINDING

Registers Driver for Later Use

EFI_COMPONENT_NAME

UEFI Driver Design

Page 27: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Driver Binding Protocol

Driver Image Handle

LOADED_IMAGE

DRIVER_BINDING DRIVER_BINDING Supported() Start() Stop() Version

*

UEFI Driver Design

Page 28: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

IDE ATAPI disk drive

Block IO Protocol

Device Path Protocol

Disk IO Protocol

File System Protocol(FAT)

HD Handle

UEFI ATAPI Driver

Ha

nd

leP

roto

col(

)

ATAPI Device Path ACPI(pnp0604,0)/PCI(0,1)/

ATA(primary, master)

UEF

I sy

ste

m

par

titi

on

U

EFI b

oo

t se

rvic

es

Image Handle

Device Path Protocol

Example: UEFI ATAPI Driver Stack

UEFI Driver Design

Page 29: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Agenda

BIOS Background

UEFI Overview

Platform Initialization (PI) Overview

Page 30: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Technology not addressed by UEFI

• Memory Initialization

• Recovery

• FLASH update

• ACPI S3

• Platform Initialization

• System Management Mode (SMM)

• Setup

UEFI Separates BIOS and OS

Technology not addressed by UEFI

Page 31: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

USWG/PIWG Relationship • UEFI Spec is about interfaces

between OS, add-in driver and system firmware – a new model for the interface

between the Operating systems and other high-level software and the platform firmware

• PI Specs relate to making UEFI implementations – Promote interoperability between

firmware components providers

– Modular components like silicon drivers (e.g. PCI) and value-add drivers (security)

Pla

tfo

rm In

itia

lizat

ion

PI Modular components

Hardware

UEFI- enabled

OS

Pre-boot Tools Legacy

OS

Option ROMs

CPU PEI Modules

C/S PEI Modules

UEFI

• • •

UEFI D

river

DX

E Driver

Co

mp

atibility

Sup

po

rt Mo

du

le

UEFI D

river

BD

S

UEFI D

river

UEFI and PI are Independent Interfaces

UEFI and PI Specifications

Page 32: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

OEM

x/OD

M y

Drive

rs

PI

Drive

rs

Co

mp

atibility

Sup

po

rt Mo

du

le A

IBV

z D

rivers

Architectural Protocols

Foundations

Hardware

EFI- enabled

OS

Pre-boot Tools

Today’s OS

Option ROMs

Intel® Platform Innovation Framework for UEFI and Platform Initialization (PI)

• Base Core Foundation (“Green H”) • Foundation lets different teams

share code • Developers can easily move between

projects • Chipset code enabled by Silicon

vendor • Standardization benefits the industry • IBV provides value add • Glue code “Big H” is Open Source on

www.tianocore.org • The framework1 Start point for

Platform Initialization (PI) Specification on www.UEFI.org

UEFI

IBV

x D

rivers

Co

mp

atibility

Sup

po

rt Mo

du

le B

MRC - CPU

1Intel® Platform Innovation Framework for UEFI

Technology not addressed by UEFI

Page 33: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Intel® Platform Innovation Framework for UEFI and Platform

Initialization (PI) Overview

Specification time line

2001 2002 2003 2004 2005 2006 2007 2008 2009 2010

framework1 0.9 Spec

EFI 1.10

UEFI 2.0

PI 1.0

UEFI 2.1

PI 1.1

UEFI 2.3 UEFI 2.2

PI 1.2

Packaging 1.0

Shell 2.0

EFI 1.02

1Intel® Platform Innovation Framework for UEFI

Why PI

Page 34: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

The framework1 and PI Design Strategy

• High level design based on the framework1 plus modular components

• Generalize the framework1 Maximize reuse of infrastructure – High degree of independence from platform and

market segment specifics

• Specifics encapsulated in the drivers – Drivers map to software visible hardware

– Isolate hardware/platform specifics to support component-based firmware construction

Design Approach

1Intel® Platform Innovation Framework for UEFI

Page 35: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Get to “C” Code Quickly • Commercial “C” compilers use stack model

– Requires some memory initialized for a stack • Split the framework1 and PI infrastructure in two

– Pre-EFI Initialization (PEI), preamble to get memory

– Driver Execution Environment (DXE), infrastructure to support “C” coded EFI drivers

• First part of the framework1 / PI finds memory by using special stack

– Infrastructure code plus PEI Modules • The framework1 / PI uses modules for CPU, chipset and board

– Minimum initialization to get memory working • Architecture only requires “enough” memory

– PEI limited so defer to rich DXE “C” environment

Standard tools Flexible memory initialization

Design Approach

Page 36: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Architecture Execution Flow

Pre EFI Initialization (PEI)

Driver Execution Environment

(DXE)

Boot Dev Select (BDS)

Transient System Load

(TSL)

After Life (AL)

Power on [ . . Platform initialization . . ] [ . . . . OS boot . . . . ] Shutdown

Run Time (RT)

?

OS-Present App

Final OS Environment

Final OS Boot Loader

OS-Absent App

Transient OS Environment

Transient OS Boot Loader

Boot Manager

CPU Init

Chipset Init

Board Init

veri

fy

Device, Bus, or Service Driver

UEFI Interface Pre

Verifier

EFI Driver Dispatcher

Intrinsic Services

Security (SEC)

Boot Execution Flow

Page 37: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

POST Execution Flow – High Level Reset

CPU Init

Memory Init CS Init

Boot Mode

Recovery

S3

Resume

Console Init

Device Init

Bus Init

Normal Boot

POST Dispatch

Boot Dev Select

EFI Pre-boot Application

Legacy OS

Load

OS

Runtime

Boot Execution Flow

Page 38: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

POST Execution Flow – High Level Reset

CPU Init

Memory Init CS Init

Boot Mode

Recovery

S3

Resume

Console Init

Device Init

Bus Init

Normal Boot

POST Dispatch

Boot Dev Select

EFI Pre-boot Application

Legacy OS

Load

OS

Runtime

Console Init

Device Init

Bus Init

POST Dispatch

Boot Dev Select

EFI Pre-boot Application

Legacy OS

Load

OS

Runtime

PEI

Firmware Volumes

Cache as RAM

PEIM

Handoff Blocks HOB

NVRAM

Capsules

GUID

*

Boot Execution Flow

Page 39: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

POST Execution Flow – High Level Reset

CPU Init

Memory Init CS Init

Boot Mode

Recovery

S3

Resume

Console Init

Device Init

Bus Init

Normal Boot

POST Dispatch

Boot Dev Select

EFI Pre-boot Application

Legacy OS

Load

OS

Runtime

Reset

CPU Init

Memory Init CS Init

Boot Mode

Recovery

S3

Resume

Boot Dev Select

EFI Pre-boot Application

Legacy OS

Load

OS

Runtime

DXE

EFI Driver Dispatcher

EFI/DXE Drivers

EFI Boot Services

Boot Execution Flow

Page 40: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

POST Execution Flow – High Level Reset

CPU Init

Memory Init CS Init

Boot Mode

Recovery

S3

Resume

Console Init

Device Init

Bus Init

Normal Boot

POST Dispatch

Boot Dev Select

EFI Pre-boot Application

Legacy OS

Load

OS

Runtime

Normal Boot

Reset

CPU Init

Memory Init CS Init

Boot Mode

Recovery

S3

Resume

Console Init

Device Init

Bus Init

POST Dispatch

EFI Pre-boot Application

Legacy OS

Load

OS

Runtime

BDS

EFI Boot Manager

Human Interface HII

Platform Policy

Boot Execution Flow

Page 41: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

POST Execution Flow – High Level Reset

CPU Init

Memory Init CS Init

Boot Mode

Recovery

S3

Resume

Console Init

Device Init

Bus Init

Normal Boot

POST Dispatch

Boot Dev Select

EFI Pre-boot Application

Legacy OS

Load

OS

Runtime

Reset

CPU Init

Memory Init CS Init

Boot Mode

Recovery

S3

Resume

Console Init

Device Init

Bus Init

POST Dispatch

Boot Dev Select

TSL

Compatibility Support Module CSM

EFI Preboot

EFI Runtime Services

Boot Execution Flow

Page 42: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard

Architecture Execution Flow

Pre EFI Initialization (PEI)

Driver Execution Environment

(DXE)

Boot Dev Select (BDS)

Transient System Load

(TSL)

After Life (AL)

Power on [ . . Platform initialization . . ] [ . . . . OS boot . . . . ] Shutdown

Run Time (RT)

?

OS-Present App

Final OS Environment

Final OS Boot Loader

OS-Absent App

Transient OS Environment

Transient OS Boot Loader

Boot Manager

CPU Init

Chipset Init

Board Init

veri

fy

Device, Bus, or Service Driver

UEFI Interface Pre

Verifier

EFI Driver Dispatcher

Intrinsic Services

Security (SEC)

Boot Execution Flow

Page 43: Unified Extensible Firmware Interface (UEFI) Framework · Unified Extensible Firmware Interface (UEFI) Framework ... ons Spec n IBM 16 Bit BIOS Intel® ... API Motherboard