2 efi system table location, 3 efi image info, Debug image info table – Intel Extensible Firmware Interface User Manual
Page 738

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.