1 /** @file 2 TPM2 ACPI table definition. 3 4 Copyright (c) 2013 - 2019, Intel Corporation. All rights reserved. <BR> 5 SPDX-License-Identifier: BSD-2-Clause-Patent 6 7 **/ 8 9 #ifndef _TPM2_ACPI_H_ 10 #define _TPM2_ACPI_H_ 11 12 #include <IndustryStandard/Acpi.h> 13 14 #pragma pack (1) 15 16 #define EFI_TPM2_ACPI_TABLE_REVISION_3 3 17 #define EFI_TPM2_ACPI_TABLE_REVISION_4 4 18 #define EFI_TPM2_ACPI_TABLE_REVISION EFI_TPM2_ACPI_TABLE_REVISION_4 19 20 typedef struct { 21 EFI_ACPI_DESCRIPTION_HEADER Header; 22 // Flags field is replaced in version 4 and above 23 // BIT0~15: PlatformClass This field is only valid for version 4 and above 24 // BIT16~31: Reserved 25 UINT32 Flags; 26 UINT64 AddressOfControlArea; 27 UINT32 StartMethod; 28 //UINT8 PlatformSpecificParameters[]; // size up to 12 29 //UINT32 Laml; // Optional 30 //UINT64 Lasa; // Optional 31 } EFI_TPM2_ACPI_TABLE; 32 33 #define EFI_TPM2_ACPI_TABLE_START_METHOD_ACPI 2 34 #define EFI_TPM2_ACPI_TABLE_START_METHOD_TIS 6 35 #define EFI_TPM2_ACPI_TABLE_START_METHOD_COMMAND_RESPONSE_BUFFER_INTERFACE 7 36 #define EFI_TPM2_ACPI_TABLE_START_METHOD_COMMAND_RESPONSE_BUFFER_INTERFACE_WITH_ACPI 8 37 #define EFI_TPM2_ACPI_TABLE_START_METHOD_COMMAND_RESPONSE_BUFFER_INTERFACE_WITH_SMC 11 38 39 typedef struct { 40 UINT32 Reserved; 41 UINT32 Error; 42 UINT32 Cancel; 43 UINT32 Start; 44 UINT64 InterruptControl; 45 UINT32 CommandSize; 46 UINT64 Command; 47 UINT32 ResponseSize; 48 UINT64 Response; 49 } EFI_TPM2_ACPI_CONTROL_AREA; 50 51 #pragma pack () 52 53 #endif 54