diff --git a/EdkModulePkg/Universal/PCD/Dxe/Pcd.c b/EdkModulePkg/Universal/PCD/Dxe/Pcd.c
index d0f85d242e..45a6c5932a 100644
--- a/EdkModulePkg/Universal/PCD/Dxe/Pcd.c
+++ b/EdkModulePkg/Universal/PCD/Dxe/Pcd.c
@@ -76,7 +76,7 @@ PcdDxeInit (
//
ASSERT_PROTOCOL_ALREADY_INSTALLED (NULL, &gPcdProtocolGuid);
-
+
BuildPcdDxeDataBase ();
//
diff --git a/EdkModulePkg/Universal/PCD/Dxe/Pcd.msa b/EdkModulePkg/Universal/PCD/Dxe/Pcd.msa
index b29d83923e..ee84d830cd 100644
--- a/EdkModulePkg/Universal/PCD/Dxe/Pcd.msa
+++ b/EdkModulePkg/Universal/PCD/Dxe/Pcd.msa
@@ -47,13 +47,14 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Service.c
Pcd.c
+ Pcd.dxs
MdePkg
EdkModulePkg
- Pcd
+ PcdProtocol
Variable
diff --git a/EdkModulePkg/Universal/PCD/Dxe/Service.c b/EdkModulePkg/Universal/PCD/Dxe/Service.c
index 4b86cd7795..84bfae7bf0 100644
--- a/EdkModulePkg/Universal/PCD/Dxe/Service.c
+++ b/EdkModulePkg/Universal/PCD/Dxe/Service.c
@@ -57,7 +57,7 @@ GetWorker (
ASSERT (GetSize == Size || GetSize == 0);
- IsPeiDb = (TokenNumber <= PEI_LOCAL_TOKEN_NUMBER) ? TRUE : FALSE;
+ IsPeiDb = (TokenNumber < PEI_LOCAL_TOKEN_NUMBER) ? TRUE : FALSE;
LocalTokenNumberTable = IsPeiDb ? mPcdDatabase->PeiDb.Init.LocalTokenNumberTable :
mPcdDatabase->DxeDb.Init.LocalTokenNumberTable;
@@ -484,7 +484,7 @@ SetWorker (
ASSERT (Size == DxePcdGetSize (TokenNumber));
}
- IsPeiDb = (TokenNumber <= PEI_LOCAL_TOKEN_NUMBER) ? TRUE : FALSE;
+ IsPeiDb = (TokenNumber < PEI_LOCAL_TOKEN_NUMBER) ? TRUE : FALSE;
LocalTokenNumberTable = IsPeiDb ? mPcdDatabase->PeiDb.Init.LocalTokenNumberTable :
mPcdDatabase->DxeDb.Init.LocalTokenNumberTable;
diff --git a/EdkModulePkg/Universal/PCD/Pei/Pcd.msa b/EdkModulePkg/Universal/PCD/Pei/Pcd.msa
index f08a2fa072..d9d1baee36 100644
--- a/EdkModulePkg/Universal/PCD/Pei/Pcd.msa
+++ b/EdkModulePkg/Universal/PCD/Pei/Pcd.msa
@@ -64,7 +64,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
- Pcd
+ PcdPpi
ReadOnlyVariable
diff --git a/EdkNt32Pkg/Dxe/WinNtThunk/Bus/WinNtBusDriver/WinNtBusDriver.msa b/EdkNt32Pkg/Dxe/WinNtThunk/Bus/WinNtBusDriver/WinNtBusDriver.msa
index 9bc94bfc10..093a18c3a6 100644
--- a/EdkNt32Pkg/Dxe/WinNtThunk/Bus/WinNtBusDriver/WinNtBusDriver.msa
+++ b/EdkNt32Pkg/Dxe/WinNtThunk/Bus/WinNtBusDriver/WinNtBusDriver.msa
@@ -57,7 +57,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
WinNtIo
WinNtThunk
DevicePath
- Pcd
+ PcdProtocol
diff --git a/MdePkg/Include/Library/PcdLib.h b/MdePkg/Include/Library/PcdLib.h
index 03493e210a..c4e5502a0d 100644
--- a/MdePkg/Include/Library/PcdLib.h
+++ b/MdePkg/Include/Library/PcdLib.h
@@ -60,7 +60,7 @@ Module Name: PcdLib.h
#define PatchPcdSet32(TokenName, Value) (_gPcd_BinaryPatch_##TokenName = Value)
#define PatchPcdSet64(TokenName, Value) (_gPcd_BinaryPatch_##TokenName = Value)
#define PatchPcdSetBool(TokenName, Value) (_gPcd_BinaryPatch_##TokenName = Value)
-#define PatchPcdSetPtr(TokenName, Value, Size) CopyMem (_gPcd_BinaryPatch_##TokenName, Value, Size)
+#define PatchPcdSetPtr(TokenName, Size, Buffer) CopyMem (_gPcd_BinaryPatch_##TokenName, Buffer, Size)
//
// Dynamic is via the protocol with only the TokenNumber as argument
diff --git a/MdePkg/Include/Ppi/Pcd.h b/MdePkg/Include/Ppi/Pcd.h
index 2841f54425..13b56406dc 100644
--- a/MdePkg/Include/Ppi/Pcd.h
+++ b/MdePkg/Include/Ppi/Pcd.h
@@ -20,7 +20,7 @@
extern EFI_GUID gPcdPpiGuid;
#define PCD_PPI_GUID \
- { 0x632df884, 0x8023, 0x4872, { 0xb6, 0x70, 0xb7, 0x4a, 0x30, 0x19, 0x16, 0xe9 } }
+ { 0x6e81c58, 0x4ad7, 0x44bc, { 0x83, 0x90, 0xf1, 0x2, 0x65, 0xf7, 0x24, 0x80 } }
#define PCD_INVALID_TOKEN_NUMBER ((UINTN) -1)
diff --git a/MdePkg/Library/DxePcdLib/DxePcdLib.msa b/MdePkg/Library/DxePcdLib/DxePcdLib.msa
index 163b751d20..8622305116 100644
--- a/MdePkg/Library/DxePcdLib/DxePcdLib.msa
+++ b/MdePkg/Library/DxePcdLib/DxePcdLib.msa
@@ -43,7 +43,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
MdePkg
- Pcd
+ PcdProtocol
diff --git a/MdePkg/MdePkg.spd b/MdePkg/MdePkg.spd
index 28e90eebb0..9b060d82bb 100644
--- a/MdePkg/MdePkg.spd
+++ b/MdePkg/MdePkg.spd
@@ -710,7 +710,7 @@
gEfiHiiProtocolGuid
0xea816d2c, 0xcee5, 0x4f02, 0x99, 0xb5, 0xd3, 0x90, 0x5c, 0xbb, 0xd0, 0x77
-
+
gPcdProtocolGuid
0x11b34006, 0xd85b, 0x4d0a, 0xa2, 0x90, 0xd5, 0xa5, 0x71, 0x31, 0x0e, 0xf7
@@ -1160,9 +1160,9 @@
gEfiPeiStatusCodePpiGuid
0x229832d3, 0x7a30, 0x4b36, 0xb8, 0x27, 0xf4, 0x0c, 0xb7, 0xd4, 0x54, 0x36
-
+
gPcdPpiGuid
- 0x5d5c0e21, 0x749c, 0x4063, 0x81, 0xaf, 0xbc, 0x74, 0xfc, 0x79, 0xab, 0x5c
+ 0x6e81c58, 0x4ad7, 0x44bc, 0x83, 0x90, 0xf1, 0x2, 0x65, 0xf7, 0x24, 0x80
gEfiPeiBootScriptExecuterPpiGuid