From: "Anthony PERARD" <anthony.perard@citrix.com>
To: Laszlo Ersek <lersek@redhat.com>
Cc: <devel@edk2.groups.io>, Jordan Justen <jordan.l.justen@intel.com>,
"Ard Biesheuvel" <ard.biesheuvel@linaro.org>,
Julien Grall <julien.grall@arm.com>,
<xen-devel@lists.xenproject.org>
Subject: Re: [edk2-devel] [PATCH v2 02/31] OvmfPkg: Create platform XenOvmf
Date: Mon, 15 Apr 2019 11:53:44 +0100 [thread overview]
Message-ID: <20190415105344.GA1354@perard.uk.xensource.com> (raw)
In-Reply-To: <40c8064b-a161-1cfd-c3b1-7495c8115b74@redhat.com>
On Wed, Apr 10, 2019 at 11:32:10AM +0200, Laszlo Ersek wrote:
> On 04/09/19 13:08, Anthony PERARD wrote:
> > This is a copy of OvmfX64, removing VirtIO and some SMM.
> >
> > This new platform will be changed to make it works on two types of Xen
> > guest: HVM and PVH.
> >
> > Compare to OvmfX64, this patch:
> >
> > - changed: PLATFORM_GUID, OUTPUT_DIRECTORY, FLASH_DEFINITION
> > - removed: VirtioLib class resolution
> > - removed: all UEFI_DRIVER modules for virtio devices
> > - removed: DXE_SMM_DRIVER and SMM_CORE lib class resolutions
> > - removed: DXE_SMM_DRIVER and SMM_CORE FDF rules
> > - removed: Everything related to SMM_REQUIRE==true
> > - removed: Everything related to SECURE_BOOT_ENABLE==true
> > - removed: Everything related to TPM2_ENABLE==true
> > - changed: PcdPciDisableBusEnumeration dynamic default flipped to TRUE
> > - changed: default FD_SIZE_IN_KB to 2M.
> >
>
> (1) in the commit message, it might be worth mentioning (additionally)
> that we undo commit d272449d9e1e ("OvmfPkg: raise DXEFV size to 11 MB",
> 2018-05-29).
Will do.
> (2) Please don't forget to rename & replace XenOvmf -> OvmfXen (in file
> names, the commit message, and the patch body).
Will do.
> > diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/XenOvmf.fdf
> > similarity index 85%
> > copy from OvmfPkg/OvmfPkgIa32X64.fdf
> > copy to OvmfPkg/XenOvmf.fdf
> > index 6c40540202..612ffb2e01 100644
> > --- a/OvmfPkg/OvmfPkgIa32X64.fdf
> > +++ b/OvmfPkg/XenOvmf.fdf
> > @@ -197,9 +190,6 @@ [FV.DXEFV]
> > INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
> > INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
> > INF OvmfPkg/AmdSevDxe/AmdSevDxe.inf
> > -!if $(SMM_REQUIRE) == FALSE
> > - INF OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf
> > -!endif
> > }
>
> (3) Here you diverge from the general pattern of:
> - SMM_REQUIRE==TRUE --> drop the full block
> - SMM_REQUIRE==FALSE --> drop the condition, keep the block
>
> For consistency with the pattern, you sould *in theory* only drop the
> condition.
>
> Let's see what this change effects.
>
> You remove the driver from the APRIORI DXE file. That means the DXE Core
> will be at liberty to launch the driver at any time, provided DEPEXes
> are satisfied.
>
> This wouldn't be correct for the original FDF file, because there we
> need an arbitration between this driver and the emulation driver,
> dependent on flash detection. Therefore the original platform first
> launches the flash driver, and falls back to the emu driver if flash is
> not present. Except in case of SMM_REQUIRE, in which case *both* of
> those drivers are replaced by the SMM flash driver (and no arbitration
> occurs, because flash is a hard requirement).
>
> On Xen, SMM_REQUIRE is indeed assumed FALSE, but we also don't really
> need the arbitration, because we know the flash detection will always
> fail. Therefore, it is correct to remove the flash driver from the
> APRIORI DXE file -- but then, shouldn't we remove the driver itself from
> the DSC and FDF files too?
>
> I mean, if it doesn't matter *when* it is launched, then you don't need
> to launch it *at all*, I believe.
>
> If you agree, then it's OK (but not required) to split this change to a
> separate patch -- as I said it diverges from the general pattern and may
> deserve a bit more explanation.
I think that was removed by mistake, otherwise I think I would have
removed QemuFlashFvbServicesRuntimeDxe completely. I do some tests, and
if I do need to remove it from the APRIORI list, I do that in a
separated patch.
> (4) You might want to remove/revert SEV-related modules as well (I'm
> unsure if AMD SEV works on Xen -- if it does, then please ignore):
>
> - IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsicSev.inf
>
> (refer to "git blame" to see what to revert it to)
>
> -
> MemEncryptSevLib|OvmfPkg/Library/BaseMemEncryptSevLib/BaseMemEncryptSevLib.inf
>
> - NULL|OvmfPkg/Library/PlatformHasIoMmuLib/PlatformHasIoMmuLib.inf
>
> - OvmfPkg/AmdSevDxe/AmdSevDxe.inf
> - OvmfPkg/IoMmuDxe/IoMmuDxe.inf
>
> This can be a separate patch again.
Thanks for the suggestion. It probably doesn't hurt to keep the
SEV-related modules, so I think I'll keep them for now.
> (5) I think you could change the QemuFwCfgS3Lib resolution to
> "BaseQemuFwCfgS3LibNull.inf", and then remove all the S3 modules --
> search OvmfPkg, and generally the edk2 tree, for " PcdAcpiS3Enable".
>
> See also module names having "S3" in the name, in the FDF/DSC files.
>
> This would probably be a separate patch.
I'll have a look, thanks.
--
Anthony PERARD
next prev parent reply other threads:[~2019-04-15 10:53 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-09 11:08 [PATCH v2 00/31] Specific platform to run OVMF in Xen PVH and HVM guests Anthony PERARD
2019-04-09 11:08 ` [PATCH v2 01/31] OvmfPkg/ResetSystemLib: Add missing dependency on PciLib Anthony PERARD
2019-04-10 8:48 ` [edk2-devel] " Laszlo Ersek
2019-04-10 9:16 ` Jordan Justen
2019-04-09 11:08 ` [PATCH v2 02/31] OvmfPkg: Create platform XenOvmf Anthony PERARD
2019-04-10 9:32 ` [edk2-devel] " Laszlo Ersek
2019-04-15 10:53 ` Anthony PERARD [this message]
2019-04-10 9:48 ` Jordan Justen
2019-04-10 14:27 ` Laszlo Ersek
2019-04-10 16:27 ` Ard Biesheuvel
2019-04-10 18:37 ` Jordan Justen
2019-04-11 7:34 ` Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 03/31] OvmfPkg: Introduce XenResetVector Anthony PERARD
2019-04-10 9:46 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 04/31] OvmfPkg: Introduce XenPlatformPei Anthony PERARD
2019-04-10 10:37 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 05/31] OvmfPkg/XenOvmf: Creating an ELF header Anthony PERARD
2019-04-11 10:43 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 06/31] OvmfPkg/XenResetVector: Add new entry point for Xen PVH Anthony PERARD
2019-04-11 10:49 ` [edk2-devel] " Laszlo Ersek
2019-04-11 12:52 ` [Xen-devel] " Andrew Cooper
2019-04-15 11:25 ` Anthony PERARD
2019-04-15 13:28 ` Andrew Cooper
2019-04-09 11:08 ` [PATCH v2 07/31] OvmfPkg/XenResetVector: Saving start of day pointer for PVH guests Anthony PERARD
2019-04-11 11:09 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 08/31] OvmfPkg/XenResetVector: Allow to jumpstart from either hvmloader or PVH Anthony PERARD
2019-04-11 11:19 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 09/31] OvmfPkg/XenOvmf: use a TimerLib instance that depends only on the CPU Anthony PERARD
2019-04-11 11:25 ` [edk2-devel] " Laszlo Ersek
2019-04-11 11:33 ` Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 10/31] OvmfPkg/XenPlatformPei: Detect OVMF_INFO from hvmloader Anthony PERARD
2019-04-11 11:47 ` [edk2-devel] " Laszlo Ersek
2019-04-11 11:47 ` Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 11/31] OvmfPkg/XenPlatformPei: Use mXenHvmloaderInfo to get E820 Anthony PERARD
2019-04-11 11:49 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 12/31] OvmfPkg/XenPlatformPei: Grab RSDP from PVH guest start of day struct Anthony PERARD
2019-04-11 11:58 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 13/31] OvmfPkg/Library/XenPlatformLib: New library Anthony PERARD
2019-04-11 12:10 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 14/31] OvmfPkg/AcpiPlatformDxe: Use PVH RSDP if exist Anthony PERARD
2019-04-11 12:20 ` [edk2-devel] " Laszlo Ersek
2019-04-11 12:23 ` Laszlo Ersek
2019-04-11 12:31 ` Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 15/31] OvmfPkg/XenHypercallLib: Enable it in PEIM Anthony PERARD
2019-04-12 9:07 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 16/31] OvmfPkg/XenPlatformPei: Introduce XenHvmloaderDetected Anthony PERARD
2019-04-12 9:08 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 17/31] OvmfPkg/XenPlatformPei: Reserve hvmloader's memory only when it as runned Anthony PERARD
2019-04-12 9:09 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 18/31] OvmfPkg/XenPlatformPei: Setup HyperPages earlier Anthony PERARD
2019-04-12 9:17 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 19/31] OvmfPkg/XenPlatformPei: Introduce XenPvhDetected Anthony PERARD
2019-04-12 9:20 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 20/31] OvmfPkg: Import XENMEM_memory_map hypercall to Xen/memory.h Anthony PERARD
2019-04-12 9:22 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 21/31] OvmfPkg/XenPlatformPei: Get E820 table via hypercall Anthony PERARD
2019-04-12 9:33 ` [edk2-devel] " Laszlo Ersek
2019-04-12 9:45 ` [Xen-devel] " Andrew Cooper
2019-04-09 11:08 ` [PATCH v2 22/31] OvmfPkg/XenPlatformPei: Rework memory detection Anthony PERARD
2019-04-12 11:15 ` [edk2-devel] " Laszlo Ersek
2019-04-15 13:42 ` Anthony PERARD
2019-04-09 11:08 ` [PATCH v2 23/31] OvmfPkg/XenPlatformPei: Reserve VGA memory region, to boot Linux Anthony PERARD
2019-04-15 13:21 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 24/31] OvmfPkg/XenPlatformPei: Ignore missing PCI Host Bridge on Xen PVH Anthony PERARD
2019-04-15 13:29 ` [edk2-devel] " Laszlo Ersek
2019-04-15 13:33 ` Laszlo Ersek
2019-04-15 13:37 ` [Xen-devel] " Andrew Cooper
2019-04-09 11:08 ` [PATCH v2 25/31] OvmfPkg/PlatformBootManagerLib: Handle the absence of PCI bus " Anthony PERARD
2019-04-15 13:33 ` [edk2-devel] " Laszlo Ersek
2019-04-15 13:49 ` Laszlo Ersek
2019-04-15 14:40 ` Anthony PERARD
2019-04-15 17:57 ` Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 26/31] OvmfPkg/XenOvmf: Override PcdFSBClock to Xen vLAPIC timer frequency Anthony PERARD
2019-04-15 13:52 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 27/31] OvmfPkg/XenOvmf: Introduce XenTimerDxe Anthony PERARD
2019-04-15 14:07 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 28/31] OvmfPkg/PlatformBootManagerLib: Use a Xen console for ConOut/ConIn Anthony PERARD
2019-04-15 14:56 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 29/31] OvmfPkg: Introduce XenIoPvhDxe to initialize Grant Tables Anthony PERARD
2019-04-16 8:49 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 30/31] OvmfPkg: Move XenRealTimeClockLib from ArmVirtPkg Anthony PERARD
2019-04-16 8:53 ` [edk2-devel] " Laszlo Ersek
2019-04-09 11:08 ` [PATCH v2 31/31] OvmfPkg/XenOvmf: use RealTimeClockRuntimeDxe from EmbeddedPkg Anthony PERARD
2019-04-16 8:58 ` [edk2-devel] " Laszlo Ersek
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=20190415105344.GA1354@perard.uk.xensource.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