XenevaOS
Loading...
Searching...
No Matches
XenevaOS
Boot
include
IndustryStandard
TpmTis.h
Go to the documentation of this file.
1
16
#ifndef _TPM_TIS_H_
17
#define _TPM_TIS_H_
18
19
//
20
// Set structure alignment to 1-byte
21
//
22
#pragma pack (1)
23
24
//
25
// Register set map as specified in TIS specification Chapter 10
26
//
27
typedef
struct
{
31
UINT8
Access
;
// 0
32
UINT8
Reserved1
[7];
// 1
36
UINT32
IntEnable
;
// 8
40
UINT8
IntVector
;
// 0ch
41
UINT8
Reserved2[3];
// 0dh
45
UINT32
IntSts
;
// 10h
49
UINT32
IntfCapability
;
// 14h
53
UINT8
Status
;
// 18h
57
UINT16
BurstCount
;
// 19h
58
UINT8
Reserved3[9];
62
UINT32
DataFifo
;
// 24h
63
UINT8
Reserved4[0xed8];
// 28h
67
UINT16
Vid
;
// 0f00h
71
UINT16
Did
;
// 0f02h
75
UINT8
Rid
;
// 0f04h
76
UINT8
Reserved
[0x7b];
// 0f05h
80
UINT32
LegacyAddress1
;
// 0f80h
84
UINT32
LegacyAddress1Ex
;
// 0f84h
88
UINT32
LegacyAddress2
;
// 0f88h
92
UINT32
LegacyAddress2Ex
;
// 0f8ch
96
UINT8
VendorDefined[0x70];
// 0f90h
97
}
TIS_PC_REGISTERS
;
98
99
//
100
// Restore original structure alignment
101
//
102
#pragma pack ()
103
104
//
105
// Define pointer types used to access TIS registers on PC
106
//
107
typedef
TIS_PC_REGISTERS
*
TIS_PC_REGISTERS_PTR
;
108
109
//
110
// Define bits of ACCESS and STATUS registers
111
//
112
116
#define TIS_PC_VALID BIT7
120
#define TIS_PC_ACC_ACTIVE BIT5
125
#define TIS_PC_ACC_SEIZED BIT4
131
#define TIS_PC_ACC_SEIZE BIT3
135
#define TIS_PC_ACC_PENDIND BIT2
139
#define TIS_PC_ACC_RQUUSE BIT1
143
#define TIS_PC_ACC_ESTABLISH BIT0
144
148
#define TIS_PC_STS_CANCEL BIT24
152
#define TIS_PC_STS_VALID BIT7
157
#define TIS_PC_STS_READY BIT6
161
#define TIS_PC_STS_GO BIT5
165
#define TIS_PC_STS_DATA BIT4
169
#define TIS_PC_STS_EXPECT BIT3
173
#define TIS_PC_STS_SELFTEST_DONE BIT2
177
#define TIS_PC_STS_RETRY BIT1
178
179
//
180
// Default TimeOut value
181
//
182
#define TIS_TIMEOUT_A (750 * 1000)
// 750ms
183
#define TIS_TIMEOUT_B (2000 * 1000)
// 2s
184
#define TIS_TIMEOUT_C (750 * 1000)
// 750ms
185
#define TIS_TIMEOUT_D (750 * 1000)
// 750ms
186
187
#endif
UINT32
unsigned int UINT32
Definition
ProcessorBind.h:102
Reserved
UINT8 Reserved
Definition
Acpi30.h:40
Reserved1
uint32_t Reserved1
Definition
pe.h:18
TIS_PC_REGISTERS_PTR
TIS_PC_REGISTERS * TIS_PC_REGISTERS_PTR
Definition
TpmTis.h:107
UINT16
unsigned short UINT16
Definition
actypes.h:237
UINT8
unsigned char UINT8
Definition
actypes.h:236
TIS_PC_REGISTERS
Definition
TpmTis.h:27
TIS_PC_REGISTERS::Vid
UINT16 Vid
Definition
TpmTis.h:67
TIS_PC_REGISTERS::Did
UINT16 Did
Definition
TpmTis.h:71
TIS_PC_REGISTERS::Access
UINT8 Access
Definition
TpmTis.h:31
TIS_PC_REGISTERS::IntfCapability
UINT32 IntfCapability
Definition
TpmTis.h:49
TIS_PC_REGISTERS::LegacyAddress2Ex
UINT32 LegacyAddress2Ex
Definition
TpmTis.h:92
TIS_PC_REGISTERS::Status
UINT8 Status
Definition
TpmTis.h:53
TIS_PC_REGISTERS::IntVector
UINT8 IntVector
Definition
TpmTis.h:40
TIS_PC_REGISTERS::DataFifo
UINT32 DataFifo
Definition
TpmTis.h:62
TIS_PC_REGISTERS::IntEnable
UINT32 IntEnable
Definition
TpmTis.h:36
TIS_PC_REGISTERS::BurstCount
UINT16 BurstCount
Definition
TpmTis.h:57
TIS_PC_REGISTERS::LegacyAddress1
UINT32 LegacyAddress1
Definition
TpmTis.h:80
TIS_PC_REGISTERS::Rid
UINT8 Rid
Definition
TpmTis.h:75
TIS_PC_REGISTERS::IntSts
UINT32 IntSts
Definition
TpmTis.h:45
TIS_PC_REGISTERS::LegacyAddress1Ex
UINT32 LegacyAddress1Ex
Definition
TpmTis.h:84
TIS_PC_REGISTERS::LegacyAddress2
UINT32 LegacyAddress2
Definition
TpmTis.h:88
Generated by
1.9.8