Intel Extensible Firmware Interface Network Router User Manual


  Open as PDF
of 1084
 
Extensible Firmware Interface Specification
6-18 12/01/02 Version 1.10
When this function is called, all events that were registered to be signaled on an address map
change are notified. Each component that is notified must update any internal pointers for their
new addresses. This can be done with the ConvertPointer()
function. Once all events have
been notified, the EFI firmware reapplies image fix-up information to virtually relocate all
runtime images to their new addresses. In addition, all of the fields of the EFI Runtime Services
Table except SetVirtualAddressMap and ConvertPointer must be converted from
physical pointers to virtual pointers using the ConvertPointer() service. The
SetVirtualAddressMap() and ConvertPointer() services are only callable in physical
mode, so they do not need to be converted from physical pointers to virtual pointers. Several fields
of the EFI System Table must be converted from physical pointers to virtual pointers using the
ConvertPointer() service. These fields include FirmwareVendor, RuntimeServices,
and ConfigurationTable. Because contents of both the EFI Runtime Services Table and the
EFI System Table are modified by this service, the 32-bit CRC for the EFI Runtime Services Table
and the EFI System Table must be recomputed.
A virtual address map may only be applied one time. Once the runtime system is in virtual mode,
calls to this function return EFI_UNSUPPORTED.
Status Codes Returned
EFI_SUCCESS The virtual address map has been applied.
EFI_UNSUPPORTED EFI firmware is not at runtime, or the EFI firmware is already in
virtual address mapped mode.
EFI_INVALID_PARAMETER
DescriptorSize or DescriptorVersion is
invalid.
EFI_NO_MAPPING A virtual address was not supplied for a range in the memory
map that requires a mapping.
EFI_NOT_FOUND A virtual address was supplied for an address that is not found
in the memory map.