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];
//