Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
Protocols Bootable Image Support
Version 1.10 12/01/02 11-5
11.2.1.1 File System Format
The first block (sector) of a partition contains a data structure called the BIOS Parameter Block,
BPB, that defines the type and location of FAT file system on the drive. The BPB contains a data
structure that defines the size of the media, the size of reserved space, the number of FAT tables,
and the location and size of the root directory (not used in FAT32). The first block (sector) also
contains code that will be executed as part of the boot process on a legacy Intel architecture system.
This code in the first block (sector) usually contains code that can read a file from the root directory
into memory and transfer control to it. Since EFI firmware contains a file system driver, EFI
firmware can load any file from the file system with out needing to execute any code from
the media.
The EFI firmware must support the FAT32, FAT16, and FAT12 variants of the EFI file system.
What variant of EFI FAT to use is defined by the size of the media. The rules defining the
relationship between media size and FAT variants is defined in the specification for the EFI
file system.
11.2.1.2 File Names
FAT stores file names in two formats. The original FAT format limited file names to eight
characters with three extension characters. This type of file name is called an 8.3, pronounced eight
dot three, file name. FAT was extended to include support for long file names (LFN).
FAT 8.3 file names are always stored as uppercase ASCII characters. LFN can either be stored as
ASCII or Unicode and are stored case sensitive. The string that was used to open or create the file
is stored directly into LFN. FAT defines that all files in a directory must have a unique name, and
unique is defined as a case insensitive match. The following are examples of names that are
considered to be the same and cannot exist in a single directory:
ThisIsAnExampleDirectory.Dir
thisisanexamppledirectory.dir
THISISANEXAMPLEDIRECTORY.DIR
ThisIsAnExampleDirectory.DIR
11.2.1.3 Directory Structure
An EFI system partition that is present on a hard disk must contain an EFI defined directory in the
root directory. This directory is named EFI. All OS loaders and applications will be stored in
subdirectories below EFI. Applications that are loaded by other applications or drivers are not
required to be stored in any specific location in the EFI system partition. The choice of the
subdirectory name is up to the vendor, but all vendors must pick names that do not collide with any
other vendors subdirectory name. This applies to system manufacturers, operating system
vendors, BIOS vendors, and third party tool vendors, or any other vendor that wishes to install files
on an EFI system partition. There must also only be one executable EFI image for each supported
processor architecture in each vendor subdirectory. This guarantees that there is only one image
that can be loaded from a vendor subdirectory by the EFI Boot Manager. If more than one
executable EFI image is present, then the boot behavior for the system will not be deterministic.
There may also be an optional vendor subdirectory called BOOT.