SlideShare une entreprise Scribd logo
1  sur  23
Implementing a UEFI BIOS
in an Embedded System
Insyde Software

© 2013 Insyde Software

1
Insyde Software
• Develops, deploys and supports the latest BIOS
replacement firmware that is based on the UEFI
Framework and UEFI 2.x
• Embedded BIOS business
– Many of Intel’s largest embedded customers continue adoption of
InsydeH2O across multiple business units

• Strong alignment to Intel ECG Roadmap and platforms
• Founded September 1998

© 2013 Insyde Software

2
Agenda
• Understanding the UEFI architecture
• The role of a UEFI BIOS in an x86 embedded
design
• Where to get support when you need it

© 2013 Insyde Software

3
Key Benefits of UEFI Firmware
 Provides industry standard interfaces
for CPUs, chipsets and platform features
 Modular source code base can be used
across different products

Compatibility
Support Module

Insyde
Drivers

 Adapted by Intel, AMD, Microsoft

OEM /ODM
Drivers

 Easier to implement new technologies
and features

Generic
Drivers

 Pre-boot environment facilitates innovation

Legacy
UEFI
UEFI
Pre-boot Option OpRom
Tools
ROMs and
Legacy
OS
UEFI API

UEFIenabled
OS

Foundations
Architectural Protocols
Hardware

© 2013 Insyde Software

4
Boot Flow

© 2013 Insyde Software

5
Security Phase (SEC)
• When the processor’s RESET line is released and the first
instruction is fetched from the RESET vector, the SEC
phase begins
• Objectives:
– The first part of the SEC is a small assembly language
module that switches the processor from 16-bit real
mode to 32-bit protected mode
– Next, it enables a memory model that permits stack
based C code to be executed with only a few
limitations
– The SEC is the security kernel, it can also authenticate the
next phase’s code verifying it to be trustworthy
© 2013 Insyde Software

6
Security Phase
SEC
1. SEC creates an early
cache based memory
environment
2. SEC knows the fixed
location of the boot
firmware volume and
can validate the PEI
image
3. SEC passes control
to PEI core located
in the BFV

Trustworthy
RAM

Boot
Firmware
Volume

PEI Core
PEIMS

© 2013 Insyde Software

7
Pre-EFI Initialization (PEI)
• The PEI phase is responsible for initializing enough of the
system to provide a stable base for the remainder of the BIOS
• PEI phase handles detecting and recovering from corruption
and failure of the firmware store
• PEI phase consists of three stages:
– The smallest possible set of modules to prepare for the
initialization of the memory (critical bus and processor
configuration)
– Memory initialization & capture of information to be passed to
the OS and the remainder of the BIOS
– Checking for firmware corruption and setting the boot mode to
address special cases if necessary
© 2013 Insyde Software

8
Handoff Blocks (HOBs)
• A Handoff Block (HOB) is a binary data structure that
contains information to be passed from a PEI Module
to a DXE driver, application or OS component
• HOBs are the standard way information is passed
from the PEI Phase to later phases of the BIOS

© 2013 Insyde Software

9
The Driver Execution (DXE) Phase
• The DXE phase is that part of the code where most of
the system initialization is performed
– It is loaded and executed once the PEI phase has
finished initializing system memory for the platform.
• Its function is to:
– Do all the remaining necessary hardware setup and set up
the UEFI System Table structures to provide the necessary
services to the Boot Device Selection (BDS) code for it to
run transient applications and OS loaders
– Provide the API interfaces needed by OS loaders to boot
all the supported OSes
© 2013 Insyde Software

10
Components of the DXE Phase
• DXE Core

– Main DXE executable binary; creates tables identifying Boot and Runtime
Services; responsible for dispatching drivers and setting up the DXE tables

• DXE Drivers

– A module loaded by the Core to perform initialization and/or to produce
protocols and other services

• DXE Dispatcher

– Part of the DXE Core: searches for and executes drivers

• DXE Architecture Protocols

– Produced by DXE drivers; to abstract DXE from hardware

• EFI System Table

– Contains pointers to UEFI service tables, configuration
data, thehandle database and console devices
© 2013 Insyde Software

11
The UEFI System Table
Active Consoles
Input Console
Output Console
Standard Error Console

EFI
System
Table

