diff --git a/EdkModulePkg/EdkModulePkg.fpd b/EdkModulePkg/EdkModulePkg.fpd
index 687db62936..f50f864253 100644
--- a/EdkModulePkg/EdkModulePkg.fpd
+++ b/EdkModulePkg/EdkModulePkg.fpd
@@ -1722,37 +1722,37 @@
1
0xAF
-
- PcdFlashNvStorageFtwSpareBase
- 0x30000013
- gEfiGenericPlatformTokenSpaceGuid
- UINT32
- 4
- 0xFFFC0000
-
-
- PcdFlashNvStorageFtwSpareSize
- 0x30000014
- gEfiGenericPlatformTokenSpaceGuid
- UINT32
- 4
- 0x00010000
-
-
- PcdFlashNvStorageFtwWorkingBase
- 0x30000010
- gEfiGenericPlatformTokenSpaceGuid
- UINT32
- 4
- 0xFFFBE000
-
-
- PcdFlashNvStorageFtwWorkingSize
- 0x30000011
- gEfiGenericPlatformTokenSpaceGuid
- UINT32
- 4
- 0x00002000
+
+ PcdFlashNvStorageFtwSpareBase
+ 0x30000013
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ 4
+ 0x0
+
+
+ PcdFlashNvStorageFtwSpareSize
+ 0x30000014
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ 4
+ 0x0
+
+
+ PcdFlashNvStorageFtwWorkingBase
+ 0x30000010
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ 4
+ 0x0
+
+
+ PcdFlashNvStorageFtwWorkingSize
+ 0x30000011
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ 4
+ 0x0
@@ -6370,37 +6370,37 @@
1
0xAF
-
- PcdFlashNvStorageFtwSpareBase
- 0x30000013
- gEfiGenericPlatformTokenSpaceGuid
- UINT32
- 4
- 0xFFFC0000
-
-
- PcdFlashNvStorageFtwSpareSize
- 0x30000014
- gEfiGenericPlatformTokenSpaceGuid
- UINT32
- 4
- 0x00010000
-
-
- PcdFlashNvStorageFtwWorkingBase
- 0x30000010
- gEfiGenericPlatformTokenSpaceGuid
- UINT32
- 4
- 0xFFFBE000
-
-
- PcdFlashNvStorageFtwWorkingSize
- 0x30000011
- gEfiGenericPlatformTokenSpaceGuid
- UINT32
- 4
- 0x00002000
+
+ PcdFlashNvStorageFtwSpareBase
+ 0x30000013
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ 4
+ 0x0
+
+
+ PcdFlashNvStorageFtwSpareSize
+ 0x30000014
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ 4
+ 0x0
+
+
+ PcdFlashNvStorageFtwWorkingBase
+ 0x30000010
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ 4
+ 0x0
+
+
+ PcdFlashNvStorageFtwWorkingSize
+ 0x30000011
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ 4
+ 0x0
@@ -10394,37 +10394,37 @@
1
0xAF
-
- PcdFlashNvStorageFtwSpareBase
- 0x30000013
- gEfiGenericPlatformTokenSpaceGuid
- UINT32
- 4
- 0xFFFC0000
-
-
- PcdFlashNvStorageFtwSpareSize
- 0x30000014
- gEfiGenericPlatformTokenSpaceGuid
- UINT32
- 4
- 0x00010000
-
-
- PcdFlashNvStorageFtwWorkingBase
- 0x30000010
- gEfiGenericPlatformTokenSpaceGuid
- UINT32
- 4
- 0xFFFBE000
-
-
- PcdFlashNvStorageFtwWorkingSize
- 0x30000011
- gEfiGenericPlatformTokenSpaceGuid
- UINT32
- 4
- 0x00002000
+
+ PcdFlashNvStorageFtwSpareBase
+ 0x30000013
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ 4
+ 0x0
+
+
+ PcdFlashNvStorageFtwSpareSize
+ 0x30000014
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ 4
+ 0x0
+
+
+ PcdFlashNvStorageFtwWorkingBase
+ 0x30000010
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ 4
+ 0x0
+
+
+ PcdFlashNvStorageFtwWorkingSize
+ 0x30000011
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ 4
+ 0x0
@@ -14061,37 +14061,37 @@
1
0xAF
-
- PcdFlashNvStorageFtwSpareBase
- 0x30000013
- gEfiGenericPlatformTokenSpaceGuid
- UINT32
- 4
- 0xFFFC0000
-
-
- PcdFlashNvStorageFtwSpareSize
- 0x30000014
- gEfiGenericPlatformTokenSpaceGuid
- UINT32
- 4
- 0x00010000
-
-
- PcdFlashNvStorageFtwWorkingBase
- 0x30000010
- gEfiGenericPlatformTokenSpaceGuid
- UINT32
- 4
- 0xFFFBE000
-
-
- PcdFlashNvStorageFtwWorkingSize
- 0x30000011
- gEfiGenericPlatformTokenSpaceGuid
- UINT32
- 4
- 0x00002000
+
+ PcdFlashNvStorageFtwSpareBase
+ 0x30000013
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ 4
+ 0x0
+
+
+ PcdFlashNvStorageFtwSpareSize
+ 0x30000014
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ 4
+ 0x0
+
+
+ PcdFlashNvStorageFtwWorkingBase
+ 0x30000010
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ 4
+ 0x0
+
+
+ PcdFlashNvStorageFtwWorkingSize
+ 0x30000011
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ 4
+ 0x0
diff --git a/EdkModulePkg/EdkModulePkg.spd b/EdkModulePkg/EdkModulePkg.spd
index cf6a991761..6359d649e8 100644
--- a/EdkModulePkg/EdkModulePkg.spd
+++ b/EdkModulePkg/EdkModulePkg.spd
@@ -994,28 +994,6 @@
28
Maximun number of performance log entries during PEI phase.
-
- 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.
-
PcdPeiPcdDatabaseSetEnabled
0x00010030
@@ -1052,5 +1030,59 @@
FALSE
This feature flag can be used to enable or disable the PCD service PEIM to handle DynamicEX PCD. If a platform has no module to use DynamicEX in PEI phase. This flag can be set to DISABLE to save size.
+
+ PcdFlashNvStorageVariableBase
+ 0x30000001
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC
+ 0xFFFB0000
+ Base address of the variable section in NV firmware volume.
+
+
+ PcdFlashNvStorageVariableSize
+ 0x30000002
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC
+ 0x0000A000
+ Size of the variable section in NV firmware volume..
+
+
+ PcdFlashNvStorageFtwSpareBase
+ 0x30000013
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC
+ 0xFFFC0000
+ Base address of the FTW spare block section in NV firmware volume.
+
+
+ PcdFlashNvStorageFtwSpareSize
+ 0x30000014
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC
+ 0x00010000
+ Size of the FTW spare block section in NV firmware volume.
+
+
+ PcdFlashNvStorageFtwWorkingBase
+ 0x30000010
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC
+ 0xFFFBE000
+ Base address of the FTW working block section in NV firmware volume.
+
+
+ PcdFlashNvStorageFtwWorkingSize
+ 0x30000011
+ gEfiGenericPlatformTokenSpaceGuid
+ UINT32
+ FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC
+ 0x00002000
+ Size of the FTW working block section in NV firmware volume.
+
\ No newline at end of file
diff --git a/EdkModulePkg/Universal/FirmwareVolume/FaultTolerantWriteLite/Dxe/FtwLite.msa b/EdkModulePkg/Universal/FirmwareVolume/FaultTolerantWriteLite/Dxe/FtwLite.msa
index 3505b5eef3..27d5f61e40 100644
--- a/EdkModulePkg/Universal/FirmwareVolume/FaultTolerantWriteLite/Dxe/FtwLite.msa
+++ b/EdkModulePkg/Universal/FirmwareVolume/FaultTolerantWriteLite/Dxe/FtwLite.msa
@@ -100,22 +100,22 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.-->
-
+
PcdFlashNvStorageFtwSpareBase
gEfiGenericPlatformTokenSpaceGuid
To get base address of the FTW spare block section in NV firmware volume.
-
+
PcdFlashNvStorageFtwSpareSize
gEfiGenericPlatformTokenSpaceGuid
To get size of the FTW spare block section in NV firmware volume.
-
+
PcdFlashNvStorageFtwWorkingBase
gEfiGenericPlatformTokenSpaceGuid
To get base address of the FTW working block section in NV firmware volume.
-
+
PcdFlashNvStorageFtwWorkingSize
gEfiGenericPlatformTokenSpaceGuid
To get size of the FTW working block section in NV firmware volume.
diff --git a/EdkModulePkg/Universal/Variable/RuntimeDxe/Variable.msa b/EdkModulePkg/Universal/Variable/RuntimeDxe/Variable.msa
index 049ee3731d..99c34e400f 100644
--- a/EdkModulePkg/Universal/Variable/RuntimeDxe/Variable.msa
+++ b/EdkModulePkg/Universal/Variable/RuntimeDxe/Variable.msa
@@ -166,8 +166,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.-->
PcdFlashNvStorageVariableSize
gEfiGenericPlatformTokenSpaceGuid
- The driver gets the Variable store base address from this PCD. This base address point to
- an EFI_FIRMWARE_VOLUMN_HEADER struct.
+ The driver gets the NvStorage Variable Size from this PCD.
diff --git a/EdkNt32Pkg/Pei/FlashMap/FlashMap.msa b/EdkNt32Pkg/Pei/FlashMap/FlashMap.msa
index 1a098cf057..7c121fc372 100644
--- a/EdkNt32Pkg/Pei/FlashMap/FlashMap.msa
+++ b/EdkNt32Pkg/Pei/FlashMap/FlashMap.msa
@@ -103,25 +103,32 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.-->
normally a FIXED_AT_BUILD type as system memory map is fixed to BIOS.
-
+
+ PcdFlashNvStorageVariableSize
+ gEfiGenericPlatformTokenSpaceGuid
+
+ To get the NvStorage Variable size from this PCD.
+
+
+
PcdFlashNvStorageFtwSpareBase
gEfiGenericPlatformTokenSpaceGuid
To get base address of the FTW spare block section in NV firmware volume.
-
+
PcdFlashNvStorageFtwSpareSize
gEfiGenericPlatformTokenSpaceGuid
To get size of the FTW spare block section in NV firmware volume.
-
+
PcdFlashNvStorageFtwWorkingBase
gEfiGenericPlatformTokenSpaceGuid
To get base address of the FTW working block section in NV firmware volume.
-
+
PcdFlashNvStorageFtwWorkingSize
gEfiGenericPlatformTokenSpaceGuid
To get size of the FTW working block section in NV firmware volume.
-
+