summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/EmuVariableFvbRuntimeDxe
diff options
context:
space:
mode:
authorLaszlo Ersek <lersek@redhat.com>2017-03-12 20:51:08 +0100
committerLaszlo Ersek <lersek@redhat.com>2017-05-18 10:12:20 +0200
commit6d7af0c9bc5e0d98092da9b6593b31abbc69dc76 (patch)
tree8556f859a348bea94b7c6948db0354b6904ed69a /OvmfPkg/EmuVariableFvbRuntimeDxe
parent11a6cc5bda811513d2fbe47d8cb1a70b48077800 (diff)
downloadedk2-6d7af0c9bc5e0d98092da9b6593b31abbc69dc76.tar.gz
edk2-6d7af0c9bc5e0d98092da9b6593b31abbc69dc76.tar.bz2
edk2-6d7af0c9bc5e0d98092da9b6593b31abbc69dc76.zip
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>
Diffstat (limited to 'OvmfPkg/EmuVariableFvbRuntimeDxe')
-rw-r--r--OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c79
-rw-r--r--OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf3
2 files changed, 5 insertions, 77 deletions
diff --git a/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c b/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c
index dec6d4af50..7a6d3153ec 100644
--- a/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c
+++ b/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c
@@ -626,75 +626,6 @@ InitializeFvAndVariableStoreHeaders (
)
{
//
- // 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
//
STATIC FVB_FV_HDR_AND_VARS_TEMPLATE FvAndAuthenticatedVarTemplate = {
@@ -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
diff --git a/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf b/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf
index 4d4827decb..69b3c9972a 100644
--- a/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf
+++ b/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf
@@ -68,9 +68,6 @@
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase
gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved
-[FeaturePcd]
- gUefiOvmfPkgTokenSpaceGuid.PcdSecureBootEnable
-
[Depex]
TRUE