From c2aeb66fff90e7326d095aed0876d1f67f94f75e Mon Sep 17 00:00:00 2001 From: Liming Gao Date: Wed, 12 Apr 2017 16:34:13 +0800 Subject: [PATCH] MdeModulePkg PiSmmIpl: Fix the issue in LMFA feature SmramBase should be got from mLMFAConfigurationTable. Cc: Star Zeng Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Liming Gao Reviewed-by: Star Zeng --- MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c b/MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c index feb846ee9e..2601275ab8 100644 --- a/MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c +++ b/MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c @@ -263,6 +263,7 @@ EFI_PHYSICAL_ADDRESS mSmramCacheBase; UINT64 mSmramCacheSize; 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 @@ -841,7 +842,7 @@ GetPeCoffImageFixLoadingAssignedAddress( FixLoadingAddress = 0; Status = EFI_NOT_FOUND; - SmramBase = mCurrentSmramRange->CpuStart; + SmramBase = mLMFAConfigurationTable->SmramBase; // // Get PeHeader pointer // @@ -1519,7 +1520,6 @@ SmmIplEntry ( UINT64 MaxSize; VOID *Registration; UINT64 SmmCodeSize; - EFI_LOAD_FIXED_ADDRESS_CONFIGURATION_TABLE *LMFAConfigurationTable; EFI_CPU_ARCH_PROTOCOL *CpuArch; EFI_STATUS SetAttrStatus; EFI_SMRAM_DESCRIPTOR *SmramRangeSmmDriver; @@ -1623,14 +1623,14 @@ SmmIplEntry ( // Status = EfiGetSystemConfigurationTable ( &gLoadFixedAddressConfigurationTableGuid, - (VOID **) &LMFAConfigurationTable + (VOID **) &mLMFAConfigurationTable ); - if (!EFI_ERROR (Status) && LMFAConfigurationTable != NULL) { - LMFAConfigurationTable->SmramBase = mCurrentSmramRange->CpuStart; + if (!EFI_ERROR (Status) && mLMFAConfigurationTable != NULL) { + mLMFAConfigurationTable->SmramBase = mCurrentSmramRange->CpuStart; // // 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)); } // -- 2.39.2