mirror of https://github.com/acidanthera/audk.git
ArmPlatformPkg: NorFlashDxe: mellow DEBUG messages about flash reinit
The ValidateFvHeader() function checks several conditions against the firmware volume header. Failure of the first of these checks, reported as "No Firmware Volume header present", is a common situation for unformatted flash images, especially when a new virtual machine is created. Similarly, "Variable Store Guid non-compatible" is common when the firmware binary is switched from Secure Boot-incapable to Secure Boot-capable, or vice versa. The only caller of ValidateFvHeader(), NorFlashFvbInitialize(), handles all these mismatches by installing a new FVB header. It also emits another, loud ERROR message (which is even less justified when it is triggered by (BootMode == BOOT_WITH_DEFAULT_SETTINGS)). Downgrade these messages from EFI_D_ERROR to EFI_D_INFO, so that they don't clutter the debug output when the PcdDebugPrintErrorLevel mask only enables EFI_D_ERROR (i.e., in a "silent" build). These messages have annoyed / confused users; see for example: - https://bugzilla.redhat.com/show_bug.cgi?id=1270279 - http://thread.gmane.org/gmane.comp.bios.edk2.devel/2772/focus=2869 Cc: Leif Lindholm <leif.lindholm@linaro.org> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Drew Jones <drjones@redhat.com> Cc: Yehuda Yitschak <yehuday@marvell.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18618 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
f813662589
commit
582085eb1f
|
@ -158,20 +158,23 @@ ValidateFvHeader (
|
||||||
|| (FwVolHeader->FvLength != FvLength)
|
|| (FwVolHeader->FvLength != FvLength)
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
DEBUG ((EFI_D_ERROR, "ValidateFvHeader: No Firmware Volume header present\n"));
|
DEBUG ((EFI_D_INFO, "%a: No Firmware Volume header present\n",
|
||||||
|
__FUNCTION__));
|
||||||
return EFI_NOT_FOUND;
|
return EFI_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check the Firmware Volume Guid
|
// Check the Firmware Volume Guid
|
||||||
if( CompareGuid (&FwVolHeader->FileSystemGuid, &gEfiSystemNvDataFvGuid) == FALSE ) {
|
if( CompareGuid (&FwVolHeader->FileSystemGuid, &gEfiSystemNvDataFvGuid) == FALSE ) {
|
||||||
DEBUG ((EFI_D_ERROR, "ValidateFvHeader: Firmware Volume Guid non-compatible\n"));
|
DEBUG ((EFI_D_INFO, "%a: Firmware Volume Guid non-compatible\n",
|
||||||
|
__FUNCTION__));
|
||||||
return EFI_NOT_FOUND;
|
return EFI_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify the header checksum
|
// Verify the header checksum
|
||||||
Checksum = CalculateSum16((UINT16*)FwVolHeader, FwVolHeader->HeaderLength);
|
Checksum = CalculateSum16((UINT16*)FwVolHeader, FwVolHeader->HeaderLength);
|
||||||
if (Checksum != 0) {
|
if (Checksum != 0) {
|
||||||
DEBUG ((EFI_D_ERROR, "ValidateFvHeader: FV checksum is invalid (Checksum:0x%X)\n",Checksum));
|
DEBUG ((EFI_D_INFO, "%a: FV checksum is invalid (Checksum:0x%X)\n",
|
||||||
|
__FUNCTION__, Checksum));
|
||||||
return EFI_NOT_FOUND;
|
return EFI_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,13 +182,15 @@ ValidateFvHeader (
|
||||||
|
|
||||||
// Check the Variable Store Guid
|
// Check the Variable Store Guid
|
||||||
if (!CompareGuid (&VariableStoreHeader->Signature, mNorFlashVariableGuid)) {
|
if (!CompareGuid (&VariableStoreHeader->Signature, mNorFlashVariableGuid)) {
|
||||||
DEBUG ((EFI_D_ERROR, "ValidateFvHeader: Variable Store Guid non-compatible\n"));
|
DEBUG ((EFI_D_INFO, "%a: Variable Store Guid non-compatible\n",
|
||||||
|
__FUNCTION__));
|
||||||
return EFI_NOT_FOUND;
|
return EFI_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
VariableStoreLength = PcdGet32 (PcdFlashNvStorageVariableSize) - FwVolHeader->HeaderLength;
|
VariableStoreLength = PcdGet32 (PcdFlashNvStorageVariableSize) - FwVolHeader->HeaderLength;
|
||||||
if (VariableStoreHeader->Size != VariableStoreLength) {
|
if (VariableStoreHeader->Size != VariableStoreLength) {
|
||||||
DEBUG ((EFI_D_ERROR, "ValidateFvHeader: Variable Store Length does not match\n"));
|
DEBUG ((EFI_D_INFO, "%a: Variable Store Length does not match\n",
|
||||||
|
__FUNCTION__));
|
||||||
return EFI_NOT_FOUND;
|
return EFI_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -731,7 +736,9 @@ NorFlashFvbInitialize (
|
||||||
// Install the Default FVB header if required
|
// Install the Default FVB header if required
|
||||||
if (EFI_ERROR(Status)) {
|
if (EFI_ERROR(Status)) {
|
||||||
// There is no valid header, so time to install one.
|
// There is no valid header, so time to install one.
|
||||||
DEBUG((EFI_D_ERROR,"NorFlashFvbInitialize: ERROR - The FVB Header is not valid. Installing a correct one for this volume.\n"));
|
DEBUG ((EFI_D_INFO, "%a: The FVB Header is not valid.\n", __FUNCTION__));
|
||||||
|
DEBUG ((EFI_D_INFO, "%a: Installing a correct one for this volume.\n",
|
||||||
|
__FUNCTION__));
|
||||||
|
|
||||||
// Erase all the NorFlash that is reserved for variable storage
|
// Erase all the NorFlash that is reserved for variable storage
|
||||||
FvbNumLba = (PcdGet32(PcdFlashNvStorageVariableSize) + PcdGet32(PcdFlashNvStorageFtwWorkingSize) + PcdGet32(PcdFlashNvStorageFtwSpareSize)) / Instance->Media.BlockSize;
|
FvbNumLba = (PcdGet32(PcdFlashNvStorageVariableSize) + PcdGet32(PcdFlashNvStorageFtwWorkingSize) + PcdGet32(PcdFlashNvStorageFtwSpareSize)) / Instance->Media.BlockSize;
|
||||||
|
|
Loading…
Reference in New Issue