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

Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8Linaro
 
Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_Linaro
 
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBLinux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBshimosawa
 
An Insight into the Linux Booting Process
An Insight into the Linux Booting ProcessAn Insight into the Linux Booting Process
An Insight into the Linux Booting ProcessHardeep Bhurji
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot) Omkar Rane
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)RuggedBoardGroup
 
LCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLinaro
 
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareHKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareLinaro
 
HKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewHKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewLinaro
 
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLinaro
 
SFO15-503: Secure storage in OP-TEE
SFO15-503: Secure storage in OP-TEESFO15-503: Secure storage in OP-TEE
SFO15-503: Secure storage in OP-TEELinaro
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequenceHoucheng Lin
 
Linux booting procedure
Linux booting procedureLinux booting procedure
Linux booting procedureDhaval Kaneria
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMSherif Mousa
 
U-Boot presentation 2013
U-Boot presentation  2013U-Boot presentation  2013
U-Boot presentation 2013Wave Digitech
 

Tendances (20)

Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8
 
Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_
 
Spi drivers
Spi driversSpi drivers
Spi drivers
 
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBLinux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKB
 
U-Boot - An universal bootloader
U-Boot - An universal bootloader U-Boot - An universal bootloader
U-Boot - An universal bootloader
 
An Insight into the Linux Booting Process
An Insight into the Linux Booting ProcessAn Insight into the Linux Booting Process
An Insight into the Linux Booting Process
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot)
 
Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)Embedded Linux BSP Training (Intro)
Embedded Linux BSP Training (Intro)
 
LCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platform
 
What is Bootloader???
What is Bootloader???What is Bootloader???
What is Bootloader???
 
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareHKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
 
HKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting ReviewHKG15-311: OP-TEE for Beginners and Porting Review
HKG15-311: OP-TEE for Beginners and Porting Review
 
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
 
Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
 
SFO15-503: Secure storage in OP-TEE
SFO15-503: Secure storage in OP-TEESFO15-503: Secure storage in OP-TEE
SFO15-503: Secure storage in OP-TEE
 
Uboot startup sequence
Uboot startup sequenceUboot startup sequence
Uboot startup sequence
 
Linux booting procedure
Linux booting procedureLinux booting procedure
Linux booting procedure
 
Building Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARMBuilding Embedded Linux Full Tutorial for ARM
Building Embedded Linux Full Tutorial for ARM
 
U-Boot presentation 2013
U-Boot presentation  2013U-Boot presentation  2013
U-Boot presentation 2013
 
Bsd ppt
Bsd pptBsd ppt
Bsd ppt
 

En vedette

Unified Extensible Firmware Interface (UEFI)
Unified Extensible Firmware Interface (UEFI)Unified Extensible Firmware Interface (UEFI)
Unified Extensible Firmware Interface (UEFI)k33a
 
Description of GRUB 2
Description of GRUB 2Description of GRUB 2
Description of GRUB 2iamumr
 
Real time Operating System
Real time Operating SystemReal time Operating System
Real time Operating SystemTech_MX
 
Real Time OS For Embedded Systems
Real Time OS For Embedded SystemsReal Time OS For Embedded Systems
Real Time OS For Embedded SystemsHimanshu Ghetia
 

En vedette (7)

Unified Extensible Firmware Interface (UEFI)
Unified Extensible Firmware Interface (UEFI)Unified Extensible Firmware Interface (UEFI)
Unified Extensible Firmware Interface (UEFI)
 
Bios uefi y legacy
Bios uefi y legacyBios uefi y legacy
Bios uefi y legacy
 
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

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, OracleThe Linux Foundation
 
Fast Boot Times with InsydeH2O
Fast Boot Times with InsydeH2OFast Boot Times with InsydeH2O
Fast Boot Times with InsydeH2Oinsydesoftware
 
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 solutionAnne Nicolas
 
docslide-3df5a529-2ffd-ef23.ppt
docslide-3df5a529-2ffd-ef23.pptdocslide-3df5a529-2ffd-ef23.ppt
docslide-3df5a529-2ffd-ef23.pptPrasannaDeSilva7
 
Windows_Installation.pptx
Windows_Installation.pptxWindows_Installation.pptx
Windows_Installation.pptxLearyJohn
 
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...The Linux Foundation
 
ITE v5.0 - Chapter 5
ITE v5.0 - Chapter 5ITE v5.0 - Chapter 5
ITE v5.0 - Chapter 5Irsandi Hasan
 
K2000 Scripted Installations
K2000 Scripted InstallationsK2000 Scripted Installations
K2000 Scripted InstallationsDell World
 
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...eFolder
 
Srikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth_PILLI_CV_latest
Srikanth_PILLI_CV_latestSrikanth Pilli
 
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 UEFILinaro
 
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 thereLinaro
 
RESUME-RAJASHAKER GOUD RANGA_new
RESUME-RAJASHAKER GOUD RANGA_newRESUME-RAJASHAKER GOUD RANGA_new
RESUME-RAJASHAKER GOUD RANGA_newRaj Shaker
 
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)Peter Tröger
 
Open Source Firmware - FrOSCon 2019
Open Source Firmware - FrOSCon 2019Open Source Firmware - FrOSCon 2019
Open Source Firmware - FrOSCon 2019Daniel Maslowski
 

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

[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.pdfhans926745
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
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...Neo4j
 
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 2024Rafal Los
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
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 organizationRadu Cotescu
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
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 MenDelhi Call girls
 
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)wesley chun
 

Dernier (20)

[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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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...
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
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
 
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)
 

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