]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/IndustryStandard/Tpm2Acpi.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / Tpm2Acpi.h
index 73ef56124527f83d046f4a8f56d9f01375508ebb..e7d14f9d2e5c26643b97734e3bf9ceb585b08e72 100644 (file)
@@ -1,14 +1,9 @@
 /** @file\r
   TPM2 ACPI table definition.\r
 \r
-Copyright (c) 2013, Intel Corporation. All rights reserved. <BR>\r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution.  The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2013 - 2019, Intel Corporation. All rights reserved. <BR>\r
+Copyright (c) 2021, Ampere Computing LLC. All rights reserved. <BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
 **/\r
 \r
@@ -19,33 +14,53 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 #pragma pack (1)\r
 \r
-#define EFI_TPM2_ACPI_TABLE_REVISION  3\r
+#define EFI_TPM2_ACPI_TABLE_REVISION_3  3\r
+#define EFI_TPM2_ACPI_TABLE_REVISION_4  4\r
+#define EFI_TPM2_ACPI_TABLE_REVISION    EFI_TPM2_ACPI_TABLE_REVISION_4\r
 \r
 typedef struct {\r
-  EFI_ACPI_DESCRIPTION_HEADER Header;\r
-  UINT32                      Flags;\r
-  UINT64                      AddressOfControlArea;\r
-  UINT32                      StartMethod;\r
-//UINT8                       PlatformSpecificParameters[];\r
+  EFI_ACPI_DESCRIPTION_HEADER    Header;\r
+  // Flags field is replaced in version 4 and above\r
+  //    BIT0~15:  PlatformClass      This field is only valid for version 4 and above\r
+  //    BIT16~31: Reserved\r
+  UINT32                         Flags;\r
+  UINT64                         AddressOfControlArea;\r
+  UINT32                         StartMethod;\r
+  // UINT8                       PlatformSpecificParameters[];  // size up to 12\r
+  // UINT32                      Laml;                          // Optional\r
+  // UINT64                      Lasa;                          // Optional\r
 } EFI_TPM2_ACPI_TABLE;\r
 \r
-#define EFI_TPM2_ACPI_TABLE_START_METHOD_ACPI                                          2\r
-#define EFI_TPM2_ACPI_TABLE_START_METHOD_TIS                                           6\r
-#define EFI_TPM2_ACPI_TABLE_START_METHOD_COMMAND_RESPONSE_BUFFER_INTERFACE             7\r
-#define EFI_TPM2_ACPI_TABLE_START_METHOD_COMMAND_RESPONSE_BUFFER_INTERFACE_WITH_ACPI   8\r
+#define EFI_TPM2_ACPI_TABLE_START_METHOD_ACPI                                         2\r
+#define EFI_TPM2_ACPI_TABLE_START_METHOD_TIS                                          6\r
+#define EFI_TPM2_ACPI_TABLE_START_METHOD_COMMAND_RESPONSE_BUFFER_INTERFACE            7\r
+#define EFI_TPM2_ACPI_TABLE_START_METHOD_COMMAND_RESPONSE_BUFFER_INTERFACE_WITH_ACPI  8\r
+#define EFI_TPM2_ACPI_TABLE_START_METHOD_COMMAND_RESPONSE_BUFFER_INTERFACE_WITH_SMC   11\r
 \r
 typedef struct {\r
-  UINT32   Reserved;\r
-  UINT32   Error;\r
-  UINT32   Cancel;\r
-  UINT32   Start;\r
-  UINT64   InterruptControl;\r
-  UINT32   CommandSize;\r
-  UINT64   Command;\r
-  UINT32   ResponseSize;\r
-  UINT64   Response;\r
+  UINT32    Reserved;\r
+  UINT32    Error;\r
+  UINT32    Cancel;\r
+  UINT32    Start;\r
+  UINT64    InterruptControl;\r
+  UINT32    CommandSize;\r
+  UINT64    Command;\r
+  UINT32    ResponseSize;\r
+  UINT64    Response;\r
 } EFI_TPM2_ACPI_CONTROL_AREA;\r
 \r
+//\r
+// Start Method Specific Parameters for ARM SMC Start Method (11)\r
+// Refer to Table 9: Start Method Specific Parameters for ARM SMC\r
+//\r
+typedef struct {\r
+  UINT32    Interrupt;\r
+  UINT8     Flags;\r
+  UINT8     OperationFlags;\r
+  UINT8     Reserved[2];\r
+  UINT32    SmcFunctionId;\r
+} EFI_TPM2_ACPI_START_METHOD_SPECIFIC_PARAMETERS_ARM_SMC;\r
+\r
 #pragma pack ()\r
 \r
 #endif\r