From nobody Sun May 5 01:48:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+92421+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+92421+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1660556451; cv=none; d=zohomail.com; s=zohoarc; b=iOq8RJpkmjv3BMHi4BfjBl98c1Pqq8LHt+uEA+894hB2I5cUu/uxkk/o2GhBihe2vDvmmyjZptbO5+WMy6o0knhBS4HwifbwAg9nLzTdfxJocZb33t+x1UwB8Vrn1IYRnpN37Lpz32Nm69EcLkHHvzQRGkGZUzrg2SLAeP9RxtU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660556451; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=Rxi79rrsk05ADm5nPq1FaqQNRZszCbg8uVJdpF4ZT1I=; b=Bgb1C7exZe1wjCxmGdCj7M5Gj4f/kiBvzb3U9AxqVT8mTg+kBl0uwZwWr4hUmE+p1O3JiSU/557rebLroklUazqrpwBKwHe2IJYd1+PwJy9VjU0Bdq+ofNkEkEJCl4dri6vXtrnDZ4UZAaab3SL95eD8zWEMYlklrvXo7lV9anI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+92421+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1660556451534783.0729402441997; Mon, 15 Aug 2022 02:40:51 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id qFduYY1788612xBfiTY4cZhr; Mon, 15 Aug 2022 02:40:51 -0700 X-Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by mx.groups.io with SMTP id smtpd.web10.21.1660556450200077892 for ; Mon, 15 Aug 2022 02:40:50 -0700 X-Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id A870AB80DC7; Mon, 15 Aug 2022 09:40:48 +0000 (UTC) X-Received: by smtp.kernel.org (Postfix) with ESMTPSA id AD8DBC433D6; Mon, 15 Aug 2022 09:40:45 +0000 (UTC) From: "Ard Biesheuvel" To: devel@edk2.groups.io Cc: Ard Biesheuvel , Yuan Yu , Laszlo Ersek , Gerd Hoffmann , Pawel Polawski , Oliver Steffen , Jiewen Yao Subject: [edk2-devel] [PATCH 1/2] OvmfPkg: Introduce NULL class library to inhibit driver load Date: Mon, 15 Aug 2022 11:40:29 +0200 Message-Id: <20220815094030.465587-2-ardb@kernel.org> In-Reply-To: <20220815094030.465587-1-ardb@kernel.org> References: <20220815094030.465587-1-ardb@kernel.org> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: 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,ardb@kernel.org X-Gm-Message-State: tpB17ZZjaG2mh5r7w4SDphg6x1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1660556451; bh=fe/vHkO4hlAB5gkFOmd/2UkrDWwc590EC1Xobx194CI=; h=Cc:Date:From:Reply-To:Subject:To; b=dgyl4ImNrDjrMMdkyu6ffmeGJ5EeRalJewbMK1YiMPaCxMtlagDY3lBxBNGzFa3DZpM eareCZHfacj0jTs/FVxRUgZY6sVZ3DiLniD2wyq4+Sxs6P0+K7U/MeE0Nbo1vV/01zeKu nZCimtmoQST/GQLgefjM5b+O0jbenheRQxI= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1660556451821100004 Content-Type: text/plain; charset="utf-8" Add a new library that can be incorporated into any driver built from source, and which permits loading of the driver to be inhibited based on the value of a QEMU fw_cfg boolean variable. This will be used in a subsequent patch to allow dispatch of the IPv6 and IPv6 network protocol driver to be controlled from the QEMU command line. Signed-off-by: Ard Biesheuvel --- OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.c | 30 +++= +++++++++++++++++ OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.inf | 28 +++= +++++++++++++++ OvmfPkg/OvmfPkg.dec | 4 +++ 3 files changed, 62 insertions(+) diff --git a/OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.= c b/OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.c new file mode 100644 index 000000000000..dc8544bc38be --- /dev/null +++ b/OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.c @@ -0,0 +1,30 @@ +// @file +// Copyright (c) 2022, Google LLC. All rights reserved.
+// SPDX-License-Identifier: BSD-2-Clause-Patent +// + +#include + +#include +#include + +STATIC CHAR16 mExitData[] =3D L"Driver dispatch inhibited by QEMU fw_cfg v= ariable."; + +EFI_STATUS +EFIAPI +DriverLoadInhibitorLibConstructor ( + IN EFI_HANDLE Handle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + RETURN_STATUS Status; + BOOLEAN Enabled; + + Status =3D QemuFwCfgParseBool (FixedPcdGetPtr (PcdDriverInhibitorFwCfgVa= rName), + &Enabled); + if (!RETURN_ERROR (Status) && !Enabled) { + return gBS->Exit (Handle, EFI_REQUEST_UNLOAD_IMAGE, sizeof mExitData, + mExitData); + } + return EFI_SUCCESS; +} diff --git a/OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.= inf b/OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.inf new file mode 100644 index 000000000000..ed521d12d335 --- /dev/null +++ b/OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.inf @@ -0,0 +1,28 @@ +## @file +# Copyright (c) 2022, Google LLC. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent +# +## + +[Defines] + INF_VERSION =3D 1.29 + BASE_NAME =3D DriverLoadInhibitorLib + FILE_GUID =3D af4c2c0b-f7ed-4d61-ad97-5953982c3531 + MODULE_TYPE =3D DXE_DRIVER + VERSION_STRING =3D 1.0 + LIBRARY_CLASS =3D NULL + CONSTRUCTOR =3D DriverLoadInhibitorLibConstructor + +[Sources] + DriverLoadInhibitorLib.c + +[LibraryClasses] + QemuFwCfgSimpleParserLib + UefiBootServicesTableLib + +[Packages] + MdePkg/MdePkg.dec + OvmfPkg/OvmfPkg.dec + +[FixedPcd] + gUefiOvmfPkgTokenSpaceGuid.PcdDriverInhibitorFwCfgVarName diff --git a/OvmfPkg/OvmfPkg.dec b/OvmfPkg/OvmfPkg.dec index 5af76a540529..e9a22cab088c 100644 --- a/OvmfPkg/OvmfPkg.dec +++ b/OvmfPkg/OvmfPkg.dec @@ -399,6 +399,10 @@ [PcdsFixedAtBuild] ## The Tdx accept page size. 0x1000(4k),0x200000(2M) gUefiOvmfPkgTokenSpaceGuid.PcdTdxAcceptPageSize|0x200000|UINT32|0x65 =20 + ## The QEMU fw_cfg variable that DriverLoadInhibitorLib will check to + # decide whether to abort dispatch of the driver it is linked into. + gUefiOvmfPkgTokenSpaceGuid.PcdDriverInhibitorFwCfgVarName|""|VOID*|0x68 + [PcdsDynamic, PcdsDynamicEx] gUefiOvmfPkgTokenSpaceGuid.PcdEmuVariableEvent|0|UINT64|2 gUefiOvmfPkgTokenSpaceGuid.PcdOvmfFlashVariablesEnable|FALSE|BOOLEAN|0x10 --=20 2.35.1 -=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 (#92421): https://edk2.groups.io/g/devel/message/92421 Mute This Topic: https://groups.io/mt/93032846/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- From nobody Sun May 5 01:48:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+92422+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+92422+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=kernel.org ARC-Seal: i=1; a=rsa-sha256; t=1660556452; cv=none; d=zohomail.com; s=zohoarc; b=aweBSLOXISiGmqouN3+XKKFo2kKWFQ0cvsO4YFRaG8k7wFJdohz0XFLbl7rfqckyMurMHq7mU8vSaPBtUXGvFOiyGcA5/F6gXfL+HtGsdxhOW/0kiPZecSIzLME+ScNBnQjCG7EpJ1r4YNgjHc9jxeuY6k8ZUiXvD8fkqY9R2Is= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1660556452; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=VSomsKixgEkPg5snZK77ijEt7wYYu7fnwZS7vgUEsjc=; b=S8QRFyaf+fBKveIXOPXmmTNtC64AkovMIvkbzoh6jdQSBd5Sbct1ZAStxB2NCKus8iS5aQC//KAM5TocGMh45FVxNILFqU+ekGXUzI2fdwH6J5lvL0RPI25D8z0B4SLOLi0h6qvpBIwzZNQFmmIQm+CKeZ1s52Sg5uDMsO/9n4c= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+92422+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1660556452052730.2839917724647; Mon, 15 Aug 2022 02:40:52 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id ExuOYY1788612xsZn8jTyHyP; Mon, 15 Aug 2022 02:40:51 -0700 X-Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by mx.groups.io with SMTP id smtpd.web11.25.1660556451129818466 for ; Mon, 15 Aug 2022 02:40:51 -0700 X-Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 31AA46100B; Mon, 15 Aug 2022 09:40:50 +0000 (UTC) X-Received: by smtp.kernel.org (Postfix) with ESMTPSA id D730BC433D7; Mon, 15 Aug 2022 09:40:47 +0000 (UTC) From: "Ard Biesheuvel" To: devel@edk2.groups.io Cc: Ard Biesheuvel , Yuan Yu , Laszlo Ersek , Gerd Hoffmann , Pawel Polawski , Oliver Steffen , Jiewen Yao Subject: [edk2-devel] [PATCH 2/2] OvmfPkg/OvmfPkgX64: Allow runtime control of IPv4 and IPv6 support Date: Mon, 15 Aug 2022 11:40:30 +0200 Message-Id: <20220815094030.465587-3-ardb@kernel.org> In-Reply-To: <20220815094030.465587-1-ardb@kernel.org> References: <20220815094030.465587-1-ardb@kernel.org> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: List-Subscribe: List-Help: 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,ardb@kernel.org X-Gm-Message-State: JIKSXi2NXkLXb5gsjlryJRD5x1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1660556451; bh=WPG9KtNtyeCJk4F0IRzgbVQhr0B5ORh4ecCzG4P8GVc=; h=Cc:Date:From:Reply-To:Subject:To; b=BAmrn3tUoFfRoVKaCx+dDyTTIKLH02MM9itIY5owR3qxkQ49wKO+LNv6qkHlvjESaRk N8M0nkaoWhLWpgRoE/t4HhA82S6gmCYZMH1y5CDbcHXnK5v8qut4QR+I4CFFfxJrK03FJ O11W72KgOJ70uB4S6GBp/FqLLJNtXfNOABI= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1660556453786100011 Content-Type: text/plain; charset="utf-8" Wire up the newly added DriverLoadInhibitorLib in a way that ties dispatch of the Ip4Dxe and Ip6Dxe drivers to QEMU fw_cfg variables 'opt/org.tianocore/IPv4Support' and 'opt/org.tianocore/IPv6Support' respectively. Setting both variables to 'n' disables IP based networking entirely, without the need for additional code changes at the NIC driver or network boot protocol level. Signed-off-by: Ard Biesheuvel --- OvmfPkg/OvmfPkgX64.dsc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc index 6e68f60dc90f..0c0ded88f86e 100644 --- a/OvmfPkg/OvmfPkgX64.dsc +++ b/OvmfPkg/OvmfPkgX64.dsc @@ -947,6 +947,20 @@ [Components] NULL|OvmfPkg/Library/PxeBcPcdProducerLib/PxeBcPcdProducerLib.inf } =20 + NetworkPkg/Ip4Dxe/Ip4Dxe.inf { + + NULL|OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.i= nf + + gUefiOvmfPkgTokenSpaceGuid.PcdDriverInhibitorFwCfgVarName|"opt/org.t= ianocore/IPv4Support" + } + + NetworkPkg/Ip6Dxe/Ip6Dxe.inf { + + NULL|OvmfPkg/Library/DriverLoadInhibitorLib/DriverLoadInhibitorLib.i= nf + + gUefiOvmfPkgTokenSpaceGuid.PcdDriverInhibitorFwCfgVarName|"opt/org.t= ianocore/IPv6Support" + } + !if $(NETWORK_TLS_ENABLE) =3D=3D TRUE NetworkPkg/TlsAuthConfigDxe/TlsAuthConfigDxe.inf { --=20 2.35.1 -=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 (#92422): https://edk2.groups.io/g/devel/message/92422 Mute This Topic: https://groups.io/mt/93032847/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-