public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Gerd Hoffmann" <kraxel@redhat.com>
To: Min Xu <min.m.xu@intel.com>
Cc: devel@edk2.groups.io, 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>
Subject: Re: [PATCH V7 19/37] OvmfPkg/PlatformInitLib: Add memory functions
Date: Tue, 1 Mar 2022 14:09:41 +0100	[thread overview]
Message-ID: <20220301130941.dw6cdc5nvh7c63u2@sirius.home.kraxel.org> (raw)
In-Reply-To: <46e0f662050779ec3ce3caf17196403266e73269.1646031164.git.min.m.xu@intel.com>

On Mon, Feb 28, 2022 at 03:20:51PM +0800, Min Xu wrote:
> Below functions are introduced in PlatformInitLib:
>  - PlatformGetFirstNonAddress
>  - PlatformAddressWidthInitialization
>  - PlatformGetSystemMemorySizeBelow4gb
>  - PlatformQemuUc32BaseInitialization
>  - PlatformInitializeRamRegions
> 
> They correspond to the below functions in OvmfPkg/PlatformPei:
>  - GetFirstNonAddress
>  - AddressWidthInitialization
>  - GetSystemMemorySizeBelow4gb
>  - QemuUc32BaseInitialization
>  - InitializeRamRegions
> 
> After that OvmfPkg/PlatformPei is refactored with this library.
> 
> Note: PlatformInitLib will not determine whether SMM or S3 is supported
> or not. Instead the caller of these functions should input SMM / S3
> support as the IN parameter by themselves. This is to reduce the
> complexity of PlatformInitLib. Another reason is that some PCDs cannot
> be declared as FixedAtBuild while PlatformInitLib is designed to be used
> in both SEC and PEI phase.

