19 efi byte code virtual machine, 1 overview, 1 processor architecture independence – Intel Extensible Firmware Interface User Manual

Page 775

Advertising
background image

Version 1.10

12/01/02

19-1

19

EFI Byte Code Virtual Machine

This chapter defines an EFI Byte Code (EBC) Virtual Machine that can provide platform- and
processor-independent mechanisms for loading and executing EFI device drivers.

19.1 Overview

The current design for option ROMs that are used in IA-32 personal computer systems has been in
place since 1981. Attempts to change the basic design requirements have failed for a variety of
reasons. The EBC Virtual Machine described in this chapter is attempting to help achieve the
following goals:
• Abstract and extensible design
• Processor independence
• OS independence
• Build upon existing specifications when possible
• Facilitate the removal of legacy infrastructure
• Exclusive use of EFI Services
One way to satisfy many of these goals is to define a pseudo or virtual machine that can interpret
a predefined instruction set. This will allow the virtual machine to be ported across processor and
system architectures without changing or recompiling the option ROM. This specification defines
a set of machine level instructions that can be generated by a C compiler.

The following sections are a detailed description of the requirements placed on future
option ROMs.

19.1.1 Processor Architecture Independence

Option ROM images shall be independent of IA-32 and Itanium architectures. In order to abstract
the architectural differences between processors (not just limited to IA-32 and Itanium processors)
option ROM images shall be EBC. This model is presented below:
• 64-bit C source code
• The EFI EBC image is the flashed image
• The system BIOS implements the EBC interpreter
• The interpreter handles 32 vs. 64 bit issues
Current Option ROM technology is processor dependent and heavily reliant upon the existence of
the PC-AT infrastructure. These dependencies inhibit the evolution of both hardware and software
under the veil of “backward compatibility.” A solution that isolates the hardware and support
infrastructure through abstraction will facilitate the uninhibited progression of technology.

Advertising