summaryrefslogtreecommitdiff
path: root/Core/EM/TCG2/TisLib/TcmPc.h
blob: 9431fa33406623e353577cedfefd377623d0d443 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
//**********************************************************************
//**********************************************************************
//**                                                                  **
//**        (C)Copyright 1985-2010, American Megatrends, Inc.         **
//**                                                                  **
//**                       All Rights Reserved.                       **
//**                                                                  **
//**        5555 Oakbrook Pkwy, Suite 200, Norcross, GA 30093         **
//**                                                                  **
//**                       Phone: (770)-246-8600                      **
//**                                                                  **
//**********************************************************************
//*************************************************************************
// $Header: /Alaska/SOURCE/Modules/TCG2/Libraries/TisLib/TcmPc.h 1     4/21/14 2:15p Fredericko $
//
// $Revision: 1 $
//
// $Date: 4/21/14 2:15p $
//*************************************************************************
// Revision History
// ----------------
// $Log: /Alaska/SOURCE/Modules/TCG2/Libraries/TisLib/TcmPc.h $
// 
// 1     4/21/14 2:15p Fredericko
// 
// 1     10/08/13 11:58a Fredericko
// Initial Check-In for Tpm-Next module
// 
// 1     7/10/13 5:50p Fredericko
// [TAG]  		EIP120969
// [Category]  	New Feature
// [Description]  	TCG (TPM20)
// [Files]  		TisLib.cif
// TisLib.mak
// TcgTpm12.h
// TpmLib.h
// TcgCommon.h
// ZTEICTcmOrdinals.h
// TpmLib.c
// TcgCommon.c
// TisLib.sdl
// sha1.h
// INTTcgAcpi.h
// TcgPc.h
// TcmPc.h
// TcgEfiTpm.h
// TcgEFI12.h
// 
// 2     3/29/11 12:27p Fredericko
// [TAG]        EIP 54642
// [Category] Improvement
// [Description] 1. Checkin Files related to TCG function override 
// 2. Include TCM and TPM auto detection
// [Files] Affects all TCG files
//
//
//*************************************************************************
//<AMI_FHDR_START>
//
// Name:  TcmPc.h
//
// Description:
//       Header file for Tcm structures
//
//<AMI_FHDR_END>
//*************************************************************************
#ifndef _TCMPC_H_
#define _TCMPC_H_
#include "TcgEfi12.h"


#pragma pack (push)
#pragma pack (1)



typedef struct tdTCM_PCR_EVENT {
  UINT32            PCRIndex;  // PCRIndex event extended to
  UINT32            EventType; // TCG EFI event type
  TCM_DIGEST        Digest;    // Value extended into PCRIndex
  UINT32            EventSize; // Size of the event data
  UINT8             Event[1];  // The event data
} TCM_PCR_EVENT;


struct _EFI_TCM_EV_S_CRTM_VERSION {
  EFI_GUID                          VersionGuid;
};


struct _EFI_TCM_EV_POST_CODE {
  EFI_PHYSICAL_ADDRESS              PostCodeAddress;
  UINT64                            PostCodeLength;
};


struct _EFI_TCM_EV_TAG_OPTION_ROM_EXECUTE
{
    UINT16     Reserved;
    UINT16     PFA;
    TCM_DIGEST Hash;
};


struct _EFI_TCM_EV_CPU_MICROCODE
{
    EFI_PHYSICAL_ADDRESS MicrocodeEntrypoint;
};


union _EFI_TCM_EV_TAG_EVENT_DATA
{
    struct _EFI_TCM_EV_TAG_OPTION_ROM_EXECUTE
    OptionRomExecute;
};


struct _EFI_TCM_EV_TAG
{
    UINT32 EventID;
    UINT32 EventSize;
    union _EFI_TCM_EV_TAG_EVENT_DATA EventData;
};


typedef struct _EFI_TCM_PCR_EVENT_HEADER
{
    TPM_PCRINDEX PCRIndex;
    UINT32       EventType;
    TCM_DIGEST   Digest;
    UINT32       EventDataSize;
} EFI_TCM_PCR_EVENT_HEADER;


typedef union _EFI_TCM_PCR_EVENT_DATA
{
    struct _EFI_TCM_EV_S_CRTM_VERSION SCrtmVersion;
    struct _EFI_TCM_EV_POST_CODE PostCode;
    struct _EFI_TCM_EV_TAG Tagged;
    struct _EFI_TCM_EV_CPU_MICROCODE Mcu;
} EFI_TCM_PCR_EVENT_DATA;



typedef struct _EFI_TCM_PCR_EVENT
{
    EFI_TCM_PCR_EVENT_HEADER Header;
    EFI_TCM_PCR_EVENT_DATA   Event;
} EFI_TCM_PCR_EVENT;

#pragma pack (pop)

#endif  // _TPMPC_H_