From: "Laszlo Ersek" <lersek@redhat.com>
To: devel@edk2.groups.io, anthony.perard@citrix.com
Cc: 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 13/31] OvmfPkg/Library/XenPlatformLib: New library
Date: Thu, 11 Apr 2019 14:10:51 +0200 [thread overview]
Message-ID: <1a61482b-68a8-76fa-409f-ac3f87aedb52@redhat.com> (raw)
In-Reply-To: <20190409110844.14746-14-anthony.perard@citrix.com>
On 04/09/19 13:08, Anthony PERARD wrote:
> The purpose of XenPlatformPei is to regroup the few functions that are
(1) did you mean XenPlatformLib here?
> used in several places to detect if Xen is detected, and to get the
> XenInfo HOB.
>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
> ---
> OvmfPkg/XenOvmf.dsc | 1 +
> MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf => OvmfPkg/Library/XenPlatformLib/XenPlatformLib.inf | 27 +++----
> OvmfPkg/Include/Library/XenPlatformLib.h | 59 +++++++++++++++
> OvmfPkg/Library/XenPlatformLib/XenPlatformLib.c | 75 ++++++++++++++++++++
> 4 files changed, 150 insertions(+), 12 deletions(-)
>
> diff --git a/OvmfPkg/XenOvmf.dsc b/OvmfPkg/XenOvmf.dsc
> index cc51bac3be..9529b4834f 100644
> --- a/OvmfPkg/XenOvmf.dsc
> +++ b/OvmfPkg/XenOvmf.dsc
> @@ -198,6 +198,7 @@ [LibraryClasses]
> SmbusLib|MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf
> OrderedCollectionLib|MdePkg/Library/BaseOrderedCollectionRedBlackTreeLib/BaseOrderedCollectionRedBlackTreeLib.inf
> XenHypercallLib|OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf
> + XenPlatformLib|OvmfPkg/Library/XenPlatformLib/XenPlatformLib.inf
>
> Tcg2PhysicalPresenceLib|OvmfPkg/Library/Tcg2PhysicalPresenceLibNull/DxeTcg2PhysicalPresenceLib.inf
>
> diff --git a/MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf b/OvmfPkg/Library/XenPlatformLib/XenPlatformLib.inf
> similarity index 56%
> copy from MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf
> copy to OvmfPkg/Library/XenPlatformLib/XenPlatformLib.inf
> index 4fd4874595..ca078f7263 100644
> --- a/MdePkg/Library/BaseSmbusLibNull/BaseSmbusLibNull.inf
> +++ b/OvmfPkg/Library/XenPlatformLib/XenPlatformLib.inf
obviously this is a false positive for git's "--find-copies-harder", but
I can look at the file in isolation using your git branch...
(3) Please use "SPDX-License-Identifier: BSD-2-Clause-Patent", rather
than the open-coded 2-clause BSDL.
(This applies to other new files in this patch as well.)
[...]
> diff --git a/OvmfPkg/Include/Library/XenPlatformLib.h b/OvmfPkg/Include/Library/XenPlatformLib.h
> new file mode 100644
> index 0000000000..8f57450575
> --- /dev/null
> +++ b/OvmfPkg/Include/Library/XenPlatformLib.h
> @@ -0,0 +1,59 @@
> +/** @file
> +* Get information about Xen
> +*
> +* This library simply allow to find out if OVMF is running under Xen and
> +* allow to get more information when it is the case.
> +*
> +* Copyright (c) 2019, Citrix Systems, Inc.
> +*
> +* This program and the accompanying materials are
> +* licensed and made available under the terms and conditions of the BSD License
> +* which accompanies this distribution. The full text of the license may be found at
> +* http://opensource.org/licenses/bsd-license.php
> +*
> +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +*
> +**/
> +
> +#ifndef _XEN_PLATFORM_LIB_H_
> +#define _XEN_PLATFORM_LIB_H_
> +
> +#include <Guid/XenInfo.h>
> +
> +/**
> + This function detects if OVMF is running on Xen.
> +
> + @retval TRUE OVMF is running on Xen
> + @retval FALSE Xen as not been detected
(4) "has" not been detected
... same for the function definition as well, in the .c file below.
(5) At the introduction of a new library class, we should update the
[LibraryClasses] section in the "OvmfPkg/OvmfPkg.dec" file. I think you
can add this new class under XenHypercallLib and XenIoMmioLib there.
(To confirm, I'm not speaking about the .dsc file, but the .dec file.)
Thanks
Laszlo
> +**/
> +BOOLEAN
> +EFIAPI
> +XenDetected (
> + VOID
> + );
> +
> +/**
> + This function detect if OVMF have started via the PVH entry point.
> +
> + @retval TRUE PVH entry point as been used
> + @retval FALSE OVMF have started via the HVM route
> +**/
> +BOOLEAN
> +EFIAPI
> +XenPvhDetected (
> + VOID
> + );
> +
> +/**
> + This function return a pointer to the XenInfo HOB.
> +
> + @return XenInfo pointer or NULL if not available
> +**/
> +EFI_XEN_INFO *
> +EFIAPI
> +XenGetInfoHOB (
> + VOID
> + );
> +
> +#endif
> diff --git a/OvmfPkg/Library/XenPlatformLib/XenPlatformLib.c b/OvmfPkg/Library/XenPlatformLib/XenPlatformLib.c
> new file mode 100644
> index 0000000000..274ddfc9ad
> --- /dev/null
> +++ b/OvmfPkg/Library/XenPlatformLib/XenPlatformLib.c
> @@ -0,0 +1,75 @@
> +/** @file
> +* Get information about Xen
> +*
> +* This library simply allow to find out if OVMF is running under Xen and
> +* allow to get more information when it is the case.
> +*
> +* Copyright (c) 2019, Citrix Systems, Inc.
> +*
> +* This program and the accompanying materials are
> +* licensed and made available under the terms and conditions of the BSD License
> +* which accompanies this distribution. The full text of the license may be found at
> +* http://opensource.org/licenses/bsd-license.php
> +*
> +* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
> +* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
> +*
> +**/
> +
> +#include <PiDxe.h>
> +#include <Library/HobLib.h>
> +#include <Library/XenPlatformLib.h>
> +
> +/**
> + This function return a pointer to the XenInfo HOB.
> +
> + @return XenInfo pointer or NULL if not available
> +**/
> +EFI_XEN_INFO *
> +EFIAPI
> +XenGetInfoHOB (
> + VOID
> + )
> +{
> + EFI_HOB_GUID_TYPE *GuidHob;
> +
> + GuidHob = GetFirstGuidHob (&gEfiXenInfoGuid);
> + if (GuidHob == NULL) {
> + return NULL;
> + }
> +
> + return (EFI_XEN_INFO *) GET_GUID_HOB_DATA (GuidHob);
> +}
> +
> +/**
> + This function detects if OVMF is running on Xen.
> +
> + @retval TRUE OVMF is running on Xen
> + @retval FALSE Xen as not been detected
> +**/
> +BOOLEAN
> +EFIAPI
> +XenDetected (
> + VOID
> + )
> +{
> + return (XenGetInfoHOB () != NULL);
> +}
> +
> +/**
> + This function detect if OVMF have started via the PVH entry point.
> +
> + @retval TRUE PVH entry point as been used
> + @retval FALSE OVMF have started via the HVM route
> +**/
> +BOOLEAN
> +EFIAPI
> +XenPvhDetected (
> + VOID
> + )
> +{
> + EFI_XEN_INFO *XenInfo;
> +
> + XenInfo = XenGetInfoHOB ();
> + return (XenInfo != NULL && XenInfo->RsdpPvh != NULL);
> +}
>
next prev parent reply other threads:[~2019-04-11 12:10 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
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 ` Laszlo Ersek [this message]
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=1a61482b-68a8-76fa-409f-ac3f87aedb52@redhat.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