mirror of
https://github.com/acidanthera/audk.git
synced 2025-04-08 17:05:09 +02:00
OvmfPkg/EmuVariableFvbRuntimeDxe: always format an auth varstore header
In this patch, we extend commit d92eaabefbe0 ("OvmfPkg: simplify VARIABLE_STORE_HEADER generation", 2016-02-05) to EmuVariableFvbRuntimeDxe. This is the difference between FvAndVarTemplate and FvAndAuthenticatedVarTemplate: > --- non-auth 2017-05-05 22:32:06.001512283 +0200 > +++ auth 2017-05-05 22:32:18.841364882 +0200 > @@ -1,7 +1,7 @@ > // > - // Templates for standard (non-authenticated) variable FV header > + // Templates for authenticated variable FV header > // > - STATIC FVB_FV_HDR_AND_VARS_TEMPLATE FvAndVarTemplate = { > + STATIC FVB_FV_HDR_AND_VARS_TEMPLATE FvAndAuthenticatedVarTemplate = { > { // EFI_FIRMWARE_VOLUME_HEADER FvHdr; > // UINT8 ZeroVector[16]; > { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, > @@ -34,7 +34,7 @@ > EFI_FVH_REVISION, > > // EFI_FV_BLOCK_MAP_ENTRY BlockMap[1]; > - { > + { > { > 2, // UINT32 NumBlocks; > EMU_FVB_BLOCK_SIZE // UINT32 Length; > @@ -44,8 +44,8 @@ > // EFI_FV_BLOCK_MAP_ENTRY EndBlockMap; > { 0, 0 }, // End of block map > { // VARIABLE_STORE_HEADER VarHdr; > - // EFI_GUID Signature; > - EFI_VARIABLE_GUID, > + // EFI_GUID Signature; // need authenticated variables for secure boot > + EFI_AUTHENTICATED_VARIABLE_GUID, > > // UINT32 Size; > ( After this change, using "-bios", the variable driver logs: - with the SB feature enabled: > Variable driver will work with auth variable format! > Variable driver will work with auth variable support! - with the SB feature disabled: > Variable driver will work with auth variable format! > Variable driver will continue to work without auth variable support! Cc: Jordan Justen <jordan.l.justen@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
This commit is contained in:
parent
11a6cc5bda
commit
6d7af0c9bc
@ -625,75 +625,6 @@ InitializeFvAndVariableStoreHeaders (
|
||||
IN VOID *Ptr
|
||||
)
|
||||
{
|
||||
//
|
||||
// Templates for standard (non-authenticated) variable FV header
|
||||
//
|
||||
STATIC FVB_FV_HDR_AND_VARS_TEMPLATE FvAndVarTemplate = {
|
||||
{ // EFI_FIRMWARE_VOLUME_HEADER FvHdr;
|
||||
// UINT8 ZeroVector[16];
|
||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
|
||||
|
||||
// EFI_GUID FileSystemGuid;
|
||||
EFI_SYSTEM_NV_DATA_FV_GUID,
|
||||
|
||||
// UINT64 FvLength;
|
||||
EMU_FVB_SIZE,
|
||||
|
||||
// UINT32 Signature;
|
||||
EFI_FVH_SIGNATURE,
|
||||
|
||||
// EFI_FVB_ATTRIBUTES_2 Attributes;
|
||||
0x4feff,
|
||||
|
||||
// UINT16 HeaderLength;
|
||||
EMU_FV_HEADER_LENGTH,
|
||||
|
||||
// UINT16 Checksum;
|
||||
0,
|
||||
|
||||
// UINT16 ExtHeaderOffset;
|
||||
0,
|
||||
|
||||
// UINT8 Reserved[1];
|
||||
{0},
|
||||
|
||||
// UINT8 Revision;
|
||||
EFI_FVH_REVISION,
|
||||
|
||||
// EFI_FV_BLOCK_MAP_ENTRY BlockMap[1];
|
||||
{
|
||||
{
|
||||
2, // UINT32 NumBlocks;
|
||||
EMU_FVB_BLOCK_SIZE // UINT32 Length;
|
||||
}
|
||||
}
|
||||
},
|
||||
// EFI_FV_BLOCK_MAP_ENTRY EndBlockMap;
|
||||
{ 0, 0 }, // End of block map
|
||||
{ // VARIABLE_STORE_HEADER VarHdr;
|
||||
// EFI_GUID Signature;
|
||||
EFI_VARIABLE_GUID,
|
||||
|
||||
// UINT32 Size;
|
||||
(
|
||||
FixedPcdGet32 (PcdVariableStoreSize) -
|
||||
OFFSET_OF (FVB_FV_HDR_AND_VARS_TEMPLATE, VarHdr)
|
||||
),
|
||||
|
||||
// UINT8 Format;
|
||||
VARIABLE_STORE_FORMATTED,
|
||||
|
||||
// UINT8 State;
|
||||
VARIABLE_STORE_HEALTHY,
|
||||
|
||||
// UINT16 Reserved;
|
||||
0,
|
||||
|
||||
// UINT32 Reserved1;
|
||||
0
|
||||
}
|
||||
};
|
||||
|
||||
//
|
||||
// Templates for authenticated variable FV header
|
||||
//
|
||||
@ -768,11 +699,11 @@ InitializeFvAndVariableStoreHeaders (
|
||||
//
|
||||
// Copy the template structure into the location
|
||||
//
|
||||
if (FeaturePcdGet (PcdSecureBootEnable) == FALSE) {
|
||||
CopyMem (Ptr, (VOID*)&FvAndVarTemplate, sizeof (FvAndVarTemplate));
|
||||
} else {
|
||||
CopyMem (Ptr, (VOID*)&FvAndAuthenticatedVarTemplate, sizeof (FvAndAuthenticatedVarTemplate));
|
||||
}
|
||||
CopyMem (
|
||||
Ptr,
|
||||
&FvAndAuthenticatedVarTemplate,
|
||||
sizeof FvAndAuthenticatedVarTemplate
|
||||
);
|
||||
|
||||
//
|
||||
// Update the checksum for the FV header
|
||||
|
@ -68,9 +68,6 @@
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved
|
||||
|
||||
[FeaturePcd]
|
||||
gUefiOvmfPkgTokenSpaceGuid.PcdSecureBootEnable
|
||||
|
||||
[Depex]
|
||||
TRUE
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user