From nobody Thu Nov 14 16:50:43 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+45542+1787277+3901457@groups.io ARC-Seal: i=1; a=rsa-sha256; t=1565697474; cv=none; d=zoho.com; s=zohoarc; b=i0e9I4TZUk5ryoB28gYULCYvISkSKQp7c+EgFpgedX7VwqF+GXS36a8U1YToTYbMAAHOELqhg7VNraKzxO589CNUzrzwJxpDvouzaD1aan4pBpoI+jlXVwDQiqJDV6dT7cRlivlZKWKjIxGOi2q/uWyW781+pDBmY0ysBHWHZxU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1565697474; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Id:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To:ARC-Authentication-Results; bh=zYrvr0jss5bn0rTvmF2dT1kAKjyt5J2Zr8m7Dj+By8s=; b=CAG37ncSik0V5of7tWa/oxOOy3c0lZz/SyBsljvvo9pOuHFeIYpR3bOFF423NcPtKCHHYBpehXLAMTGuV49f5f8quMGQfZJx9MneFJPwK0zZRm50nbzMUqXt0LGsL/lLCu8ZZjYyWOFB4l63Uvb/IeXflliF9XGmCWz4Oit1+D4= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=pass; spf=pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+45542+1787277+3901457@groups.io Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1565697474832110.2477261374089; Tue, 13 Aug 2019 04:57:54 -0700 (PDT) Return-Path: X-Received: from esa1.hc3370-68.iphmx.com (esa1.hc3370-68.iphmx.com [216.71.145.142]) by groups.io with SMTP; Tue, 13 Aug 2019 04:57:53 -0700 Received-SPF: pass (zoho.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+45542+1787277+3901457@groups.io; helo=web01.groups.io; Received-SPF: None (esa1.hc3370-68.iphmx.com: no sender authenticity information available from domain of anthony.perard@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa1.hc3370-68.iphmx.com: domain of anthony.perard@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="anthony.perard@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa1.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa1.hc3370-68.iphmx.com; envelope-from="anthony.perard@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: T9QfOht1AkLrhOSSjpG00qHXQQFO8DlAjhIZ83SXDdtM9zipSDGLOZ5kGIxq7kH87JBmMLHk4C zzhJJlmCdM5cJFpB/qq4WSu67ru64C62gSPqJmWD0/W1KQeXdLZzNsYMMSOKzudlh5W2mpg97z F9J6rFIZUb37VwW567VvnobTrEgYNH7vD+DqnQJaRBN5v7WRRKjCO9PemspW0trZhgailxPJux dCb88M+Xaq3qSk9rqLLRp2jQJzEjFbRT4it/IBdyzHXIjM2yLxi3fIxkZcx76Oj0Obj3Px7PIL jK0= X-SBRS: 2.7 X-MesageID: 4242240 X-Ironport-Server: esa1.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,381,1559534400"; d="scan'208";a="4242240" From: "Anthony PERARD" To: CC: Laszlo Ersek , Jordan Justen , Julien Grall , , Ard Biesheuvel , Anthony PERARD Subject: [edk2-devel] [PATCH v5 13/35] OvmfPkg/Library/XenPlatformLib: New library Date: Tue, 13 Aug 2019 12:30:57 +0100 Message-ID: <20190813113119.14804-14-anthony.perard@citrix.com> In-Reply-To: <20190813113119.14804-1-anthony.perard@citrix.com> References: <20190813113119.14804-1-anthony.perard@citrix.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,anthony.perard@citrix.com Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1565697474; bh=zYrvr0jss5bn0rTvmF2dT1kAKjyt5J2Zr8m7Dj+By8s=; h=CC:Content-Type:Date:From:Reply-To:Subject:To; b=FFbR3/4BgKAzqIrtBzM+lfkDrBrTtQ4Ov5QB9QWmeUzzJLQ+zzGKiwcBcsGA7ugYe2B RUmhxpYvIg5RrOPaGKJWFy5MZRUVDDYHkNUcj8N7vsRnMOXFXXTXObInevsRVtzdO2L4v Lt2GEAIQlY2HrYRxg1dNYn3nhSERqOKPy9Q= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Type: text/plain; charset="utf-8" The purpose of XenPlatformLib is to regroup the few functions that are used in several places to detect if Xen is detected, and to get the XenInfo HOB. Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3D1689 Signed-off-by: Anthony PERARD Reviewed-by: Laszlo Ersek --- Notes: v4: - fix top-level comment style - Update Maintainers.txt =20 v3: - use SPDX - add XenPlatformLib.h to [LibraryClasses] in OvmfPkg.dec - fix typos OvmfPkg/OvmfPkg.dec | 4 ++ OvmfPkg/OvmfXen.dsc | 1 + .../Library/XenPlatformLib/XenPlatformLib.inf | 33 +++++++++ OvmfPkg/Include/Library/XenPlatformLib.h | 53 ++++++++++++++ .../Library/XenPlatformLib/XenPlatformLib.c | 69 +++++++++++++++++++ Maintainers.txt | 2 + 6 files changed, 162 insertions(+) create mode 100644 OvmfPkg/Library/XenPlatformLib/XenPlatformLib.inf create mode 100644 OvmfPkg/Include/Library/XenPlatformLib.h create mode 100644 OvmfPkg/Library/XenPlatformLib/XenPlatformLib.c diff --git a/OvmfPkg/OvmfPkg.dec b/OvmfPkg/OvmfPkg.dec index c2a2ebfb95..04d5e29272 100644 --- a/OvmfPkg/OvmfPkg.dec +++ b/OvmfPkg/OvmfPkg.dec @@ -70,6 +70,10 @@ [LibraryClasses] # XenIoMmioLib|Include/Library/XenIoMmioLib.h =20 + ## @libraryclass Get information about Xen + # + XenPlatformLib|Include/Library/XenPlatformLib.h + [Guids] gUefiOvmfPkgTokenSpaceGuid =3D {0x93bb96af, 0xb9f2, 0x4eb8, {0x= 94, 0x62, 0xe0, 0xba, 0x74, 0x56, 0x42, 0x36}} gEfiXenInfoGuid =3D {0xd3b46f3b, 0xd441, 0x1244, {0x= 9a, 0x12, 0x0, 0x12, 0x27, 0x3f, 0xc1, 0x4d}} diff --git a/OvmfPkg/OvmfXen.dsc b/OvmfPkg/OvmfXen.dsc index b40d39e003..22970eda5d 100644 --- a/OvmfPkg/OvmfXen.dsc +++ b/OvmfPkg/OvmfXen.dsc @@ -194,6 +194,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 =20 Tcg2PhysicalPresenceLib|OvmfPkg/Library/Tcg2PhysicalPresenceLibNull/DxeT= cg2PhysicalPresenceLib.inf TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurem= entLibNull.inf diff --git a/OvmfPkg/Library/XenPlatformLib/XenPlatformLib.inf b/OvmfPkg/Li= brary/XenPlatformLib/XenPlatformLib.inf new file mode 100644 index 0000000000..32adb246d6 --- /dev/null +++ b/OvmfPkg/Library/XenPlatformLib/XenPlatformLib.inf @@ -0,0 +1,33 @@ +## @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. +# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +# +## + +[Defines] + INF_VERSION =3D 0x00010005 + BASE_NAME =3D XenPlatformLib + FILE_GUID =3D DB54DBB7-8142-4EE5-9364-78C824B582EB + MODULE_TYPE =3D BASE + VERSION_STRING =3D 1.0 + LIBRARY_CLASS =3D XenPlatformLib + +[Sources] + XenPlatformLib.c + +[Packages] + MdePkg/MdePkg.dec + OvmfPkg/OvmfPkg.dec + +[LibraryClasses] + HobLib + +[Guids] + gEfiXenInfoGuid diff --git a/OvmfPkg/Include/Library/XenPlatformLib.h b/OvmfPkg/Include/Lib= rary/XenPlatformLib.h new file mode 100644 index 0000000000..8b8c0d057f --- /dev/null +++ b/OvmfPkg/Include/Library/XenPlatformLib.h @@ -0,0 +1,53 @@ +/** @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. + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#ifndef _XEN_PLATFORM_LIB_H_ +#define _XEN_PLATFORM_LIB_H_ + +#include + +/** + This function detects if OVMF is running on Xen. + + @retval TRUE OVMF is running on Xen + @retval FALSE Xen has not been detected +**/ +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/Libr= ary/XenPlatformLib/XenPlatformLib.c new file mode 100644 index 0000000000..974a0e73f1 --- /dev/null +++ b/OvmfPkg/Library/XenPlatformLib/XenPlatformLib.c @@ -0,0 +1,69 @@ +/** @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. + + SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include +#include +#include + +/** + 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 =3D GetFirstGuidHob (&gEfiXenInfoGuid); + if (GuidHob =3D=3D 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 has not been detected +**/ +BOOLEAN +EFIAPI +XenDetected ( + VOID + ) +{ + return (XenGetInfoHOB () !=3D 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 =3D XenGetInfoHOB (); + return (XenInfo !=3D NULL && XenInfo->RsdpPvh !=3D NULL); +} diff --git a/Maintainers.txt b/Maintainers.txt index 016523b401..f51731a6b6 100644 --- a/Maintainers.txt +++ b/Maintainers.txt @@ -365,6 +365,7 @@ F: OvmfPkg/Include/Guid/XenInfo.h F: OvmfPkg/Include/IndustryStandard/Xen/ F: OvmfPkg/Include/Library/XenHypercallLib.h F: OvmfPkg/Include/Library/XenIoMmioLib.h +F: OvmfPkg/Include/Library/XenPlatformLib.h F: OvmfPkg/Include/Protocol/XenBus.h F: OvmfPkg/Include/Protocol/XenIo.h F: OvmfPkg/Library/PciHostBridgeLib/XenSupport.c @@ -372,6 +373,7 @@ F: OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c F: OvmfPkg/Library/XenConsoleSerialPortLib/ F: OvmfPkg/Library/XenHypercallLib/ F: OvmfPkg/Library/XenIoMmioLib/ +F: OvmfPkg/Library/XenPlatformLib/ F: OvmfPkg/OvmfXen.* F: OvmfPkg/OvmfXenElfHeaderGenerator.c F: OvmfPkg/PlatformPei/MemDetect.c --=20 Anthony PERARD -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#45542): https://edk2.groups.io/g/devel/message/45542 Mute This Topic: https://groups.io/mt/32851686/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-