Get rid of boot services code after exiting boot services
All checks were successful
ci/woodpecker/push/build Pipeline was successful

This commit is contained in:
Rafal Kupiec 2022-12-20 23:06:32 +01:00
parent 7c38efc802
commit 51886a05dd
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4
2 changed files with 8 additions and 0 deletions

View File

@ -149,6 +149,10 @@ BlEnablePaging(IN PLIST_ENTRY MemoryMappings,
BlDbgPrint(L"Exiting EFI boot services\n");
EfiSystemTable->BootServices->ExitBootServices(EfiImageHandle, MemoryMap->MapKey);
/* No runtime services should touch boot services code, so get rid of it all at this point */
EfiSystemTable->RuntimeServices->SetVirtualAddressMap(MemoryMap->MapSize, MemoryMap->DescriptorSize,
MemoryMap->DescriptorVersion, MemoryMap->Map);
/* Write PML4 to CR3 */
HlWriteCR3((UINT_PTR)*PtePointer);

View File

@ -255,6 +255,10 @@ BlEnablePaging(IN PLIST_ENTRY MemoryMappings,
BlDbgPrint(L"Exiting EFI boot services\n");
EfiSystemTable->BootServices->ExitBootServices(EfiImageHandle, MemoryMap->MapKey);
/* No runtime services should touch boot services code, so get rid of it all at this point */
EfiSystemTable->RuntimeServices->SetVirtualAddressMap(MemoryMap->MapSize, MemoryMap->DescriptorSize,
MemoryMap->DescriptorVersion, MemoryMap->Map);
/* Enable PAE if supported by CPU */
if(PaeExtension)
{