OvmfPkg: Refine SmmAccess implementation
This patch refines the SmmAccess implementation: 1. SmramMap will be retrieved from the gEfiSmmSmramMemoryGuid instead of original from the TSEG Memory Base register. 2. Remove the gEfiAcpiVariableGuid creation, thus the DESCRIPTOR_INDEX definition can be also cleaned. 3. The gEfiAcpiVariableGuid HOB is moved to the OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf. Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Ray Ni <ray.ni@intel.com> Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com> Tested-by: Gerd Hoffmann <kraxel@redhat.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
This commit is contained in:
@@ -42,6 +42,8 @@ Module Name:
|
||||
#include <Library/TdxLib.h>
|
||||
|
||||
#include <Library/PlatformInitLib.h>
|
||||
|
||||
#include <Guid/AcpiS3Context.h>
|
||||
#include <Guid/SmramMemoryReserve.h>
|
||||
|
||||
#define MEGABYTE_SHIFT 20
|
||||
@@ -1003,6 +1005,7 @@ CreateSmmSmramMemoryHob (
|
||||
UINT8 SmramRanges;
|
||||
EFI_PEI_HOB_POINTERS Hob;
|
||||
EFI_SMRAM_HOB_DESCRIPTOR_BLOCK *SmramHobDescriptorBlock;
|
||||
VOID *GuidHob;
|
||||
|
||||
SmramRanges = 2;
|
||||
BufferSize = sizeof (EFI_SMRAM_HOB_DESCRIPTOR_BLOCK) + (SmramRanges - 1) * sizeof (EFI_SMRAM_DESCRIPTOR);
|
||||
@@ -1025,6 +1028,13 @@ CreateSmmSmramMemoryHob (
|
||||
SmramHobDescriptorBlock->Descriptor[0].PhysicalSize = EFI_PAGE_SIZE;
|
||||
SmramHobDescriptorBlock->Descriptor[0].RegionState = EFI_SMRAM_CLOSED | EFI_CACHEABLE | EFI_ALLOCATED;
|
||||
|
||||
//
|
||||
// 1.1 Create gEfiAcpiVariableGuid according SmramHobDescriptorBlock->Descriptor[0] since it's used in S3 resume.
|
||||
//
|
||||
GuidHob = BuildGuidHob (&gEfiAcpiVariableGuid, sizeof (EFI_SMRAM_DESCRIPTOR));
|
||||
ASSERT (GuidHob != NULL);
|
||||
CopyMem (GuidHob, &SmramHobDescriptorBlock->Descriptor[0], sizeof (EFI_SMRAM_DESCRIPTOR));
|
||||
|
||||
//
|
||||
// 2. Create second SMRAM descriptor, which is free and will be used by SMM foundation.
|
||||
//
|
||||
|
Reference in New Issue
Block a user