Home | History | Annotate | Download | only in Tcg2Config
      1 /** @file
      2   Header file for NV data structure definition.
      3 
      4 Copyright (c) 2015 - 2016, 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 #define KEY_TPM_DEVICE_INTERFACE                       0x2008
     44 
     45 #define TPM_DEVICE_NULL           0
     46 #define TPM_DEVICE_1_2            1
     47 #define TPM_DEVICE_2_0_DTPM       2
     48 #define TPM_DEVICE_MIN            TPM_DEVICE_1_2
     49 #define TPM_DEVICE_MAX            TPM_DEVICE_2_0_DTPM
     50 #define TPM_DEVICE_DEFAULT        TPM_DEVICE_1_2
     51 
     52 #define TPM_DEVICE_INTERFACE_TIS       0
     53 #define TPM_DEVICE_INTERFACE_PTP_FIFO  1
     54 #define TPM_DEVICE_INTERFACE_PTP_CRB   2
     55 #define TPM_DEVICE_INTERFACE_MAX       TPM_DEVICE_INTERFACE_PTP_FIFO
     56 #define TPM_DEVICE_INTERFACE_DEFAULT   TPM_DEVICE_INTERFACE_PTP_CRB
     57 
     58 #define TCG2_PROTOCOL_VERSION_DEFAULT        0x0001
     59 #define EFI_TCG2_EVENT_LOG_FORMAT_DEFAULT    EFI_TCG2_EVENT_LOG_FORMAT_TCG_1_2
     60 
     61 //
     62 // Nv Data structure referenced by IFR, TPM device user desired
     63 //
     64 typedef struct {
     65   UINT8   TpmDevice;
     66 } TCG2_CONFIGURATION;
     67 
     68 typedef struct {
     69   BOOLEAN  Sha1Supported;
     70   BOOLEAN  Sha256Supported;
     71   BOOLEAN  Sha384Supported;
     72   BOOLEAN  Sha512Supported;
     73   BOOLEAN  Sm3Supported;
     74   UINT8    TpmDeviceInterfaceAttempt;
     75   BOOLEAN  TpmDeviceInterfacePtpFifoSupported;
     76   BOOLEAN  TpmDeviceInterfacePtpCrbSupported;
     77 } TCG2_CONFIGURATION_INFO;
     78 
     79 //
     80 // Variable saved for S3, TPM detected, only valid in S3 path.
     81 // This variable is ReadOnly.
     82 //
     83 typedef struct {
     84   UINT8   TpmDeviceDetected;
     85 } TCG2_DEVICE_DETECTION;
     86 
     87 #define TCG2_STORAGE_NAME           L"TCG2_CONFIGURATION"
     88 #define TCG2_STORAGE_INFO_NAME      L"TCG2_CONFIGURATION_INFO"
     89 #define TCG2_DEVICE_DETECTION_NAME  L"TCG2_DEVICE_DETECTION"
     90 
     91 #define TPM_INSTANCE_ID_LIST  { \
     92   {TPM_DEVICE_INTERFACE_NONE,           TPM_DEVICE_NULL},      \
     93   {TPM_DEVICE_INTERFACE_TPM12,          TPM_DEVICE_1_2},       \
     94   {TPM_DEVICE_INTERFACE_TPM20_DTPM,     TPM_DEVICE_2_0_DTPM},  \
     95 }
     96 
     97 //
     98 // BUGBUG: In order to pass VfrCompiler, we have to redefine GUID here.
     99 //
    100 #ifndef __BASE_H__
    101 typedef struct {
    102   UINT32  Data1;
    103   UINT16  Data2;
    104   UINT16  Data3;
    105   UINT8   Data4[8];
    106 } GUID;
    107 #endif
    108 
    109 typedef struct {
    110   GUID       TpmInstanceGuid;
    111   UINT8      TpmDevice;
    112 } TPM_INSTANCE_ID;
    113 
    114 #endif
    115