EFI Runtime Services Table
Variable Services
Real-Time Clock Services
Reset Services
Status Code Services

EFI Boot Services Table

Virtual Memory Services

Task Priority Level Services
Memory Services

Version Information

Event and Timer Services

EFI Specification Version

Protocol Handler Services

Firmware Vendor

Image Services

Firmware Revision

Driver Support Services

DXE Services Table
Global Coherency Domain Services
Dispatcher Services

System Configuration Table
DXE Services Table
HOB List
ACPI Table
SMBIOS Table

Handle Database

Protocol Interface
Protocol Interface
Protocol Interface
Protocol Interface
Protocol Interface
Protocol Interface

Boot Services and Structures
Only available before the OS runtime

…
SAL System Table

Runtime Services and Structures
Available before and during OS runtime

© 2013 Insyde Software

12
The Handle Database
The Handle Database
Each Handle
GUID Interface

The DXE Driver Image

GUID Interface
...

...

BlkIo->ReadBlocks(BlkIo, …)

Protocol Interface
Function Pointer
Function Pointer
...
Device-Specific
Context

© 2013 Insyde Software

13
Dispatching the BDS Protocol Entry()
• The DXE dispatcher exits when it can not find and
dispatch any more drivers
• It invokes the BDS Protocol Entry() service
• should the Entry() service return, the dispatcher makes
another pass to find any additional drivers now able to
execute and dispatches them, then executes the Entry()
service again
DXE
Core

DXE Phase foundation
completed

DXE
Dispatcher

Completed
dispatching DXE
drivers

BDS.Entry

State changed, attempt to
load additional DXE drivers

© 2013 Insyde Software

14
Agenda
•

Understanding the UEFI architecture

•

The role of a UEFI BIOS in an x86
embedded design

•

Where to get support when you need it

© 2013 Insyde Software

15
UEFI Advantages
• Embedded system often have unique hardware and a
UEFI BIOS isolates pre-boot applications and OS
initialization code from the hardware
• The code is based on effective standards and UEFI BIOS
uses widely available development environments to
reduce training and learning curve demands
• Since UEFI drivers are written in C and a UEFI BIOS has a
consistent driver architecture and simple dispatchers, a
driver writer can be productive almost immediately
• Using portable coding methods, InsydeH2O is also an
example of how common UEFI BIOS code can support
32- and 64-bit x86, ARM and Itanium platforms
© 2013 Insyde Software

16
Starting a new Huron River based Project
PROJECT_FAMILY
PROJECT_NAME

= ProjectInsyde
= $(DEMOBOARD_NAME)

PROJECT_FAMILY
PROJECT_NAME

= ProjectSeussCorp
= Thing1

2. Edit BuildPlatform.env to point to the
new directory
3. Build a clone of the Huron River CRB
BIOS to check your work

1. Copy the ProjectInsydeHuronRiver
directory to ProjectSeussCorpThing1
© 2013 Insyde Software

17
Adapt the Project Directory to your
Hardware
•
•
•
•
•

•
•

•
•

Change clock generator code if necessary
Change interrupt routing if necessary
Change Smbus MUX code or remove it, as needed
Change SPD addresses if needed
Change Insyde feature set choices to match your
requirements (if you are starting from an Insyde BIOS)
Do a test build: if it is successful, you may have an easy
porting effort
Comment out everything that should not be required for
a first “bring up” build
Build your “bring up” BIOS and test it on the new
hardware
Add commented out features, one at a time
© 2013 Insyde Software

18
Add New Drivers and Feature Support Code
• Here you have to write new code; or you may need
to port code from a previous PPC, ARM or legacy
BIOS
• Some of the new code will be inserted into existing
drivers and PEIMs, some of it will form entirely new
drivers and PEIMs
• These changes often involve the user interface, and
they should be carefully specified so as to minimize
the need to redesign after building the first
prototype

© 2013 Insyde Software

19
Agenda
•

Understanding the UEFI architecture

•

The role of a UEFI BIOS in an x86 embedded
design

•

Where to get support when you need it

© 2013 Insyde Software

20
Don’t Forget Support!
• Insyde Support
•
•
•
•
•
•
•

Engineer to engineer support
Experienced firmware engineers
Worldwide training and certification
Turn key support or support as needed
Worldwide support
Strong Intel partnership
Ready to help – Now!

