Intel Intel
Providing a jump start to EFI
Providing a jump start to EFI
application development and a
application development and a
uniform pre
uniform pre--boot environmentboot environment Yosi Govezensky
Yosi Govezensky
Program Manager
Program Manager
Microcomputer Software Labs
Microcomputer Software Labs
Intel Corp.
Intel Corp.
Intel Intel
Agenda
Agenda
l
l
EFI Application Toolkit
EFI Application Toolkit
–
–Objectives & ComponentsObjectives & Components
–
–Development ModelDevelopment Model
–
–TimelineTimeline
l
Intel Intel
EFI Overview
EFI Overview
l
l Interface specificationInterface specification
–
– Implementation agnosticImplementation agnostic
l
l Abstracts BIOS from OSAbstracts BIOS from OS
–
– Decouples developmentDecouples development
l
l Compatible by designCompatible by design
–
– Evolution, not revolutionEvolution, not revolution
l
l Modular and extensibleModular and extensible
–
– OSOS--Neutral value addNeutral value add
l
l Complements existing interfacesComplements existing interfaces
OS Loader
Hardware BIOS
EFI
Flexible to meet existing and future needs
Flexible to meet existing
Compa
ti
bi
li
Intel Intel
Toolkit Objectives
Toolkit Objectives
l
l Enable rapid application development for EFIEnable rapid application development for EFI
–
– Help reduce the porting effortHelp reduce the porting effort
l
l Create rich preCreate rich pre--boot environment industry can boot environment industry can count on
count on
l
l Enable 3rd party marketEnable 3rd party market
–
– e.g platform utilitiese.g platform utilities
l
l Allow industry contributionAllow industry contribution
l
l Uniform environment between IAUniform environment between IA--32 and IA32 and IA--6464 Jump start EFI application
development
Jump start EFI application development
Intel Intel
Toolkit Components
Toolkit Components
l
l EFI shellEFI shell
l
l Common UtilitiesCommon Utilities
l
l LibcLibc
l
l Remote DebuggerRemote Debugger
l
l Network StackNetwork Stack
l
l Multiple Processor Test SupportMultiple Processor Test Support
l
l Platform ManagementPlatform Management
l
l Security ServiceSecurity Service
Useful tools for EFI application development
Useful tools for EFI
Useful tools for EFI application development
Sources are
Sources are
provided
Intel Intel
Toolkit Components
Toolkit Components
Hardware EFI EFI Shell UtilitiesLibc Network MP Te st Managem ent Securit y EFI API EFI API EFI API
Intel Intel Toolkit Components Toolkit Components
EFI Shell
EFI Shell
ll
Interactive console interface
Interactive console interface
l
l
Application launch
Application launch
l
l
Load EFI protocols and drivers
Load EFI protocols and drivers
l
l
Simple scripting capability
Simple scripting capability
l
l
Automatic execution of startup batch file
Automatic execution of startup batch file
l
Intel Intel Toolkit Components Toolkit Components
Common Utilities
Common Utilities
ll
Core utilities
Core utilities
–
–cp, rm, mkdir, type, …..cp, rm, mkdir, type, …..
l
l
Extended utilities
Extended utilities
–
–Network utilitiesNetwork utilities
–
– FTP client and server, pingFTP client and server, ping
–
–Text editorText editor
l
Intel Intel Toolkit Components Toolkit Components
Libc
Libc
ll FreeBSD portFreeBSD port
l
l System I/O System I/O -- open(), read(), write(), close(), stat(),open(), read(), write(), close(), stat(), l
l Standard I/O Standard I/O -- fopen()…, printf()…, gets()…fopen()…, printf()…, gets()… l
l String/Char String/Char -- strcmp()…, isupper()…, atoi()…, strcmp()…, isupper()…, atoi()…, l
l MemoryMemory -- malloc(), calloc(), realloc(), free()malloc(), calloc(), realloc(), free() l
l Time/DateTime/Date -- time()…, asctime()…, ctime()…time()…, asctime()…, ctime()… l
Intel Intel Toolkit Components Toolkit Components
Remote Debugger
Remote Debugger
EFI app. ll Enable debugging Enable debugging
–
– EFI applications, drivers, and protocolsEFI applications, drivers, and protocols
l
l User interface User interface
–
– Provided by “commercial” debuggerProvided by “commercial” debugger
–
– Requires debugger with remote debug Requires debugger with remote debug
capability capability l
l Toolkit agent Toolkit agent
–
– Can be customized for remote protocolsCan be customized for remote protocols
–
– Intel Enhanced Debugger (EDB) referenceIntel Enhanced Debugger (EDB) reference
–
– EDB is included in the IAEDB is included in the IA-64 SDK-64 SDK
Debug GUI
“Firmware” source debug
Intel Intel Toolkit Components Toolkit Components
Network Stack
Network Stack
ll
Port of FreeBSD TCP/IP stack
Port of FreeBSD TCP/IP stack
l
l
Supports standard protocols
Supports standard protocols
–
–IPv4, ICMP, ARP, UDP, TCPIPv4, ICMP, ARP, UDP, TCP
l
l
Socket library interface
Socket library interface
l
l
Implemented as an EFI protocol
Implemented as an EFI protocol
Network functionality in FW
Intel Intel Toolkit Components Toolkit Components
MP Test Support
MP Test Support
ll
Execute non
Execute non
-
-
EFI based code on non
EFI based code on non
-
-boot processors
boot processors
–
–Primarily used for diagnostics and Primarily used for diagnostics and manufacturing test
manufacturing test
–
–Cannot make use of EFI services on nonCannot make use of EFI services on non- -boot processors in first release
boot processors in first release
l
l
Inter
Inter
-
-
processor synchronization
processor synchronization
functions
Intel Intel Toolkit Components Toolkit Components
Platform Management
Platform Management
ll
SMBIOS Interface
SMBIOS Interface
–
–Library routines for parsing SMBIOS Library routines for parsing SMBIOS tables
tables
l
l
IPMI 1.0 Interface
IPMI 1.0 Interface
–
–EFI protocol for sending and receiving EFI protocol for sending and receiving IPMI messages
Intel Intel Toolkit Components Toolkit Components
Security Service
Security Service
ll
Limited but extensible platform security
Limited but extensible platform security
–
–Service that application may choose to useService that application may choose to use
–
–Common security interfaceCommon security interface
–
–Customizable security policiesCustomizable security policies
l
l
Provide reference implementation
Provide reference implementation
–
–Unix style password fileUnix style password file
–
–OneOne--way encryption way encryption
–
– Given user and password.. “is this user authenticated ?”Given user and password.. “is this user authenticated ?”
Rudimentary application
Intel Intel
Development Model
Development Model
l
l Toolkit adopters are free to make source code Toolkit adopters are free to make source code changes
changes
–
– There are no restrictions on differentiation There are no restrictions on differentiation
l
l CollaborationCollaboration
–
– We will incorporate changes that are voluntarily We will incorporate changes that are voluntarily
returned and benefit industry as a whole returned and benefit industry as a whole –
– There is a desire to keep the toolkit environment There is a desire to keep the toolkit environment
uniform uniform l
l New releases to be posted on the webNew releases to be posted on the web
Continuously improve, while maintaining basic compatibility
Continuously improve, while
Continuously improve, while
maintaining basic compatibility
Intel Intel
Toolkit Timeline
Toolkit Timeline
2000 1999 Security Service And Updated Extended Utilities Remote DebuggerFeb Apr Jun Aug
Dec EFI Shell and Utilities Libc, Network Stack, Platform Management, and Python
Incremental releases
Tools to help you are ready now Tools to help you are ready now
Tools to help you are ready now
MP Test Support
Intel Intel
Agenda
Agenda
l
l
EFI Application Toolkit
EFI Application Toolkit
–
–
Objectives & Components
Objectives & Components
–
–
Development Model
Development Model
–
–
Timeline
Timeline
l
Intel Intel
EFI Update
EFI Update
2000 1999 Ke y M il est o n es Ke y M il est o n es 1.0 Spec 1.1 Spec 0.92 review ends…And future revs as needed Feb Dec 0.92 Spec l l
Specification
Specification
––0.92 is “Release Candidate” (RC) for 1.00.92 is “Release Candidate” (RC) for 1.0
l
l
Reference Implementation
Reference Implementation
–
–To be posted following specificationTo be posted following specification
Q2 Q3 Q4
Intel Intel
EFI Specification
EFI Specification
–
–
Next
Next
l
l
Version 1.01
Version 1.01
–
–Graphics Protocol (bitblit)Graphics Protocol (bitblit)
–
–Pointer Protocol (mouse)Pointer Protocol (mouse)
–
–Debug ProtocolDebug Protocol
l
l
Version 1.1
Version 1.1
–
–Architecture independent PCI Option ROMArchitecture independent PCI Option ROM EFI continues to evolve
EFI continues to evolve
Intel Intel
PCI Option ROM
PCI Option ROM
–
–Already in 0.92: Already in 0.92:
–
– EFI Driver as PCI Option ROM imageEFI Driver as PCI Option ROM image
–
– Multiple formats in a single Option ROMMultiple formats in a single Option ROM
–
–Goals for 1.1Goals for 1.1
–
– CPU architecture neutral CPU architecture neutral
–
– One C source One C source –– multiple targetsmultiple targets
–
– Regular EFI DriverRegular EFI Driver
–
– Small image sizeSmall image size
–
– Small interpreter in FirmwareSmall interpreter in Firmware
One IHV SKU fits all One IHV SKU fits all
Intel Intel
Summary
Summary
l
l
EFI continues to evolve
EFI continues to evolve
l
l
Toolkit provides useful tools
Toolkit provides useful tools
l
l
Development model
Development model
–
–Continuously improve while maintaining Continuously improve while maintaining basic compatibility
basic compatibility
l
Intel Intel
EFI on the Web
EFI on the Web
l
l
EFI Homepage
EFI Homepage
–
– http://developer.intel.com/technology/efihttp://developer.intel.com/technology/efi
–
– register for EFI mailing listregister for EFI mailing list
–
– provide feedback on the specificationprovide feedback on the specification
–
– sample implementation, EFI toolkit and sample implementation, EFI toolkit and docs
docs
l
l
EFI FAT32 and PE/COFF Image
EFI FAT32 and PE/COFF Image
–
Intel Intel
Call for Action
Call for Action
l
l
Download latest EFI Specification
Download latest EFI Specification
l
l
“Pass the word” on the toolkit…
“Pass the word” on the toolkit…
–
–Make sure EFI developers in your Make sure EFI developers in your company are aware of the toolkit
company are aware of the toolkit
–
–Intended to speed up developmentIntended to speed up development
l
l
Feedback on EFI applications plans
Feedback on EFI applications plans
Intel Intel