From 563671d4d7c483a53535475a2737eba71372d7a8 Mon Sep 17 00:00:00 2001 From: qwang12 Date: Sun, 30 Jul 2006 07:40:03 +0000 Subject: [PATCH] EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER is defined wrongly. It should be the same with what is written down in FTW specification. And WriteQueueSize should be defined UINT32 to make it the same width in 32 or 64-bits system. Added two PCD entry: PcdFlashFvBaseArray and PcdFlashFvBaseArrayElementNumber git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1151 6f19259b-4bc3-4df7-8a09-765794883524 --- EdkModulePkg/EdkModulePkg.spd | 26 +++++++++++++++++++ .../Include/Common/WorkingBlockHeader.h | 8 +++--- 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/EdkModulePkg/EdkModulePkg.spd b/EdkModulePkg/EdkModulePkg.spd index 883df1873f..2a0b417380 100644 --- a/EdkModulePkg/EdkModulePkg.spd +++ b/EdkModulePkg/EdkModulePkg.spd @@ -991,5 +991,31 @@ 4 kbytes size of runtime memory. + + PcdFlashFvBaseArray + 0x31000001 + gEfiGenericPlatformTokenSpaceGuid + VOID* + DYNAMIC + {} + + This PCD is a array of EFI_PHYSICAL_ADDERSS of each Firmware Volume on the + platform. FVB driver will make use of this PCD entry to install EFI_FIRMWARE_BLOCK_PROTOCOL + on every FV specified. + + + + PcdFlashFvBaseArrayElementNumber + 0x32000002 + gEfiGenericPlatformTokenSpaceGuid + UINT8 + DYNAMIC + 3 + + This PCD is a number element in the array defined by PcdFlashFvBaseArray in + gEfiGenericPlatformTokenSpaceGuid. Normally, we have 3 firmware volumes: + FV_MAIN, FV_RECOVERY, NV_STORAGE. + + diff --git a/EdkModulePkg/Include/Common/WorkingBlockHeader.h b/EdkModulePkg/Include/Common/WorkingBlockHeader.h index 235b740e83..234ebdd774 100644 --- a/EdkModulePkg/Include/Common/WorkingBlockHeader.h +++ b/EdkModulePkg/Include/Common/WorkingBlockHeader.h @@ -32,13 +32,13 @@ Abstract: typedef struct { EFI_GUID Signature; UINT32 Crc; - UINT32 WorkingBlockValid : 1; - UINT32 WorkingBlockInvalid : 1; + UINT8 WorkingBlockValid : 1; + UINT8 WorkingBlockInvalid : 1; #define WORKING_BLOCK_VALID 0x1 #define WORKING_BLOCK_INVALID 0x2 - UINT32 Reserved : 6; + UINT8 Reserved : 6; UINT8 Reserved3[3]; - UINTN WriteQueueSize; + UINT32 WriteQueueSize; // // UINT8 WriteQueue[WriteQueueSize]; // -- 2.39.2