STATIC UINT32 mS3AcpiReservedMemoryBase;\r
STATIC UINT32 mS3AcpiReservedMemorySize;\r
\r
+STATIC UINT16 mQ35TsegMbytes;\r
+\r
+VOID\r
+Q35TsegMbytesInitialization (\r
+ VOID\r
+ )\r
+{\r
+ mQ35TsegMbytes = PcdGet16 (PcdQ35TsegMbytes);\r
+}\r
+\r
+\r
UINT32\r
GetSystemMemorySizeBelow4gb (\r
VOID\r
//\r
// TSEG is chipped from the end of low RAM\r
//\r
- LowerMemorySize -= FixedPcdGet16 (PcdQ35TsegMbytes) * SIZE_1MB;\r
+ LowerMemorySize -= mQ35TsegMbytes * SIZE_1MB;\r
}\r
\r
//\r
if (FeaturePcdGet (PcdSmmSmramRequire)) {\r
UINT32 TsegSize;\r
\r
- TsegSize = FixedPcdGet16 (PcdQ35TsegMbytes) * SIZE_1MB;\r
+ TsegSize = mQ35TsegMbytes * SIZE_1MB;\r
AddMemoryRangeHob (BASE_1MB, LowerMemorySize - TsegSize);\r
AddReservedMemoryBaseSizeHob (LowerMemorySize - TsegSize, TsegSize,\r
TRUE);\r
// Make sure the TSEG area that we reported as a reserved memory resource\r
// cannot be used for reserved memory allocations.\r
//\r
- TsegSize = FixedPcdGet16 (PcdQ35TsegMbytes) * SIZE_1MB;\r
+ TsegSize = mQ35TsegMbytes * SIZE_1MB;\r
BuildMemoryAllocationHob (\r
GetSystemMemorySizeBelow4gb() - TsegSize,\r
TsegSize,\r
AddressWidthInitialization ();\r
MaxCpuCountInitialization ();\r
\r
+ if (FeaturePcdGet (PcdSmmSmramRequire)) {\r
+ Q35TsegMbytesInitialization ();\r
+ }\r
+\r
PublishPeiMemory ();\r
\r
InitializeRamRegions ();\r