Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
Extensible Firmware Interface Specification
16-24 12/01/02 Version 1.10
16.4.2 EFI System Table Location
The EFI system table can be located by an off-target hardware debugger by searching for the
EFI_SYSTEM_TABLE_POINTER structure. The EFI_SYSTEM_TABLE_POINTER structure is
located on a 4M boundary as close to the top of physical memory as feasible. It may be found
searching for the EFI_SYSTEM_TABLE_SIGNATURE on each 4M boundary starting at the top
of memory and scanning down. When the signature is found, the entire structure must verified
using the Crc32 field. The 32-bit CRC of the entire structure is calculated assuming the Crc32
field is zero. This value is then written to the Crc32 field.
typedef struct _EFI_SYSTEM_TABLE_POINTER {
UINT64 Signature;
EFI_PHYSICAL_ADDRESS EfiSystemTableBase;
UINT32 Crc32;
} EFI_SYSTEM_TABLE_POINTER;
Signature A constant UINT64 that has the value
EFI_SYSTEM_TABLE_SIGNATURE (see the EFI 1.0
specification).
EfiSystemTableBase The physical address of the EFI system table.
Crc32 A 32-bit CRC value that is used to verify the
EFI_SYSTEM_TABLE_POINTER structure is valid.
16.4.3 EFI Image Info
The EFI_DEBUG_IMAGE_INFO_TABLE is an array of pointers to EFI_DEBUG_IMAGE_INFO
unions. Each member of an EFI_DEBUG_IMAGE_INFO union is a pointer to a data structure
representing a particular image type. For each image that has been loaded, there is an appropriate
image data structure with a pointer to it stored in the EFI_DEBUG_IMAGE_INFO_TABLE. Data
structures for normal images and SMM images are defined. All other image types are reserved for
future use.
The process of locating the EFI_DEBUG_IMAGE_INFO_TABLE begins with an EFI
configuration table.
//
// EFI_DEBUG_IMAGE_INFO_TABLE configuration table
// GUID declaration - {49152E77-1ADA-4764-B7A2-7AFEFED95E8B}
//
#define EFI_DEBUG_IMAGE_INFO_TABLE_GUID \
{ 0x49152E77,0x1ADA,0x4764,0xB7,0xA2,0x7A,0xFE,0xFE,0xD9,0x5E,0x8B }
The configuration table leads to an EFI_DEBUG_IMAGE_INFO_TABLE_HEADER structure that
contains a pointer to the EFI_DEBUG_IMAGE_INFO_TABLE and some status bits that are used
to control access to the EFI_DEBUG_IMAGE_INFO_TABLE when it is being updated.