diff options
author | Laszlo Ersek <lersek@redhat.com> | 2017-03-12 20:51:08 +0100 |
---|---|---|
committer | Laszlo Ersek <lersek@redhat.com> | 2017-05-18 10:12:20 +0200 |
commit | 6d7af0c9bc5e0d98092da9b6593b31abbc69dc76 (patch) | |
tree | 8556f859a348bea94b7c6948db0354b6904ed69a /OvmfPkg/EmuVariableFvbRuntimeDxe | |
parent | 11a6cc5bda811513d2fbe47d8cb1a70b48077800 (diff) | |
download | edk2-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.c | 79 | ||||
-rw-r--r-- | OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf | 3 |
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
|