MdeModulePkg PiSmmIpl: Fix the issue in LMFA feature

SmramBase should be got from mLMFAConfigurationTable.

Cc: Star Zeng <star.zeng@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Liming Gao <liming.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
This commit is contained in:
Liming Gao 2017-04-12 16:34:13 +08:00
parent 1a5ae66175
commit c2aeb66fff
1 changed files with 6 additions and 6 deletions

View File

@ -263,6 +263,7 @@ EFI_PHYSICAL_ADDRESS mSmramCacheBase;
UINT64 mSmramCacheSize; UINT64 mSmramCacheSize;
EFI_SMM_COMMUNICATE_HEADER mCommunicateHeader; EFI_SMM_COMMUNICATE_HEADER mCommunicateHeader;
EFI_LOAD_FIXED_ADDRESS_CONFIGURATION_TABLE *mLMFAConfigurationTable = NULL;
// //
// Table of Protocol notification and GUIDed Event notifications that the SMM IPL requires // Table of Protocol notification and GUIDed Event notifications that the SMM IPL requires
@ -841,7 +842,7 @@ GetPeCoffImageFixLoadingAssignedAddress(
FixLoadingAddress = 0; FixLoadingAddress = 0;
Status = EFI_NOT_FOUND; Status = EFI_NOT_FOUND;
SmramBase = mCurrentSmramRange->CpuStart; SmramBase = mLMFAConfigurationTable->SmramBase;
// //
// Get PeHeader pointer // Get PeHeader pointer
// //
@ -1519,7 +1520,6 @@ SmmIplEntry (
UINT64 MaxSize; UINT64 MaxSize;
VOID *Registration; VOID *Registration;
UINT64 SmmCodeSize; UINT64 SmmCodeSize;
EFI_LOAD_FIXED_ADDRESS_CONFIGURATION_TABLE *LMFAConfigurationTable;
EFI_CPU_ARCH_PROTOCOL *CpuArch; EFI_CPU_ARCH_PROTOCOL *CpuArch;
EFI_STATUS SetAttrStatus; EFI_STATUS SetAttrStatus;
EFI_SMRAM_DESCRIPTOR *SmramRangeSmmDriver; EFI_SMRAM_DESCRIPTOR *SmramRangeSmmDriver;
@ -1623,14 +1623,14 @@ SmmIplEntry (
// //
Status = EfiGetSystemConfigurationTable ( Status = EfiGetSystemConfigurationTable (
&gLoadFixedAddressConfigurationTableGuid, &gLoadFixedAddressConfigurationTableGuid,
(VOID **) &LMFAConfigurationTable (VOID **) &mLMFAConfigurationTable
); );
if (!EFI_ERROR (Status) && LMFAConfigurationTable != NULL) { if (!EFI_ERROR (Status) && mLMFAConfigurationTable != NULL) {
LMFAConfigurationTable->SmramBase = mCurrentSmramRange->CpuStart; mLMFAConfigurationTable->SmramBase = mCurrentSmramRange->CpuStart;
// //
// Print the SMRAM base // Print the SMRAM base
// //
DEBUG ((EFI_D_INFO, "LOADING MODULE FIXED INFO: TSEG BASE is %x. \n", LMFAConfigurationTable->SmramBase)); DEBUG ((EFI_D_INFO, "LOADING MODULE FIXED INFO: TSEG BASE is %x. \n", mLMFAConfigurationTable->SmramBase));
} }
// //