Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed by: Liming Gao <liming.gao@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15027
6f19259b-4bc3-4df7-8a09-
765794883524
- return mPcdDatabase.PeiDb->SystemSkuId;\r
+ return mPcdDatabase.DxeDb->SystemSkuId;\r
- mPcdDatabase.PeiDb->SystemSkuId = (SKU_ID) SkuId;\r
+ mPcdDatabase.DxeDb->SystemSkuId = (SKU_ID) SkuId;\r
UINT32 PcdDxeDbLen;\r
VOID *PcdDxeDb;\r
\r
UINT32 PcdDxeDbLen;\r
VOID *PcdDxeDb;\r
\r
+ //\r
+ // Assign PCD Entries with default value to PCD DATABASE\r
+ //\r
+ mPcdDatabase.DxeDb = LocateExPcdBinary ();\r
+ ASSERT(mPcdDatabase.DxeDb != NULL);\r
+ PcdDxeDbLen = mPcdDatabase.DxeDb->Length + mPcdDatabase.DxeDb->UninitDataBaseSize;\r
+ PcdDxeDb = AllocateZeroPool (PcdDxeDbLen);\r
+ ASSERT (PcdDxeDb != NULL);\r
+ CopyMem (PcdDxeDb, mPcdDatabase.DxeDb, mPcdDatabase.DxeDb->Length);\r
+ FreePool (mPcdDatabase.DxeDb);\r
+ mPcdDatabase.DxeDb = PcdDxeDb;\r
+\r
GuidHob = GetFirstGuidHob (&gPcdDataBaseHobGuid);\r
if (GuidHob != NULL) {\r
\r
GuidHob = GetFirstGuidHob (&gPcdDataBaseHobGuid);\r
if (GuidHob != NULL) {\r
\r
// Assign PCD Entries refereneced in PEI phase to PCD DATABASE\r
//\r
mPcdDatabase.PeiDb = PeiDatabase;\r
// Assign PCD Entries refereneced in PEI phase to PCD DATABASE\r
//\r
mPcdDatabase.PeiDb = PeiDatabase;\r
+ //\r
+ // Inherit the SystemSkuId from PEI phase.\r
+ //\r
+ mPcdDatabase.DxeDb->SystemSkuId = mPcdDatabase.PeiDb->SystemSkuId;\r
+ } else {\r
+ mPcdDatabase.PeiDb = AllocateZeroPool (sizeof (PEI_PCD_DATABASE));\r
+ ASSERT(mPcdDatabase.PeiDb != NULL);\r
- //\r
- // Assign PCD Entries with default value to PCD DATABASE\r
- //\r
- mPcdDatabase.DxeDb = LocateExPcdBinary ();\r
- ASSERT(mPcdDatabase.DxeDb != NULL);\r
- PcdDxeDbLen = mPcdDatabase.DxeDb->Length + mPcdDatabase.DxeDb->UninitDataBaseSize;\r
- PcdDxeDb = AllocateZeroPool (PcdDxeDbLen);\r
- ASSERT (PcdDxeDb != NULL);\r
- CopyMem (PcdDxeDb, mPcdDatabase.DxeDb, mPcdDatabase.DxeDb->Length);\r
- FreePool (mPcdDatabase.DxeDb);\r
- mPcdDatabase.DxeDb = PcdDxeDb;\r
-\r
//\r
// Initialized the external PCD database local variables\r
//\r
//\r
// Initialized the external PCD database local variables\r
//\r
//\r
FoundSku = FALSE;\r
for (Index = 0; Index < SkuIdTable[0]; Index++) {\r
//\r
FoundSku = FALSE;\r
for (Index = 0; Index < SkuIdTable[0]; Index++) {\r
- if (mPcdDatabase.PeiDb->SystemSkuId == SkuIdTable[Index + 1]) {\r
+ if (mPcdDatabase.DxeDb->SystemSkuId == SkuIdTable[Index + 1]) {\r
FoundSku = TRUE;\r
break;\r
}\r
FoundSku = TRUE;\r
break;\r
}\r
//\r
SkuIdTable = GetSkuIdArray (LocalTokenNumberTableIdx, IsPeiDb);\r
for (Index = 0; Index < SkuIdTable[0]; Index++) {\r
//\r
SkuIdTable = GetSkuIdArray (LocalTokenNumberTableIdx, IsPeiDb);\r
for (Index = 0; Index < SkuIdTable[0]; Index++) {\r
- if (SkuIdTable[1 + Index] == mPcdDatabase.PeiDb->SystemSkuId) {\r
+ if (SkuIdTable[1 + Index] == mPcdDatabase.DxeDb->SystemSkuId) {\r
return SizeTable[SizeTableIdx + 1 + Index];\r
}\r
}\r
return SizeTable[SizeTableIdx + 1 + Index];\r
}\r
}\r
//\r
SkuIdTable = GetSkuIdArray (LocalTokenNumberTableIdx, IsPeiDb);\r
for (Index = 0; Index < SkuIdTable[0]; Index++) {\r
//\r
SkuIdTable = GetSkuIdArray (LocalTokenNumberTableIdx, IsPeiDb);\r
for (Index = 0; Index < SkuIdTable[0]; Index++) {\r
- if (SkuIdTable[1 + Index] == mPcdDatabase.PeiDb->SystemSkuId) {\r
+ if (SkuIdTable[1 + Index] == mPcdDatabase.DxeDb->SystemSkuId) {\r
SizeTable[SizeTableIdx + 1 + Index] = (SIZE_INFO) *CurrentSize;\r
return TRUE;\r
}\r
SizeTable[SizeTableIdx + 1 + Index] = (SIZE_INFO) *CurrentSize;\r
return TRUE;\r
}\r