I think there is a couple of issues with the current implementation of
CoreExitBootServices:
1 . According to ExitBootServices() description, events of type
EVT_SIGNAL_EXIT_BOOT_SERVICES, must be signaled once even if ExitBootServices()
is called multiple times.
Current implementation signals events more than once if ExitBootServices() is
called more than once.
2. Since CoreTerminateMemoryMap, which validates MapKey, is called prior to
signaling exit-boot-services events, memory map changes introduced by the event
handlers are not getting detected.
It means, there is a chance that OS loader will successfully transition to
runtime with an outdated memory map.
Technically exit-boot-services callbacks are not supposed to alter memory map.
However, it is very difficult for a driver writer to predict if a particular
UEFI API such as GetVariable or HandleProtocol would alter a memory map.
I believe CoreExitBootServices implementation should detect such memory map
changes and report them back to OS loader by returning
EFI_INVALID_PARAMETER(MapKey is incorrect).
Thanks,
Felix
The information contained in this message may be confidential and proprietary
to American Megatrends, Inc. This communication is intended to be read only by
the individual or entity to whom it is addressed or by their designee. If the
reader of this message is not the intended recipient, you are on notice that
any distribution of this message, in any form, is strictly prohibited. Please
promptly notify the sender by reply e-mail or by telephone at 770-246-8600, and
then delete or destroy all copies of the transmission.
------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel