]> git.proxmox.com Git - mirror_edk2.git/blame - SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigNvData.h
SecurityPkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / SecurityPkg / Tcg / Tcg2Config / Tcg2ConfigNvData.h
CommitLineData
1abfa4ce
JY
1/** @file\r
2 Header file for NV data structure definition.\r
3\r
b3548d32 4Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>\r
289b714b 5SPDX-License-Identifier: BSD-2-Clause-Patent\r
1abfa4ce
JY
6\r
7**/\r
8\r
9#ifndef __TCG2_CONFIG_NV_DATA_H__\r
10#define __TCG2_CONFIG_NV_DATA_H__\r
11\r
12#include <Guid/HiiPlatformSetupFormset.h>\r
13#include <Guid/Tcg2ConfigHii.h>\r
14#include <IndustryStandard/TcgPhysicalPresence.h>\r
15\r
16//\r
17// BUGBUG: In order to pass VfrCompiler, we have to redefine below MACRO, which already in <Protocol/Tcg2Protocol.h>.\r
18//\r
19#ifndef __TCG2_H__\r
20#define EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2 0x00000001\r
21#define EFI_TCG2_EVENT_LOG_FORMAT_TCG_2 0x00000002\r
22#endif\r
23#define EFI_TCG2_EVENT_LOG_FORMAT_ALL (EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2 | EFI_TCG2_EVENT_LOG_FORMAT_TCG_2)\r
24\r
25#define TCG2_CONFIGURATION_VARSTORE_ID 0x0001\r
fca42289 26#define TCG2_CONFIGURATION_INFO_VARSTORE_ID 0x0002\r
dd6d0a52 27#define TCG2_VERSION_VARSTORE_ID 0x0003\r
1abfa4ce
JY
28#define TCG2_CONFIGURATION_FORM_ID 0x0001\r
29\r
30#define KEY_TPM_DEVICE 0x2000\r
31#define KEY_TPM2_OPERATION 0x2001\r
32#define KEY_TPM2_OPERATION_PARAMETER 0x2002\r
33#define KEY_TPM2_PCR_BANKS_REQUEST_0 0x2003\r
34#define KEY_TPM2_PCR_BANKS_REQUEST_1 0x2004\r
35#define KEY_TPM2_PCR_BANKS_REQUEST_2 0x2005\r
36#define KEY_TPM2_PCR_BANKS_REQUEST_3 0x2006\r
37#define KEY_TPM2_PCR_BANKS_REQUEST_4 0x2007\r
518b6f65 38#define KEY_TPM_DEVICE_INTERFACE 0x2008\r
dd6d0a52 39#define KEY_TCG2_PPI_VERSION 0x2009\r
fca42289 40#define KEY_TPM2_ACPI_REVISION 0x200A\r
1abfa4ce
JY
41\r
42#define TPM_DEVICE_NULL 0\r
43#define TPM_DEVICE_1_2 1\r
44#define TPM_DEVICE_2_0_DTPM 2\r
45#define TPM_DEVICE_MIN TPM_DEVICE_1_2\r
46#define TPM_DEVICE_MAX TPM_DEVICE_2_0_DTPM\r
47#define TPM_DEVICE_DEFAULT TPM_DEVICE_1_2\r
48\r
fca42289
ZC
49#define TPM2_ACPI_REVISION_3 3\r
50#define TPM2_ACPI_REVISION_4 4\r
51\r
518b6f65
JY
52#define TPM_DEVICE_INTERFACE_TIS 0\r
53#define TPM_DEVICE_INTERFACE_PTP_FIFO 1\r
54#define TPM_DEVICE_INTERFACE_PTP_CRB 2\r
55#define TPM_DEVICE_INTERFACE_MAX TPM_DEVICE_INTERFACE_PTP_FIFO\r
56#define TPM_DEVICE_INTERFACE_DEFAULT TPM_DEVICE_INTERFACE_PTP_CRB\r
57\r
1abfa4ce
JY
58#define TCG2_PROTOCOL_VERSION_DEFAULT 0x0001\r
59#define EFI_TCG2_EVENT_LOG_FORMAT_DEFAULT EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2\r
60\r
dd6d0a52 61#define TCG2_PPI_VERSION_1_2 0x322E31 // "1.2"\r
b3548d32 62#define TCG2_PPI_VERSION_1_3 0x332E31 // "1.3"\r
dd6d0a52 63\r
1abfa4ce
JY
64//\r
65// Nv Data structure referenced by IFR, TPM device user desired\r
66//\r
67typedef struct {\r
68 UINT8 TpmDevice;\r
69} TCG2_CONFIGURATION;\r
70\r
dd6d0a52
SZ
71typedef struct {\r
72 UINT64 PpiVersion;\r
fca42289 73 UINT8 Tpm2AcpiTableRev;\r
dd6d0a52
SZ
74} TCG2_VERSION;\r
75\r
c41eeb44 76typedef struct {\r
518b6f65
JY
77 BOOLEAN Sha1Supported;\r
78 BOOLEAN Sha256Supported;\r
79 BOOLEAN Sha384Supported;\r
80 BOOLEAN Sha512Supported;\r
81 BOOLEAN Sm3Supported;\r
82 UINT8 TpmDeviceInterfaceAttempt;\r
83 BOOLEAN TpmDeviceInterfacePtpFifoSupported;\r
84 BOOLEAN TpmDeviceInterfacePtpCrbSupported;\r
c41eeb44
JY
85} TCG2_CONFIGURATION_INFO;\r
86\r
1abfa4ce
JY
87//\r
88// Variable saved for S3, TPM detected, only valid in S3 path.\r
89// This variable is ReadOnly.\r
90//\r
91typedef struct {\r
92 UINT8 TpmDeviceDetected;\r
93} TCG2_DEVICE_DETECTION;\r
94\r
c41eeb44
JY
95#define TCG2_STORAGE_NAME L"TCG2_CONFIGURATION"\r
96#define TCG2_STORAGE_INFO_NAME L"TCG2_CONFIGURATION_INFO"\r
1abfa4ce 97#define TCG2_DEVICE_DETECTION_NAME L"TCG2_DEVICE_DETECTION"\r
dd6d0a52 98#define TCG2_VERSION_NAME L"TCG2_VERSION"\r
1abfa4ce
JY
99\r
100#define TPM_INSTANCE_ID_LIST { \\r
101 {TPM_DEVICE_INTERFACE_NONE, TPM_DEVICE_NULL}, \\r
102 {TPM_DEVICE_INTERFACE_TPM12, TPM_DEVICE_1_2}, \\r
103 {TPM_DEVICE_INTERFACE_TPM20_DTPM, TPM_DEVICE_2_0_DTPM}, \\r
104}\r
105\r
106//\r
107// BUGBUG: In order to pass VfrCompiler, we have to redefine GUID here.\r
108//\r
109#ifndef __BASE_H__\r
110typedef struct {\r
111 UINT32 Data1;\r
112 UINT16 Data2;\r
113 UINT16 Data3;\r
114 UINT8 Data4[8];\r
115} GUID;\r
116#endif\r
117\r
118typedef struct {\r
119 GUID TpmInstanceGuid;\r
120 UINT8 TpmDevice;\r
121} TPM_INSTANCE_ID;\r
122\r
123#endif\r