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
// 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