/** @file TPM2 ACPI table definition. Copyright (c) 2013 - 2019, Intel Corporation. All rights reserved.
Copyright (c) 2021, Ampere Computing LLC. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _TPM2_ACPI_H_ #define _TPM2_ACPI_H_ #include #pragma pack (1) #define EFI_TPM2_ACPI_TABLE_REVISION_3 3 #define EFI_TPM2_ACPI_TABLE_REVISION_4 4 #define EFI_TPM2_ACPI_TABLE_REVISION EFI_TPM2_ACPI_TABLE_REVISION_4 typedef struct { EFI_ACPI_DESCRIPTION_HEADER Header; // Flags field is replaced in version 4 and above // BIT0~15: PlatformClass This field is only valid for version 4 and above // BIT16~31: Reserved UINT32 Flags; UINT64 AddressOfControlArea; UINT32 StartMethod; //UINT8 PlatformSpecificParameters[]; // size up to 12 //UINT32 Laml; // Optional //UINT64 Lasa; // Optional } EFI_TPM2_ACPI_TABLE; #define EFI_TPM2_ACPI_TABLE_START_METHOD_ACPI 2 #define EFI_TPM2_ACPI_TABLE_START_METHOD_TIS 6 #define EFI_TPM2_ACPI_TABLE_START_METHOD_COMMAND_RESPONSE_BUFFER_INTERFACE 7 #define EFI_TPM2_ACPI_TABLE_START_METHOD_COMMAND_RESPONSE_BUFFER_INTERFACE_WITH_ACPI 8 #define EFI_TPM2_ACPI_TABLE_START_METHOD_COMMAND_RESPONSE_BUFFER_INTERFACE_WITH_SMC 11 typedef struct { UINT32 Reserved; UINT32 Error; UINT32 Cancel; UINT32 Start; UINT64 InterruptControl; UINT32 CommandSize; UINT64 Command; UINT32 ResponseSize; UINT64 Response; } EFI_TPM2_ACPI_CONTROL_AREA; // // Start Method Specific Parameters for ARM SMC Start Method (11) // Refer to Table 9: Start Method Specific Parameters for ARM SMC // typedef struct { UINT32 Interrupt; UINT8 Flags; UINT8 OperationFlags; UINT8 Reserved[2]; UINT32 SmcFunctionId; } EFI_TPM2_ACPI_START_METHOD_SPECIFIC_PARAMETERS_ARM_SMC; #pragma pack () #endif