Hmm.  Unlike patches 17+18 which are pure code motion (except the
function renaming but that doesn't change the workflow) this patch
mixes code changes and code moving which makes it hard to review.

It should be splitted into one (or more) patches changing the functions
as needed (and keeping the code in PlatformPei), and one patch moving
things over to PlatformInitLib without functional changes.

> +PlatformGetFirstNonAddress (
> +  OUT UINT64  *Pci64Base,
> +  OUT UINT64  *Pci64Size,
> +  IN  UINT64  DefaultPciMmio64Size
> +  )

> +VOID
> +QemuInitializeRam (
> +  UINT32         Uc32Base,
> +  UINT16         HostBridgeDevId,
> +  EFI_BOOT_MODE  BootMode,
> +  BOOLEAN        SmmSmramRequire,
> +  UINT32         LowerMemorySize,
> +  UINT16         Q35TsegMbytes
> +  )

> +VOID
> +EFIAPI
> +PlatformInitializeRamRegions (
> +  IN UINT32         Uc32Base,
> +  IN UINT16         HostBridgeDevId,
> +  IN BOOLEAN        SmmSmramRequire,
> +  IN EFI_BOOT_MODE  BootMode,
> +  IN BOOLEAN        S3Supported,
> +  IN UINT32         LowerMemorySize,
> +  IN UINT16         Q35TsegMbytes
> +  )

I think we should add all those parameters to the PLATFORM_INFO struct,
then simply pass around a pointer to that struct instead of having tons
of parameters for each function.

Due to this patch needing an update anyway it might be easier to do it
right away instead of an incremental cleanup after merging this series.

> @@ -85,7 +87,7 @@ MemMapInitialization (
>      return;
>    }
>  
> -  TopOfLowRam  = GetSystemMemorySizeBelow4gb ();
> +  TopOfLowRam  = PlatformGetSystemMemorySizeBelow4gb ();
>    PciExBarBase = 0;
>    if (mHostBridgeDevId == INTEL_Q35_MCH_DEVICE_ID) {
>      //
> @@ -736,6 +738,11 @@ InitializePlatform (
>      Q35SmramAtDefaultSmbaseInitialization ();
>    }
>  
> +  //
> +  // Fetch the lower memory size (Below 4G)
> +  //
> +  mLowerMemorySize = PlatformGetSystemMemorySizeBelow4gb ();

Can't you just use TopOfLowRam here?

take care,
  Gerd


  reply	other threads:[~2022-03-01 13:09 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-28  7:20 [PATCH V7 00/37] Enable Intel TDX in OvmfPkg (Config-A) Min Xu
2022-02-28  7:20 ` [PATCH V7 01/37] MdePkg: Add Tdx.h Min Xu
2022-02-28  7:20 ` [PATCH V7 02/37] MdePkg: Introduce basic Tdx functions in BaseLib Min Xu
2022-02-28  7:20 ` [PATCH V7 03/37] MdePkg: Add TdxLib to wrap Tdx operations Min Xu
2022-02-28  7:20 ` [PATCH V7 04/37] UefiCpuPkg: Extend VmgExitLibNull to handle #VE exception Min Xu
2022-03-15  7:15   ` [edk2-devel] [PATCH V7 04/37] UefiCpuPkg: Extend VmgExitLibNull to handle #VE exception #ve Ni, Ray
2022-02-28  7:20 ` [PATCH V7 05/37] OvmfPkg: Extend VmgExitLib to handle #VE exception Min Xu
2022-02-28  7:20 ` [PATCH V7 06/37] UefiCpuPkg/CpuExceptionHandler: Add base support for the " Min Xu
2022-03-15  7:17   ` [edk2-devel] [PATCH V7 06/37] UefiCpuPkg/CpuExceptionHandler: Add base support for the #VE exception #ve Ni, Ray
2022-03-15  7:37     ` Min Xu
2022-02-28  7:20 ` [PATCH V7 07/37] MdePkg: Add helper functions for Tdx guest in BaseIoLibIntrinsic Min Xu
2022-02-28  7:20 ` [PATCH V7 08/37] MdePkg: Support mmio " Min Xu
2022-02-28  7:20 ` [PATCH V7 09/37] MdePkg: Support IoFifo " Min Xu
2022-02-28  7:20 ` [PATCH V7 10/37] MdePkg: Support IoRead/IoWrite " Min Xu
2022-02-28  7:20 ` [PATCH V7 11/37] UefiCpuPkg: Support TDX in BaseXApicX2ApicLib Min Xu
2022-03-15  7:44   ` [edk2-devel] " Ni, Ray
2022-02-28  7:20 ` [PATCH V7 12/37] MdePkg: Add macro to check SEV / TDX guest Min Xu
2022-02-28  7:20 ` [PATCH V7 13/37] UefiCpuPkg: Enable Tdx support in MpInitLib Min Xu
2022-02-28  7:20 ` [PATCH V7 14/37] OvmfPkg: Add IntelTdx.h in OvmfPkg/Include/IndustryStandard Min Xu
2022-02-28  7:20 ` [PATCH V7 15/37] OvmfPkg: Add TdxMailboxLib Min Xu
2022-02-28  7:20 ` [PATCH V7 16/37] MdePkg: Add EFI_RESOURCE_ATTRIBUTE_ENCRYPTED in PiHob.h Min Xu
2022-02-28  7:20 ` [PATCH V7 17/37] OvmfPkg: Create initial version of PlatformInitLib Min Xu
2022-03-01 12:32   ` Gerd Hoffmann
2022-02-28  7:20 ` [PATCH V7 18/37] OvmfPkg/PlatformInitLib: Add hob functions Min Xu
2022-03-01 12:33   ` Gerd Hoffmann
2022-02-28  7:20 ` [PATCH V7 19/37] OvmfPkg/PlatformInitLib: Add memory functions Min Xu
2022-03-01 13:09   ` Gerd Hoffmann [this message]
2022-03-02  1:05     ` Min Xu
2022-03-02  6:56       ` [edk2-devel] " Gerd Hoffmann
2022-03-08  2:39         ` Min Xu
2022-02-28  7:20 ` [PATCH V7 20/37] OvmfPkg/PlatformInitLib: Add platform functions Min Xu
2022-02-28  7:20 ` [PATCH V7 21/37] OvmfPkg: Update PlatformInitLib to process Tdx hoblist Min Xu
2022-02-28  7:20 ` [PATCH V7 22/37] OvmfPkg/Sec: Declare local variable as volatile in SecCoreStartupWithStack Min Xu
2022-02-28  7:20 ` [PATCH V7 23/37] OvmfPkg: Update Sec to support Tdx Min Xu
2022-03-01 13:11   ` Gerd Hoffmann
2022-02-28  7:20 ` [PATCH V7 24/37] OvmfPkg: Check Tdx in QemuFwCfgPei to avoid DMA operation Min Xu
2022-02-28  7:20 ` [PATCH V7 25/37] MdeModulePkg: EFER should not be changed in TDX Min Xu
2022-03-03  3:11   ` Wang, Jian J
2022-03-04  0:18     ` Min Xu
2022-03-04  1:36       ` Wang, Jian J
2022-02-28  7:20 ` [PATCH V7 26/37] MdeModulePkg: Add PcdTdxSharedBitMask Min Xu
2022-03-03  3:27   ` Wang, Jian J
2022-03-04  1:34     ` Min Xu
2022-02-28  7:20 ` [PATCH V7 27/37] UefiCpuPkg: Update AddressEncMask in CpuPageTable Min Xu
2022-03-15  8:03   ` [edk2-devel] " Ni, Ray
2022-03-16  5:35     ` Min Xu
2022-02-28  7:21 ` [PATCH V7 28/37] OvmfPkg: Update PlatformInitLib for Tdx guest to publish ram regions Min Xu
2022-03-01 13:12   ` Gerd Hoffmann
2022-02-28  7:21 ` [PATCH V7 29/37] OvmfPkg: Update PlatformPei to support Tdx guest Min Xu
2022-03-01 13:13   ` Gerd Hoffmann
2022-02-28  7:21 ` [PATCH V7 30/37] OvmfPkg: Update AcpiPlatformDxe to alter MADT table Min Xu
2022-02-28  7:21 ` [PATCH V7 31/37] OvmfPkg/BaseMemEncryptTdxLib: Add TDX helper library Min Xu
2022-02-28  7:21 ` [PATCH V7 32/37] OvmfPkg: Add TdxDxe driver Min Xu
2022-02-28  7:21 ` [PATCH V7 33/37] OvmfPkg/QemuFwCfgLib: Support Tdx in QemuFwCfgDxe Min Xu
2022-02-28  7:21 ` [PATCH V7 34/37] OvmfPkg: Update IoMmuDxe to support TDX Min Xu
2022-02-28  7:21 ` [PATCH V7 35/37] OvmfPkg: Rename XenTimerDxe to LocalApicTimerDxe Min Xu
2022-02-28  7:21 ` [PATCH V7 36/37] UefiCpuPkg: Setting initial-count register as the last step Min Xu
2022-03-15  8:07   ` [edk2-devel] " Ni, Ray
2022-05-10 20:30   ` Lendacky, Thomas
2022-05-11  2:00     ` Min Xu
2022-05-11 14:06       ` Lendacky, Thomas
2022-05-12  0:52         ` Min Xu
2022-05-13 22:12           ` Lendacky, Thomas
2022-05-19 21:54             ` Henz, Patrick
2022-05-20  3:50               ` Jeff Fan
2022-02-28  7:21 ` [PATCH V7 37/37] OvmfPkg: Switch timer in build time for OvmfPkg Min Xu
2022-03-01  2:19 ` 回复: [edk2-devel] [PATCH V7 00/37] Enable Intel TDX in OvmfPkg (Config-A) gaoliming
2022-03-01  6:39   ` Min Xu
2022-03-01  6:53     ` Yao, Jiewen
2022-03-10  6:21   ` Min Xu
2022-03-11  3:19     ` 回复: " gaoliming
2022-03-11  7:17       ` 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=20220301130941.dw6cdc5nvh7c63u2@sirius.home.kraxel.org \
    --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