ArmPlatformPkg/Bds: Missing CRC32 update

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14266 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
oliviermartin 2013-04-14 09:28:11 +00:00
parent 81742bb085
commit 53cba4fea4
1 changed files with 14 additions and 0 deletions

View File

@ -406,6 +406,13 @@ BdsEntry (
UnicodeSPrint (gST->FirmwareVendor, Size, L"%a EFI %a %a", PcdGetPtr(PcdFirmwareVendor), __DATE__, __TIME__);
}
//
// Fixup Table CRC after we updated Firmware Vendor
//
gST->Hdr.CRC32 = 0;
Status = gBS->CalculateCrc32 ((VOID*)gST, gST->Hdr.HeaderSize, &gST->Hdr.CRC32);
ASSERT_EFI_ERROR (Status);
// If BootNext environment variable is defined then we just load it !
BootNextSize = sizeof(UINT16);
Status = GetGlobalEnvironmentVariable (L"BootNext", NULL, &BootNextSize, (VOID**)&BootNext);
@ -448,6 +455,13 @@ BdsEntry (
// Now we need to setup the EFI System Table with information about the console devices.
InitializeConsole ();
//
// Update the CRC32 in the EFI System Table header
//
gST->Hdr.CRC32 = 0;
Status = gBS->CalculateCrc32 ((VOID*)gST, gST->Hdr.HeaderSize, &gST->Hdr.CRC32);
ASSERT_EFI_ERROR (Status);
// Timer before initiating the default boot selection
StartDefaultBootOnTimeout ();