From: "Min Xu" <min.m.xu@intel.com>
To: devel@edk2.groups.io
Cc: Min Xu <min.m.xu@intel.com>,
Ard Biesheuvel <ardb+tianocore@kernel.org>,
Jordan Justen <jordan.l.justen@intel.com>,
Brijesh Singh <brijesh.singh@amd.com>,
Erdem Aktas <erdemaktas@google.com>,
James Bottomley <jejb@linux.ibm.com>,
Jiewen Yao <jiewen.yao@intel.com>,
Tom Lendacky <thomas.lendacky@amd.com>,
Gerd Hoffmann <kraxel@redhat.com>,
Sebastien Boeuf <sebastien.boeuf@intel.com>
Subject: [PATCH V10 25/47] OvmfPkg/PlatformPei: Refactor InitializeRamRegions
Date: Thu, 24 Mar 2022 08:10:11 +0800 [thread overview]
Message-ID: <20220324001033.1169-26-min.m.xu@intel.com> (raw)
In-Reply-To: <20220324001033.1169-1-min.m.xu@intel.com>
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3863
InitializeRamRegions is refactored into 3 calls:
- PlatformQemuInitializeRam
- SevInitializeRam
- PlatformQemuInitializeRamForS3
SevInitializeRam is not in PlatformInitLib. Because in the first stage
PlatformInitLib only support the basic platform featues.
PlatformQemuInitializeRamForS3 wraps the code which was previously in
InitializeRamRegions (many code in 2 if-checks).
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Brijesh Singh <brijesh.singh@amd.com>
Cc: Erdem Aktas <erdemaktas@google.com>
Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Sebastien Boeuf <sebastien.boeuf@intel.com>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Min Xu <min.m.xu@intel.com>
---
OvmfPkg/PlatformPei/MemDetect.c | 40 ++++++++++++++++++++-------------
OvmfPkg/PlatformPei/Platform.c | 2 +-
OvmfPkg/PlatformPei/Platform.h | 3 ++-
3 files changed, 28 insertions(+), 17 deletions(-)
diff --git a/OvmfPkg/PlatformPei/MemDetect.c b/OvmfPkg/PlatformPei/MemDetect.c
index 45f7eba65d04..23a583ed3386 100644
--- a/OvmfPkg/PlatformPei/MemDetect.c
+++ b/OvmfPkg/PlatformPei/MemDetect.c
@@ -161,7 +161,7 @@ PlatformQemuUc32BaseInitialization (
// variable MTRR suffices by truncating the size to a whole power of two,
// while keeping the end affixed to 4GB. This will round the base up.
//
- LowerMemorySize = GetSystemMemorySizeBelow4gb (PlatformInfoHob);
+ LowerMemorySize = PlatformGetSystemMemorySizeBelow4gb (PlatformInfoHob);
PlatformInfoHob->Uc32Size = GetPowerOfTwo32 ((UINT32)(SIZE_4GB - LowerMemorySize));
PlatformInfoHob->Uc32Base = (UINT32)(SIZE_4GB - PlatformInfoHob->Uc32Size);
//
@@ -372,7 +372,8 @@ GetHighestSystemMemoryAddressFromPvhMemmap (
}
UINT32
-GetSystemMemorySizeBelow4gb (
+EFIAPI
+PlatformGetSystemMemorySizeBelow4gb (
IN EFI_HOB_PLATFORM_INFO *PlatformInfoHob
)
{
@@ -761,7 +762,7 @@ PublishPeiMemory (
UINT32 S3AcpiReservedMemoryBase;
UINT32 S3AcpiReservedMemorySize;
- LowerMemorySize = GetSystemMemorySizeBelow4gb (&mPlatformInfoHob);
+ LowerMemorySize = PlatformGetSystemMemorySizeBelow4gb (&mPlatformInfoHob);
if (mPlatformInfoHob.SmmSmramRequire) {
//
// TSEG is chipped from the end of low RAM
@@ -871,7 +872,7 @@ QemuInitializeRamBelow1gb (
**/
STATIC
VOID
-QemuInitializeRam (
+PlatformQemuInitializeRam (
IN EFI_HOB_PLATFORM_INFO *PlatformInfoHob
)
{
@@ -885,7 +886,7 @@ QemuInitializeRam (
//
// Determine total memory size available
//
- LowerMemorySize = GetSystemMemorySizeBelow4gb (PlatformInfoHob);
+ LowerMemorySize = PlatformGetSystemMemorySizeBelow4gb (PlatformInfoHob);
if (PlatformInfoHob->BootMode == BOOT_ON_S3_RESUME) {
//
@@ -995,19 +996,12 @@ QemuInitializeRam (
}
}
-/**
- Publish system RAM and reserve memory regions
-
-**/
+STATIC
VOID
-InitializeRamRegions (
+PlatformQemuInitializeRamForS3 (
IN EFI_HOB_PLATFORM_INFO *PlatformInfoHob
)
{
- QemuInitializeRam (PlatformInfoHob);
-
- SevInitializeRam ();
-
if (PlatformInfoHob->S3Supported && (PlatformInfoHob->BootMode != BOOT_ON_S3_RESUME)) {
//
// This is the memory range that will be used for PEI on S3 resume
@@ -1113,7 +1107,7 @@ InitializeRamRegions (
//
TsegSize = PlatformInfoHob->Q35TsegMbytes * SIZE_1MB;
BuildMemoryAllocationHob (
- GetSystemMemorySizeBelow4gb (PlatformInfoHob) - TsegSize,
+ PlatformGetSystemMemorySizeBelow4gb (PlatformInfoHob) - TsegSize,
TsegSize,
EfiReservedMemoryType
);
@@ -1152,3 +1146,19 @@ InitializeRamRegions (
#endif
}
}
+
+/**
+ Publish system RAM and reserve memory regions
+
+**/
+VOID
+InitializeRamRegions (
+ IN EFI_HOB_PLATFORM_INFO *PlatformInfoHob
+ )
+{
+ PlatformQemuInitializeRam (PlatformInfoHob);
+
+ SevInitializeRam ();
+
+ PlatformQemuInitializeRamForS3 (PlatformInfoHob);
+}
diff --git a/OvmfPkg/PlatformPei/Platform.c b/OvmfPkg/PlatformPei/Platform.c
index 1275c9187e86..f89d14493ecf 100644
--- a/OvmfPkg/PlatformPei/Platform.c
+++ b/OvmfPkg/PlatformPei/Platform.c
@@ -79,7 +79,7 @@ MemMapInitialization (
return;
}
- TopOfLowRam = GetSystemMemorySizeBelow4gb (PlatformInfoHob);
+ TopOfLowRam = PlatformGetSystemMemorySizeBelow4gb (PlatformInfoHob);
PciExBarBase = 0;
if (PlatformInfoHob->HostBridgeDevId == INTEL_Q35_MCH_DEVICE_ID) {
//
diff --git a/OvmfPkg/PlatformPei/Platform.h b/OvmfPkg/PlatformPei/Platform.h
index 038a806a1e1b..635d58379a24 100644
--- a/OvmfPkg/PlatformPei/Platform.h
+++ b/OvmfPkg/PlatformPei/Platform.h
@@ -35,7 +35,8 @@ PublishPeiMemory (
);
UINT32
-GetSystemMemorySizeBelow4gb (
+EFIAPI
+PlatformGetSystemMemorySizeBelow4gb (
IN EFI_HOB_PLATFORM_INFO *PlatformInfoHob
);
--
2.29.2.windows.2
next prev parent reply other threads:[~2022-03-24 0:12 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-24 0:09 [PATCH V10 00/47] Enable Intel TDX in OvmfPkg (Config-A) Min Xu
2022-03-24 0:09 ` [PATCH V10 01/47] MdePkg: Add Tdx.h Min Xu
2022-03-24 0:09 ` [PATCH V10 02/47] MdePkg: Update Cpuid.h for Tdx Min Xu
2022-03-24 0:09 ` [PATCH V10 03/47] MdePkg: Introduce basic Tdx functions in BaseLib Min Xu
2022-03-24 0:09 ` [PATCH V10 04/47] MdePkg: Add TdxLib to wrap Tdx operations Min Xu
2022-03-24 0:09 ` [PATCH V10 05/47] UefiCpuPkg: Extend VmgExitLibNull to handle #VE exception Min Xu
2022-03-24 0:09 ` [PATCH V10 06/47] OvmfPkg: Extend VmgExitLib " Min Xu
2022-03-24 0:09 ` [PATCH V10 07/47] UefiCpuPkg/CpuExceptionHandler: Add base support for the " Min Xu
2022-03-24 0:09 ` [PATCH V10 08/47] MdePkg: Add helper functions for Tdx guest in BaseIoLibIntrinsic Min Xu
2022-03-24 0:09 ` [PATCH V10 09/47] MdePkg: Support mmio " Min Xu
2022-03-24 0:09 ` [PATCH V10 10/47] MdePkg: Support IoFifo " Min Xu
2022-03-24 0:09 ` [PATCH V10 11/47] MdePkg: Support IoRead/IoWrite " Min Xu
2022-03-24 0:09 ` [PATCH V10 12/47] UefiCpuPkg: Support TDX in BaseXApicX2ApicLib Min Xu
2022-03-24 0:09 ` [PATCH V10 13/47] MdePkg: Add macro to check SEV / TDX guest Min Xu
2022-03-24 0:10 ` [PATCH V10 14/47] UefiCpuPkg: Enable Tdx support in MpInitLib Min Xu
2022-03-28 1:20 ` Ni, Ray
2022-03-28 8:04 ` Min Xu
2022-03-24 0:10 ` [PATCH V10 15/47] OvmfPkg: Add IntelTdx.h in OvmfPkg/Include/IndustryStandard Min Xu
2022-03-24 0:10 ` [PATCH V10 16/47] OvmfPkg: Add TdxMailboxLib Min Xu
2022-03-24 0:10 ` [PATCH V10 17/47] OvmfPkg: Create initial version of PlatformInitLib Min Xu
2022-03-24 0:10 ` [PATCH V10 18/47] OvmfPkg/PlatformInitLib: Add hob functions Min Xu
2022-03-24 0:10 ` [PATCH V10 19/47] OvmfPkg/PlatformPei: Move global variables to PlatformInfoHob Min Xu
2022-03-24 0:10 ` [PATCH V10 20/47] OvmfPkg/PlatformPei: Refactor MiscInitialization Min Xu
2022-03-24 0:10 ` [PATCH V10 21/47] OvmfPkg/PlatformPei: Refactor MiscInitialization for CloudHV Min Xu
2022-03-24 0:10 ` [PATCH V10 22/47] OvmfPkg/PlatformPei: Refactor AddressWidthInitialization Min Xu
2022-03-24 0:10 ` [PATCH V10 23/47] OvmfPkg/PlatformPei: Refactor MaxCpuCountInitialization Min Xu
2022-03-24 0:10 ` [PATCH V10 24/47] OvmfPkg/PlatformPei: Refactor QemuUc32BaseInitialization Min Xu
2022-03-24 0:10 ` Min Xu [this message]
2022-03-24 0:10 ` [PATCH V10 26/47] OvmfPkg/PlatformPei: Refactor MemMapInitialization Min Xu
2022-03-24 0:10 ` [PATCH V10 27/47] OvmfPkg/PlatformPei: Refactor NoexecDxeInitialization Min Xu
2022-03-24 0:10 ` [PATCH V10 28/47] OvmfPkg/PlatformPei: Refactor MiscInitialization Min Xu
2022-03-24 0:10 ` [PATCH V10 29/47] OvmfPkg/PlatformInitLib: Create MemDetect.c Min Xu
2022-03-24 0:10 ` [PATCH V10 30/47] OvmfPkg/PlatformInitLib: Move functions to Platform.c Min Xu
2022-03-24 0:10 ` [PATCH V10 31/47] OvmfPkg: Update PlatformInitLib to process Tdx hoblist Min Xu
2022-03-24 0:10 ` [PATCH V10 32/47] OvmfPkg/Sec: Declare local variable as volatile in SecCoreStartupWithStack Min Xu
2022-03-24 0:10 ` [PATCH V10 33/47] OvmfPkg: Update Sec to support Tdx Min Xu
2022-03-24 0:10 ` [PATCH V10 35/47] MdeModulePkg: Skip setting IA32_ERER.NXE if it has already been set Min Xu
2022-03-24 0:10 ` [PATCH V10 36/47] MdeModulePkg: Add PcdTdxSharedBitMask Min Xu
2022-03-24 0:10 ` [PATCH V10 37/47] UefiCpuPkg: Update AddressEncMask in CpuPageTable Min Xu
2022-03-24 0:10 ` [PATCH V10 38/47] OvmfPkg: Update PlatformInitLib for Tdx guest Min Xu
2022-03-24 0:10 ` [PATCH V10 39/47] OvmfPkg: Update PlatformPei to support " Min Xu
2022-03-24 0:10 ` [PATCH V10 40/47] OvmfPkg: Update AcpiPlatformDxe to alter MADT table Min Xu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220324001033.1169-26-min.m.xu@intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox