Dating back to commitsf5cb376703andddd34a8183, 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 commit8923699291, 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>
		
			
				
	
	
		
			35 lines
		
	
	
		
			983 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			983 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Declare the InternalTpm12Detect() function, hiding the TPM-1.2 detection
 | |
|   internals.
 | |
| 
 | |
|   Copyright (C) 2020, Red Hat, Inc.
 | |
| 
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| **/
 | |
| 
 | |
| #ifndef TPM12_SUPPORT_H_
 | |
| #define TPM12_SUPPORT_H_
 | |
| 
 | |
| #include <Uefi/UefiBaseType.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.
 | |
| 
 | |
|   @retval EFI_SUCCESS      TPM-1.2 available. The Tpm12RequestUseTpm() and
 | |
|                            Tpm12SubmitCommand(TPM_ORD_GetTicks) operations
 | |
|                            (from the Tpm12DeviceLib class) have succeeded.
 | |
| 
 | |
|   @return                  Error codes propagated from Tpm12RequestUseTpm() and
 | |
|                            Tpm12SubmitCommand().
 | |
| **/
 | |
| EFI_STATUS
 | |
| InternalTpm12Detect (
 | |
|   VOID
 | |
|   );
 | |
| 
 | |
| #endif // TPM12_SUPPORT_H_
 |