• No results found

Providing a jump start to EFI application development and a uniform pre-boot environment

N/A
N/A
Protected

Academic year: 2021

Share "Providing a jump start to EFI application development and a uniform pre-boot environment"

Copied!
24
0
0

Loading.... (view fulltext now)

Full text

(1)

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.

(2)

Intel Intel

Agenda

Agenda

l

l

EFI Application Toolkit

EFI Application Toolkit

Objectives & ComponentsObjectives & Components

Development ModelDevelopment Model

TimelineTimeline

l

(3)

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

(4)

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

(5)

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

(6)

Intel Intel

Toolkit Components

Toolkit Components

Hardware EFI EFI Shell Utilities

Libc Network MP Te st Managem ent Securit y EFI API EFI API EFI API

(7)

Intel Intel Toolkit Components Toolkit Components

EFI Shell

EFI Shell

l

l

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

(8)

Intel Intel Toolkit Components Toolkit Components

Common Utilities

Common Utilities

l

l

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

(9)

Intel Intel Toolkit Components Toolkit Components

Libc

Libc

l

l 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

(10)

Intel Intel Toolkit Components Toolkit Components

Remote Debugger

Remote Debugger

EFI app. l

l 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

(11)

Intel Intel Toolkit Components Toolkit Components

Network Stack

Network Stack

l

l

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

(12)

Intel Intel Toolkit Components Toolkit Components

MP Test Support

MP Test Support

l

l

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

(13)

Intel Intel Toolkit Components Toolkit Components

Platform Management

Platform Management

l

l

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

(14)

Intel Intel Toolkit Components Toolkit Components

Security Service

Security Service

l

l

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

(15)

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

(16)

Intel Intel

Toolkit Timeline

Toolkit Timeline

2000 1999 Security Service And Updated Extended Utilities Remote Debugger

Feb 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

(17)

Intel Intel

Agenda

Agenda

l

l

EFI Application Toolkit

EFI Application Toolkit

Objectives & Components

Objectives & Components

Development Model

Development Model

Timeline

Timeline

l

(18)

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

(19)

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

(20)

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

(21)

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

(22)

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

(23)

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

[email protected]

(24)

Intel Intel

References

Related documents