summaryrefslogtreecommitdiff
path: root/ReferenceCode/Haswell/Include/TisPc.h
blob: e11434b199afbdb3414d4538def57daee023c70a (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
/**
  This file contains an 'Intel Peripheral Driver' and uniquely
  identified as "Intel Reference Module" and is
  licensed for Intel CPUs and chipsets under the terms of your
  license agreement with Intel or your vendor.  This file may
  be modified by the user, subject to additional terms of the
  license agreement

@copyright
  Copyright (c)  1999 - 2012 Intel Corporation. All rights reserved
  This software and associated documentation (if any) is furnished
  under a license and may only be used or copied in accordance
  with the terms of the license. Except as permitted by such
  license, no part of this software or documentation may be
  reproduced, stored in a retrieval system, or transmitted in any
  form or by any means without the express written consent of
  Intel Corporation.

@file
  TisPc.h

@brief
  Definitions and function prototypes shared by all TPM components

**/
#ifndef _TIS_PC_H_
#define _TIS_PC_H_

///
/// Set structure alignment to 1-byte
///
#pragma pack(push)
#pragma pack(1)
///
/// TPM Base Address Definitions
///
#define TPM_BASE_ADDRESS  0xFED40000
///
/// Register set map as specified in TIS Chapter 10
///
typedef struct tdTIS_PC_REGISTERS {
  INT8    access;               ///< 0
  UINT8   reserved1[7];         ///< 1
  UINT32  intEnable;            ///< 8
  UINT8   intVector;            ///< 0ch
  UINT8   reserved2[3];         ///< 0dh
  UINT32  intSts;               ///< 10h
  UINT32  intfCapability;       ///< 14h
  INT8    status;               ///< 18h
  UINT16  burstCount;           ///< 19h
  UINT8   reserved3[9];
  UINT32  dataFifo;             ///< 24
  UINT8   reserved4[0xed8];     ///< 28h
  UINT16  vid;                  ///< 0f00h
  UINT16  did;                  ///< 0f02h
  UINT8   rid;                  ///< 0f04h
  UINT8   tcgDefined[0x7b];     ///< 0f05h
  UINT32  legacyAddress1;       ///< 0f80h
  UINT32  legacyAddress1Ex;     ///< 0f84h
  UINT32  legacyAddress2;       ///< 0f88h
  UINT32  legacyAddress2Ex;     ///< 0f8ch
  UINT8   vendorDefined[0x70];  ///< 0f90h
} TIS_PC_REGISTERS;

///
/// Define pointer types used to access TIS registers on PC
///
typedef VOLATILE TIS_PC_REGISTERS *TIS_PC_REGISTERS_PTR;

#pragma pack(pop)
#endif