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

Page 738

Advertising
background image

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.

Advertising