© 2013 Insyde Software

21
Thank You!

© 2013 Insyde Software

22
Insyde Software is an Affiliate member of the Intel® Intelligent Systems Alliance, a
global ecosystem of 200+ member companies that provide the performance,
connectivity, manageability, and security developers need to create smart, connected
systems

Insyde and InsydeH2O are registered trademarks of Insyde Software.
Intel is a registered trademark of Intel Corporation in the United States and other countries.

© 2013 Insyde Software

23

Contenu connexe

Tendances

booting steps of a computer
booting steps of a computerbooting steps of a computer
booting steps of a computer
Anusha Babooa
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequence
Houcheng Lin
 
3. Testeo Y Verificacion
3. Testeo Y Verificacion3. Testeo Y Verificacion
3. Testeo Y Verificacion
CANDIDO RUIZ
 

Tendances (20)

Introduction to char device driver
Introduction to char device driverIntroduction to char device driver
Introduction to char device driver
 
Unified Extensible Firmware Interface (UEFI)
Unified Extensible Firmware Interface (UEFI)Unified Extensible Firmware Interface (UEFI)
Unified Extensible Firmware Interface (UEFI)
 
BIOS AND OS
BIOS AND OSBIOS AND OS
BIOS AND OS
 
Linux device drivers
Linux device drivers Linux device drivers
Linux device drivers
 
Architecture Of The Linux Kernel
Architecture Of The Linux KernelArchitecture Of The Linux Kernel
Architecture Of The Linux Kernel
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot)
 
Linux kernel Architecture and Properties
Linux kernel Architecture and PropertiesLinux kernel Architecture and Properties
Linux kernel Architecture and Properties
 
LCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted FirmwareLCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted Firmware
 
booting steps of a computer
booting steps of a computerbooting steps of a computer
booting steps of a computer
 
Embedded C programming session10
Embedded C programming  session10Embedded C programming  session10
Embedded C programming session10
 
Booting process by Amar singh
Booting process by Amar singhBooting process by Amar singh
Booting process by Amar singh
 
ITE v5.0 - Chapter 12
ITE v5.0 - Chapter 12ITE v5.0 - Chapter 12
ITE v5.0 - Chapter 12
 
05 - BIOS.ppt
05 - BIOS.ppt05 - BIOS.ppt
05 - BIOS.ppt
 
EMBEDDED C
EMBEDDED CEMBEDDED C
EMBEDDED C
 
Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_
 
Linux Initialization Process (2)
Linux Initialization Process (2)Linux Initialization Process (2)
Linux Initialization Process (2)
 
System Booting Process overview
System Booting Process overviewSystem Booting Process overview
System Booting Process overview
 
Introduction to Embedded Linux
Introduction to Embedded LinuxIntroduction to Embedded Linux
Introduction to Embedded Linux
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequence
 
3. Testeo Y Verificacion
3. Testeo Y Verificacion3. Testeo Y Verificacion
3. Testeo Y Verificacion
 

En vedette (7)

Bios uefi y legacy
Bios uefi y legacyBios uefi y legacy
Bios uefi y legacy
 
Uefi and bios
Uefi and biosUefi and bios
Uefi and bios
 
UEFI presentation
UEFI presentationUEFI presentation
UEFI presentation
 
Grub
GrubGrub
Grub
 
Description of GRUB 2
Description of GRUB 2Description of GRUB 2
Description of GRUB 2
 
Real time Operating System
Real time Operating SystemReal time Operating System
Real time Operating System
 
Real Time OS For Embedded Systems
Real Time OS For Embedded SystemsReal Time OS For Embedded Systems
Real Time OS For Embedded Systems
 

Similaire à Implementing a UEFI BIOS into an Embedded System

Distro Recipes 2013: Secure Boot and Linux: several issues, one solution
Distro Recipes 2013: Secure Boot and Linux: several issues, one solutionDistro Recipes 2013: Secure Boot and Linux: several issues, one solution
Distro Recipes 2013: Secure Boot and Linux: several issues, one solution
Anne Nicolas
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latest
Srikanth Pilli
 
