]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPlatformPkg/Bds: Missing CRC32 update
authoroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Sun, 14 Apr 2013 09:28:11 +0000 (09:28 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Sun, 14 Apr 2013 09:28:11 +0000 (09:28 +0000)
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

ArmPlatformPkg/Bds/Bds.c

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