Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
Extensible Firmware Interface Specification
2-18 12/01/02 Version 1.10
2.5.1.2 Fixed Resources for Working with Option ROMs
Since legacy option ROMs can only directly address the lower 1 MB of system memory, this means
that the code from the legacy option ROM must exist below 1 MB. In a PC-AT platform, memory
from 0x00000-0x9FFFF is system memory. Memory from 0xA0000-0xBFFFF is VGA memory,
and memory from 0xF0000-0xFFFFF is reserved for the system BIOS. Also, since system BIOS
has become more complex over the years, many platforms also use 0xE0000-0xEFFFF for system
BIOS. This leaves 128 KB of memory from 0xC0000-0xDFFFF for legacy option ROMs. This
limits how many legacy option ROMs can be run during BIOS POST.
Also, it is not easy for legacy option ROMs to allocate system memory. Their choices are to
allocate memory from Extended BIOS Data Area (EBDA), allocate memory through a Post
Memory Manager (PMM), or search for free memory based on a heuristic. Of these, only EBDA is
standard, and the others are not used consistently between adapters, or between BIOS vendors,
which adds complexity and the potential for conflicts.
EFI Driver Model design considerations:
Drivers need flat memory mode with full access to system components.
Drivers need to be relocatable, so they can be loaded anywhere in memory (PE/COFF Images)
Drivers should allocate memory through the EFI boot services. These are well-specified
interfaces, and can be guaranteed to function as expected across a wide variety of platform
implementations.
2.5.1.3 Matching Option ROMs to their Devices
It is not clear which controller may be managed by a particular legacy option ROM. Some legacy
option ROMs search the entire system for controllers to manage. This can be a lengthy process
depending on the size and complexity of the platform. Also, due to limitation in BIOS design, all
the legacy option ROMs must be executed, and they must scan for all the peripheral devices before
an operating system can be booted. This can also be a lengthy process, especially if SCSI buses
must be scanned for SCSI devices. This means that legacy option ROMs are making policy
decision about how the platform is being initialized, and which controllers are managed by which
legacy option ROMs. This makes it very difficult for a system designer to predict how legacy
option ROMs will interact with each other. This can also cause issues with on-board controllers,
because a legacy option ROM may incorrectly choose to manage the on-board controller.
EFI Driver Model design considerations:
Driver to controller matching must be deterministic
Give OEMs more control through Platform Driver Override Protocol and Driver Configuration
Protocol
It must be possible to start only the drivers and controllers required to boot an operating system.