Extensible Firmware Interface Specification
44 12/12/00 Version 1.02
Table 3-6. Memory Type Usage After ExitBootServices()
Mnemonic Description
EfiReservedMemoryType Not used.
EfiLoaderCode The Loader and/or OS may use this memory as they see fit. Note: the
OS loader that called ExitBootServices() is utilizing one or
more EfiLoaderCode ranges.
EfiLoaderData The Loader and/or OS may use this memory as they see fit. Note: the
OS loader that called ExitBootServices() is utilizing one or
more EfiLoaderData ranges.
EfiBootServicesCode Memory available for general use.
EfiBootServicesData Memory available for general use.
EfiRuntimeServicesCode The memory in this range is to be preserved by the loader and OS in
the working and ACPI S1 – S3 states.
EfiRuntimeServicesData The memory in this range is to be preserved by the loader and OS in
the working and ACPI S1 – S3 states.
EfiConventionalMemory Memory available for general use.
EfiUnusableMemory Memory that contains errors and is not to be used.
EfiACPIReclaimMemory This memory is to be preserved by the loader and OS until ACPI is
enabled. Once ACPI is enabled, the memory in this range is available
for general use.
EfiACPIMemoryNVS This memory is to be preserved by the loader and OS in the working
and ACPI S1 – S3 states.
EfiMemoryMappedIO This memory is not used by the OS. All system memory-mapped IO
information should come from ACPI tables.
EfiMemoryMappedIOPortSpace This memory is not used by the OS. All system memory-mapped IO
port space information should come from ACPI tables.
EfiPalCode This memory is to be preserved by the loader and OS in the working
and ACPI S1 – S3 states. This memory may also have other
attributes that are defined by the processor implementation.
EfiFirmwareReserved In general, this memory is not to be used by the loader or OS;
however, specific functions may point to ranges within this memory to
be used.
NOTE
An image that calls ExitBootServices()first calls GetMemoryMap()to obtain the current
memory map. Following the ExitBootServices() call, the image implicitly owns all unused
memory in the map. This includes memory types EfiLoaderCode, EfiLoaderData,
EfiBootServicesCode, EfiBootServicesData, and EfiConventionalMemory.
An EFI-compatible loader and operating system must preserve the memory marked as
EfiRuntimeServicesCode and EfiRuntimeServicesData.