Home | History | Annotate | Download | only in Tcg2Config
      1 /** @file
      2   Header file for NV data structure definition.
      3 
      4 Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
      5 This program and the accompanying materials
      6 are licensed and made available under the terms and conditions of the BSD License
      7 which accompanies this distribution.  The full text of the license may be found at
      8 http://opensource.org/licenses/bsd-license.php
      9 
     10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     12 
     13 **/
     14 
     15 #ifndef __TCG2_CONFIG_NV_DATA_H__
     16 #define __TCG2_CONFIG_NV_DATA_H__
     17 
     18 #include <Guid/HiiPlatformSetupFormset.h>
     19 #include <Guid/Tcg2ConfigHii.h>
     20 #include <IndustryStandard/TcgPhysicalPresence.h>
     21 
     22 //
     23 // BUGBUG: In order to pass VfrCompiler, we have to redefine below MACRO, which already in <Protocol/Tcg2Protocol.h>.
     24 //
     25 #ifndef __TCG2_H__
     26 #define EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2       0x00000001
     27 #define EFI_TCG2_EVENT_LOG_FORMAT_TCG_2         0x00000002
     28 #endif
     29 #define EFI_TCG2_EVENT_LOG_FORMAT_ALL           (EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2 | EFI_TCG2_EVENT_LOG_FORMAT_TCG_2)
     30 
     31 #define TCG2_CONFIGURATION_VARSTORE_ID  0x0001
     32 #define TCG2_CONFIGURATION_INFO_VARSTORE_ID  0x0002
     33 #define TCG2_CONFIGURATION_FORM_ID      0x0001
     34 
     35 #define KEY_TPM_DEVICE                                 0x2000
     36 #define KEY_TPM2_OPERATION                             0x2001
     37 #define KEY_TPM2_OPERATION_PARAMETER            0x2002
     38 #define KEY_TPM2_PCR_BANKS_REQUEST_0            0x2003
     39 #define KEY_TPM2_PCR_BANKS_REQUEST_1            0x2004
     40 #define KEY_TPM2_PCR_BANKS_REQUEST_2            0x2005
     41 #define KEY_TPM2_PCR_BANKS_REQUEST_3            0x2006
     42 #define KEY_TPM2_PCR_BANKS_REQUEST_4            0x2007
     43 
     44 #define TPM_DEVICE_NULL           0
     45 #define TPM_DEVICE_1_2            1
     46 #define TPM_DEVICE_2_0_DTPM       2
     47 #define TPM_DEVICE_MIN            TPM_DEVICE_1_2
     48 #define TPM_DEVICE_MAX            TPM_DEVICE_2_0_DTPM
     49 #define TPM_DEVICE_DEFAULT        TPM_DEVICE_1_2
     50 
     51 #define TCG2_PROTOCOL_VERSION_DEFAULT        0x0001
     52 #define EFI_TCG2_EVENT_LOG_FORMAT_DEFAULT    EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2
     53 
     54 //
     55 // Nv Data structure referenced by IFR, TPM device user desired
     56 //
     57 typedef struct {
     58   UINT8   TpmDevice;
     59 } TCG2_CONFIGURATION;
     60 
     61 typedef struct {
     62   UINT8  Sha1Supported;
     63   UINT8  Sha256Supported;
     64   UINT8  Sha384Supported;
     65   UINT8  Sha512Supported;
     66   UINT8  Sm3Supported;
     67 } TCG2_CONFIGURATION_INFO;
     68 
     69 //
     70 // Variable saved for S3, TPM detected, only valid in S3 path.
     71 // This variable is ReadOnly.
     72 //
     73 typedef struct {
     74   UINT8   TpmDeviceDetected;
     75 } TCG2_DEVICE_DETECTION;
     76 
     77 #define TCG2_STORAGE_NAME           L"TCG2_CONFIGURATION"
     78 #define TCG2_STORAGE_INFO_NAME      L"TCG2_CONFIGURATION_INFO"
     79 #define TCG2_DEVICE_DETECTION_NAME  L"TCG2_DEVICE_DETECTION"
     80 
     81 #define TPM_INSTANCE_ID_LIST  { \
     82   {TPM_DEVICE_INTERFACE_NONE,           TPM_DEVICE_NULL},      \
     83   {TPM_DEVICE_INTERFACE_TPM12,          TPM_DEVICE_1_2},       \
     84   {TPM_DEVICE_INTERFACE_TPM20_DTPM,     TPM_DEVICE_2_0_DTPM},  \
     85 }
     86 
     87 //
     88 // BUGBUG: In order to pass VfrCompiler, we have to redefine GUID here.
     89 //
     90 #ifndef __BASE_H__
     91 typedef struct {
     92   UINT32  Data1;
     93   UINT16  Data2;
     94   UINT16  Data3;
     95   UINT8   Data4[8];
     96 } GUID;
     97 #endif
     98 
     99 typedef struct {
    100   GUID       TpmInstanceGuid;
    101   UINT8      TpmDevice;
    102 } TPM_INSTANCE_ID;
    103 
    104 #endif
    105