Dating back to commits f5cb3767038e and ddd34a818315d, the "ArmVirtPkg/ArmVirtQemu.dsc" platform includes the "OvmfPkg/Tcg/Tcg2Config/Tcg2ConfigPei.inf" module when the TPM2_ENABLE build flag is defined.
This was regressed in commit 89236992913f, which added a Tpm12DeviceLib dependency to Tcg2ConfigPei. "ArmVirtQemu.dsc" does not resolve that class to any instance, so now we get a build failure: > build.py... > ArmVirtPkg/ArmVirtQemu.dsc(...): error 4000: Instance of library class > [Tpm12DeviceLib] is not found > in [OvmfPkg/Tcg/Tcg2Config/Tcg2ConfigPei.inf] [AARCH64] > consumed by module [OvmfPkg/Tcg/Tcg2Config/Tcg2ConfigPei.inf] The TPM-1.2 code in OvmfPkg/Tcg2ConfigPei is limited to a special use case (a kind of physical TPM-1.2 assignment), and that has never applied to "ArmVirtQemu.dsc". Short-circuit the TPM-1.2 detection in the ARM/AARCH64 builds of OvmfPkg/Tcg2ConfigPei, removing the Tpm12DeviceLib dependency. Functionally, this patch is a no-op on IA32 / X64. Cc: Ard Biesheuvel <ard.biesheu...@arm.com> Cc: Eric Auger <eric.au...@redhat.com> Cc: Jordan Justen <jordan.l.jus...@intel.com> Cc: Marc-André Lureau <marcandre.lur...@redhat.com> Cc: Philippe Mathieu-Daudé <phi...@redhat.com> Cc: Simon Hardy <simon.ha...@itdev.co.uk> Cc: Stefan Berger <stef...@linux.ibm.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2728 Signed-off-by: Laszlo Ersek <ler...@redhat.com> --- OvmfPkg/Tcg/Tcg2Config/Tcg2ConfigPei.inf | 11 +++++++-- OvmfPkg/Tcg/Tcg2Config/Tpm12Support.h | 4 ++++ OvmfPkg/Tcg/Tcg2Config/Tpm12SupportNull.c | 25 ++++++++++++++++++++ 3 files changed, 38 insertions(+), 2 deletions(-) diff --git a/OvmfPkg/Tcg/Tcg2Config/Tcg2ConfigPei.inf b/OvmfPkg/Tcg/Tcg2Config/Tcg2ConfigPei.inf index aa996b7da778..194ebfba6409 100644 --- a/OvmfPkg/Tcg/Tcg2Config/Tcg2ConfigPei.inf +++ b/OvmfPkg/Tcg/Tcg2Config/Tcg2ConfigPei.inf @@ -21,9 +21,14 @@ [Defines] [Sources] Tcg2ConfigPeim.c - Tpm12Support.c Tpm12Support.h +[Sources.IA32, Sources.X64] + Tpm12Support.c + +[Sources.ARM, Sources.AARCH64] + Tpm12SupportNull.c + [Packages] MdePkg/MdePkg.dec MdeModulePkg/MdeModulePkg.dec @@ -35,9 +40,11 @@ [LibraryClasses] BaseLib DebugLib PeiServicesLib - Tpm12DeviceLib Tpm2DeviceLib +[LibraryClasses.IA32, LibraryClasses.X64] + Tpm12DeviceLib + [Guids] gEfiTpmDeviceSelectedGuid ## PRODUCES ## GUID # Used as a PPI GUID gEfiTpmDeviceInstanceTpm20DtpmGuid ## SOMETIMES_CONSUMES diff --git a/OvmfPkg/Tcg/Tcg2Config/Tpm12Support.h b/OvmfPkg/Tcg/Tcg2Config/Tpm12Support.h index c739775d2353..d92c43253081 100644 --- a/OvmfPkg/Tcg/Tcg2Config/Tpm12Support.h +++ b/OvmfPkg/Tcg/Tcg2Config/Tpm12Support.h @@ -15,6 +15,10 @@ /** Detect the presence of a TPM with interface version 1.2. + @retval EFI_UNSUPPORTED The platform that includes this particular + implementation of the function does not support + TPM-1.2. + @retval EFI_SUCCESS TPM-1.2 available. The Tpm12RequestUseTpm() and Tpm12SubmitCommand(TPM_ORD_GetTicks) operations (from the Tpm12DeviceLib class) have succeeded. diff --git a/OvmfPkg/Tcg/Tcg2Config/Tpm12SupportNull.c b/OvmfPkg/Tcg/Tcg2Config/Tpm12SupportNull.c new file mode 100644 index 000000000000..7bb377b9b9b0 --- /dev/null +++ b/OvmfPkg/Tcg/Tcg2Config/Tpm12SupportNull.c @@ -0,0 +1,25 @@ +/** @file + Null implementation of InternalTpm12Detect(), always returning + EFI_UNSUPPORTED. + + Copyright (C) 2020, Red Hat, Inc. + + SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#include "Tpm12Support.h" + +/** + Detect the presence of a TPM with interface version 1.2. + + @retval EFI_UNSUPPORTED The platform that includes this particular + implementation of the function does not support + TPM-1.2. +**/ +EFI_STATUS +InternalTpm12Detect ( + VOID + ) +{ + return EFI_UNSUPPORTED; +} -- 2.19.1.3.g30247aa5d201 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#60006): https://edk2.groups.io/g/devel/message/60006 Mute This Topic: https://groups.io/mt/74362544/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-