RESUME-RAJASHAKER GOUD RANGA_new
RESUME-RAJASHAKER GOUD RANGA_newRESUME-RAJASHAKER GOUD RANGA_new
RESUME-RAJASHAKER GOUD RANGA_new
Raj Shaker
 

Similaire à Implementing a UEFI BIOS into an Embedded System (20)

Ite pc v40_chapter5
Ite pc v40_chapter5Ite pc v40_chapter5
Ite pc v40_chapter5
 
XPDS14 - Xen in EFI World - Daniel Kiper, Oracle
XPDS14 - Xen in EFI World - Daniel Kiper, OracleXPDS14 - Xen in EFI World - Daniel Kiper, Oracle
XPDS14 - Xen in EFI World - Daniel Kiper, Oracle
 
Ite v5.0 chapter5
Ite v5.0 chapter5Ite v5.0 chapter5
Ite v5.0 chapter5
 
Fast Boot Times with InsydeH2O
Fast Boot Times with InsydeH2OFast Boot Times with InsydeH2O
Fast Boot Times with InsydeH2O
 
Distro Recipes 2013: Secure Boot and Linux: several issues, one solution
Distro Recipes 2013: Secure Boot and Linux: several issues, one solutionDistro Recipes 2013: Secure Boot and Linux: several issues, one solution
Distro Recipes 2013: Secure Boot and Linux: several issues, one solution
 
docslide-3df5a529-2ffd-ef23.ppt
docslide-3df5a529-2ffd-ef23.pptdocslide-3df5a529-2ffd-ef23.ppt
docslide-3df5a529-2ffd-ef23.ppt
 
Windows_Installation.pptx
Windows_Installation.pptxWindows_Installation.pptx
Windows_Installation.pptx
 
XPDDS17: EFI Secure Boot, Shim and Xen: Current Status and Developments - Da...
XPDDS17:  EFI Secure Boot, Shim and Xen: Current Status and Developments - Da...XPDDS17:  EFI Secure Boot, Shim and Xen: Current Status and Developments - Da...
XPDDS17: EFI Secure Boot, Shim and Xen: Current Status and Developments - Da...
 
ITE v5.0 - Chapter 5
ITE v5.0 - Chapter 5ITE v5.0 - Chapter 5
ITE v5.0 - Chapter 5
 
K2000 Scripted Installations
K2000 Scripted InstallationsK2000 Scripted Installations
K2000 Scripted Installations
 
eFolder Expert Series Webinar - BDR Do's and Dont's: Featuring Andrew Bensing...
eFolder Expert Series Webinar - BDR Do's and Dont's: Featuring Andrew Bensing...eFolder Expert Series Webinar - BDR Do's and Dont's: Featuring Andrew Bensing...
eFolder Expert Series Webinar - BDR Do's and Dont's: Featuring Andrew Bensing...
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latest
 
Introduction to Embedded Systems
Introduction to Embedded SystemsIntroduction to Embedded Systems
Introduction to Embedded Systems
 
ITE7_Chp10.pptx
ITE7_Chp10.pptxITE7_Chp10.pptx
ITE7_Chp10.pptx
 
BKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFIBKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFI
 
Bkk16 309B Enterprise Firmware - The gold standard and how to get there
Bkk16 309B Enterprise Firmware - The gold standard and how to get thereBkk16 309B Enterprise Firmware - The gold standard and how to get there
Bkk16 309B Enterprise Firmware - The gold standard and how to get there
 
RESUME-RAJASHAKER GOUD RANGA_new
RESUME-RAJASHAKER GOUD RANGA_newRESUME-RAJASHAKER GOUD RANGA_new
RESUME-RAJASHAKER GOUD RANGA_new
 
E.s unit 6
E.s unit 6E.s unit 6
E.s unit 6
 
Operating Systems 1 (4/12) - Architectures (Windows)
Operating Systems 1 (4/12) - Architectures (Windows)Operating Systems 1 (4/12) - Architectures (Windows)
Operating Systems 1 (4/12) - Architectures (Windows)
 
Open Source Firmware - FrOSCon 2019
Open Source Firmware - FrOSCon 2019Open Source Firmware - FrOSCon 2019
Open Source Firmware - FrOSCon 2019
 

Dernier

CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Dernier (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Implementing a UEFI BIOS into an Embedded System

  • 1. Implementing a UEFI BIOS in an Embedded System Insyde Software © 2013 Insyde Software 1
  • 2. Insyde Software • Develops, deploys and supports the latest BIOS replacement firmware that is based on the UEFI Framework and UEFI 2.x • Embedded BIOS business – Many of Intel’s largest embedded customers continue adoption of InsydeH2O across multiple business units • Strong alignment to Intel ECG Roadmap and platforms • Founded September 1998 © 2013 Insyde Software 2
  • 3. Agenda • Understanding the UEFI architecture • The role of a UEFI BIOS in an x86 embedded design • Where to get support when you need it © 2013 Insyde Software 3
  • 4. Key Benefits of UEFI Firmware  Provides industry standard interfaces for CPUs, chipsets and platform features  Modular source code base can be used across different products Compatibility Support Module Insyde Drivers  Adapted by Intel, AMD, Microsoft OEM /ODM Drivers  Easier to implement new technologies and features Generic Drivers  Pre-boot environment facilitates innovation Legacy UEFI UEFI Pre-boot Option OpRom Tools ROMs and Legacy OS UEFI API UEFIenabled OS Foundations Architectural Protocols Hardware © 2013 Insyde Software 4
  • 5. Boot Flow © 2013 Insyde Software 5
  • 6. Security Phase (SEC) • When the processor’s RESET line is released and the first instruction is fetched from the RESET vector, the SEC phase begins • Objectives: – The first part of the SEC is a small assembly language module that switches the processor from 16-bit real mode to 32-bit protected mode – Next, it enables a memory model that permits stack based C code to be executed with only a few limitations – The SEC is the security kernel, it can also authenticate the next phase’s code verifying it to be trustworthy © 2013 Insyde Software 6
  • 7. Security Phase SEC 1. SEC creates an early cache based memory environment 2. SEC knows the fixed location of the boot firmware volume and can validate the PEI image 3. SEC passes control to PEI core located in the BFV Trustworthy RAM Boot Firmware Volume PEI Core PEIMS © 2013 Insyde Software 7
  • 8. Pre-EFI Initialization (PEI) • The PEI phase is responsible for initializing enough of the system to provide a stable base for the remainder of the BIOS • PEI phase handles detecting and recovering from corruption and failure of the firmware store • PEI phase consists of three stages: – The smallest possible set of modules to prepare for the initialization of the memory (critical bus and processor configuration) – Memory initialization & capture of information to be passed to the OS and the remainder of the BIOS – Checking for firmware corruption and setting the boot mode to address special cases if necessary © 2013 Insyde Software 8
  • 9. Handoff Blocks (HOBs) • A Handoff Block (HOB) is a binary data structure that contains information to be passed from a PEI Module to a DXE driver, application or OS component • HOBs are the standard way information is passed from the PEI Phase to later phases of the BIOS © 2013 Insyde Software 9
  • 10. The Driver Execution (DXE) Phase • The DXE phase is that part of the code where most of the system initialization is performed – It is loaded and executed once the PEI phase has finished initializing system memory for the platform. • Its function is to: – Do all the remaining necessary hardware setup and set up the UEFI System Table structures to provide the necessary services to the Boot Device Selection (BDS) code for it to run transient applications and OS loaders – Provide the API interfaces needed by OS loaders to boot all the supported OSes © 2013 Insyde Software 10
  • 11. Components of the DXE Phase • DXE Core – Main DXE executable binary; creates tables identifying Boot and Runtime Services; responsible for dispatching drivers and setting up the DXE tables • DXE Drivers – A module loaded by the Core to perform initialization and/or to produce protocols and other services • DXE Dispatcher – Part of the DXE Core: searches for and executes drivers • DXE Architecture Protocols – Produced by DXE drivers; to abstract DXE from hardware • EFI System Table – Contains pointers to UEFI service tables, configuration data, thehandle database and console devices © 2013 Insyde Software 11
  • 12. The UEFI System Table Active Consoles Input Console Output Console Standard Error Console EFI System Table EFI Runtime Services Table Variable Services Real-Time Clock Services Reset Services Status Code Services EFI Boot Services Table Virtual Memory Services Task Priority Level Services Memory Services Version Information Event and Timer Services EFI Specification Version Protocol Handler Services Firmware Vendor Image Services Firmware Revision Driver Support Services DXE Services Table Global Coherency Domain Services Dispatcher Services System Configuration Table DXE Services Table HOB List ACPI Table SMBIOS Table Handle Database Protocol Interface Protocol Interface Protocol Interface Protocol Interface Protocol Interface Protocol Interface Boot Services and Structures Only available before the OS runtime … SAL System Table Runtime Services and Structures Available before and during OS runtime © 2013 Insyde Software 12
  • 13. The Handle Database The Handle Database Each Handle GUID Interface The DXE Driver Image GUID Interface ... ... BlkIo->ReadBlocks(BlkIo, …) Protocol Interface Function Pointer Function Pointer ... Device-Specific Context © 2013 Insyde Software 13
  • 14. Dispatching the BDS Protocol Entry() • The DXE dispatcher exits when it can not find and dispatch any more drivers • It invokes the BDS Protocol Entry() service • should the Entry() service return, the dispatcher makes another pass to find any additional drivers now able to execute and dispatches them, then executes the Entry() service again DXE Core DXE Phase foundation completed DXE Dispatcher Completed dispatching DXE drivers BDS.Entry State changed, attempt to load additional DXE drivers © 2013 Insyde Software 14
  • 15. Agenda • Understanding the UEFI architecture • The role of a UEFI BIOS in an x86 embedded design • Where to get support when you need it © 2013 Insyde Software 15
  • 16. UEFI Advantages • Embedded system often have unique hardware and a UEFI BIOS isolates pre-boot applications and OS initialization code from the hardware • The code is based on effective standards and UEFI BIOS uses widely available development environments to reduce training and learning curve demands • Since UEFI drivers are written in C and a UEFI BIOS has a consistent driver architecture and simple dispatchers, a driver writer can be productive almost immediately • Using portable coding methods, InsydeH2O is also an example of how common UEFI BIOS code can support 32- and 64-bit x86, ARM and Itanium platforms © 2013 Insyde Software 16
  • 17. Starting a new Huron River based Project PROJECT_FAMILY PROJECT_NAME = ProjectInsyde = $(DEMOBOARD_NAME) PROJECT_FAMILY PROJECT_NAME = ProjectSeussCorp = Thing1 2. Edit BuildPlatform.env to point to the new directory 3. Build a clone of the Huron River CRB BIOS to check your work 1. Copy the ProjectInsydeHuronRiver directory to ProjectSeussCorpThing1 © 2013 Insyde Software 17
  • 18. Adapt the Project Directory to your Hardware • • • • • • • • • Change clock generator code if necessary Change interrupt routing if necessary Change Smbus MUX code or remove it, as needed Change SPD addresses if needed Change Insyde feature set choices to match your requirements (if you are starting from an Insyde BIOS) Do a test build: if it is successful, you may have an easy porting effort Comment out everything that should not be required for a first “bring up” build Build your “bring up” BIOS and test it on the new hardware Add commented out features, one at a time © 2013 Insyde Software 18
  • 19. Add New Drivers and Feature Support Code • Here you have to write new code; or you may need to port code from a previous PPC, ARM or legacy BIOS • Some of the new code will be inserted into existing drivers and PEIMs, some of it will form entirely new drivers and PEIMs • These changes often involve the user interface, and they should be carefully specified so as to minimize the need to redesign after building the first prototype © 2013 Insyde Software 19
  • 20. Agenda • Understanding the UEFI architecture • The role of a UEFI BIOS in an x86 embedded design • Where to get support when you need it © 2013 Insyde Software 20
  • 21. Don’t Forget Support! • Insyde Support • • • • • • • Engineer to engineer support Experienced firmware engineers Worldwide training and certification Turn key support or support as needed Worldwide support Strong Intel partnership Ready to help – Now! © 2013 Insyde Software 21
  • 22. Thank You! © 2013 Insyde Software 22
  • 23. Insyde Software is an Affiliate member of the Intel® Intelligent Systems Alliance, a global ecosystem of 200+ member companies that provide the performance, connectivity, manageability, and security developers need to create smart, connected systems Insyde and InsydeH2O are registered trademarks of Insyde Software. Intel is a registered trademark of Intel Corporation in the United States and other countries. © 2013 Insyde Software 23