mirror of
https://github.com/acidanthera/audk.git
synced 2025-04-08 17:05:09 +02:00
OvmfPkg/Tcg2ConfigPei: skip TPM-1.2 detection when building for ARM/AARCH64
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.biesheuvel@arm.com> Cc: Eric Auger <eric.auger@redhat.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Marc-André Lureau <marcandre.lureau@redhat.com> Cc: Philippe Mathieu-Daudé <philmd@redhat.com> Cc: Simon Hardy <simon.hardy@itdev.co.uk> Cc: Stefan Berger <stefanb@linux.ibm.com> Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2728 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Message-Id: <20200520225841.17793-4-lersek@redhat.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@arm.com> Tested-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
This commit is contained in:
parent
fc72a6ceaa
commit
74f90d38c4
@ -21,9 +21,14 @@
|
|||||||
|
|
||||||
[Sources]
|
[Sources]
|
||||||
Tcg2ConfigPeim.c
|
Tcg2ConfigPeim.c
|
||||||
Tpm12Support.c
|
|
||||||
Tpm12Support.h
|
Tpm12Support.h
|
||||||
|
|
||||||
|
[Sources.IA32, Sources.X64]
|
||||||
|
Tpm12Support.c
|
||||||
|
|
||||||
|
[Sources.ARM, Sources.AARCH64]
|
||||||
|
Tpm12SupportNull.c
|
||||||
|
|
||||||
[Packages]
|
[Packages]
|
||||||
MdePkg/MdePkg.dec
|
MdePkg/MdePkg.dec
|
||||||
MdeModulePkg/MdeModulePkg.dec
|
MdeModulePkg/MdeModulePkg.dec
|
||||||
@ -35,9 +40,11 @@
|
|||||||
BaseLib
|
BaseLib
|
||||||
DebugLib
|
DebugLib
|
||||||
PeiServicesLib
|
PeiServicesLib
|
||||||
Tpm12DeviceLib
|
|
||||||
Tpm2DeviceLib
|
Tpm2DeviceLib
|
||||||
|
|
||||||
|
[LibraryClasses.IA32, LibraryClasses.X64]
|
||||||
|
Tpm12DeviceLib
|
||||||
|
|
||||||
[Guids]
|
[Guids]
|
||||||
gEfiTpmDeviceSelectedGuid ## PRODUCES ## GUID # Used as a PPI GUID
|
gEfiTpmDeviceSelectedGuid ## PRODUCES ## GUID # Used as a PPI GUID
|
||||||
gEfiTpmDeviceInstanceTpm20DtpmGuid ## SOMETIMES_CONSUMES
|
gEfiTpmDeviceInstanceTpm20DtpmGuid ## SOMETIMES_CONSUMES
|
||||||
|
@ -15,6 +15,10 @@
|
|||||||
/**
|
/**
|
||||||
Detect the presence of a TPM with interface version 1.2.
|
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
|
@retval EFI_SUCCESS TPM-1.2 available. The Tpm12RequestUseTpm() and
|
||||||
Tpm12SubmitCommand(TPM_ORD_GetTicks) operations
|
Tpm12SubmitCommand(TPM_ORD_GetTicks) operations
|
||||||
(from the Tpm12DeviceLib class) have succeeded.
|
(from the Tpm12DeviceLib class) have succeeded.
|
||||||
|
25
OvmfPkg/Tcg/Tcg2Config/Tpm12SupportNull.c
Normal file
25
OvmfPkg/Tcg/Tcg2Config/Tpm12SupportNull.c
Normal file
@ -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;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user