/** @file This library provides an interfaces to access DynamicPcds used in Tpm2DeviceLibFfa. Copyright (c) 2025, Arm Ltd. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include #include #include #include #include "Tpm2DeviceLibFfa.h" /** This function validate TPM interface type for TPM service over FF-A. @retval EFI_SUCCESS TPM interface type is valid. @retval EFI_UNSUPPORTED TPM interface type is invalid. **/ EFI_STATUS EFIAPI ValidateTpmInterfaceType ( VOID ) { TPM2_PTP_INTERFACE_TYPE TpmInterfaceType; TpmInterfaceType = Tpm2GetPtpInterface ((VOID *)(UINTN)PcdGet64 (PcdTpmBaseAddress)); if (TpmInterfaceType != Tpm2PtpInterfaceCrb) { return EFI_UNSUPPORTED; } DEBUG ((DEBUG_INFO, "Setting Tpm Active Interface Type %d\n", TpmInterfaceType)); return EFI_SUCCESS; } /** This function is used to get the TPM service partition id. @param[out] PartitionId - Supplies the pointer to the TPM service partition id. @retval EFI_SUCCESS The TPM command was successfully sent to the TPM and the response was copied to the Output buffer. @retval EFI_INVALID_PARAMETER The TPM command buffer is NULL or the TPM command buffer size is 0. @retval EFI_DEVICE_ERROR An error occurred in communication with the TPM. **/ EFI_STATUS EFIAPI GetTpmServicePartitionId ( OUT UINT16 *PartitionId ) { return FfaTpm2GetServicePartitionId (PartitionId); }