diff options
Diffstat (limited to 'Core/EM/TCG2/TpmClearOnRollback/TpmClearOnRollbackWrapperLib.h')
-rw-r--r-- | Core/EM/TCG2/TpmClearOnRollback/TpmClearOnRollbackWrapperLib.h | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/Core/EM/TCG2/TpmClearOnRollback/TpmClearOnRollbackWrapperLib.h b/Core/EM/TCG2/TpmClearOnRollback/TpmClearOnRollbackWrapperLib.h new file mode 100644 index 0000000..5c32d15 --- /dev/null +++ b/Core/EM/TCG2/TpmClearOnRollback/TpmClearOnRollbackWrapperLib.h @@ -0,0 +1,198 @@ +//************************************************************************* +//************************************************************************* +//** ** +//** (C)Copyright 1985-2011, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//************************************************************************* +//************************************************************************* +//********************************************************************** +// $Header: /Alaska/SOURCE/Modules/TCG2/Common/TpmClearOnRollback/TpmClearOnRollbackWrapperLib.h 1 4/21/14 2:18p Fredericko $ +// +// $Revision: 1 $ +// +// $Date: 4/21/14 2:18p $ +//********************************************************************** +// Revision History +// ---------------- +// $Log: /Alaska/SOURCE/Modules/TCG2/Common/TpmClearOnRollback/TpmClearOnRollbackWrapperLib.h $ +// +// 1 4/21/14 2:18p Fredericko +// +// 1 10/08/13 12:06p Fredericko +// Initial Check-In for Tpm-Next module +// +// 1 7/10/13 5:57p Fredericko +// [TAG] EIP120969 +// [Category] New Feature +// [Description] TCG (TPM20) +// +// +//********************************************************************** +//<AMI_FHDR_START> +//---------------------------------------------------------------------------- +// +// Name: +// +// Description: +// +//---------------------------------------------------------------------------- +//<AMI_FHDR_END> +#ifndef _TPM_CLEAR_ON_ROLLBACK_WRAPPER_H +#define _TPM_CLEAR_ON_ROLLBACK_WRAPPER_H + +#include <AmiDxeLib.h> +#include <Protocol\TcgService.h> +#include <TCGMisc.h> +#include <Protocol\SmmBase2.h> +#include <Protocol\AmiTpmClearOnRollbackProtocol.h> +#include <PPI/FwVersion.h> +#include <Hob.h> +#include <Token.h> +#include <AmiHobs.h> + +#define FID_FFS_FILE_NAME_GUID \ + { 0x3fd1d3a2, 0x99f7, 0x420b, 0xbc, 0x69, 0x8b, 0xb1, 0xd4, 0x92, 0xa3, 0x32 } + +#define FID_FFS_FILE_SECTION_GUID \ + { 0x2EBE0275, 0x6458, 0x4AF9, 0x91, 0xED, 0xD3, 0xF4, 0xED, 0xB1, 0x00, 0xAA } + +#define TPM_BASE_ADDRESS 0xfed40000 +#define BASE 0x0 +#define INVALID_POSTINIT ((TPM_RESULT) (BASE + 38)) +#define DISABLED ((TPM_RESULT) (BASE + 7)) +#define DEACTIVATED ((TPM_RESULT) (BASE + 6)) + +#define TPM_H2NS( x ) \ + (((UINT16)(x) << 8) | ((UINT16)(x) >> 8)) +#define TPM_H2NL( x ) \ + (UINT32)((((UINT32)(x)) >> 24) \ + | (((x) >> 8) & 0xff00) \ + | ((x) << 24) \ + | (((x) & 0xff00) << 8)) + +#define TPM_N2HS( x ) TPM_H2NS( x ) +#define TPM_N2HL( x ) TPM_H2NL( x ) + +#pragma pack(1) + +typedef struct _TPM_1_2_REGISTERS { + UINT8 Access; // 0 + UINT8 Reserved1[7]; // 1 + UINT32 IntEnable; // 8 + UINT8 IntVector; // 0ch + UINT8 Reserved2[3]; // 0dh + UINT32 IntSts; // 10h + UINT32 IntfCapability; // 14h + UINT8 Sts; // 18h + UINT16 BurstCount; // 19h + UINT8 Reserved3[9]; + UINT32 DataFifo; // 24h + 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 +} TPM_1_2_REGISTERS; + +typedef volatile TPM_1_2_REGISTERS *TPM_1_2_REGISTERS_PTR; + +typedef struct _TPM_TRANSMIT_BUFFER { + VOID *Buffer; + UINTN Size; +} TPM_TRANSMIT_BUFFER; + +typedef struct _TPM_1_2_CMD_HEADER +{ + TPM_TAG Tag; + UINT32 ParamSize; + TPM_COMMAND_CODE Ordinal; +} TPM_1_2_CMD_HEADER; + +typedef struct _TPM_1_2_RET_HEADER +{ + TPM_TAG Tag; + UINT32 ParamSize; + TPM_RESULT RetCode; +} TPM_1_2_RET_HEADER; + +typedef struct _TPM_1_2_CMD_STARTUP +{ + TPM_1_2_CMD_HEADER Header; + TPM_STARTUP_TYPE StartupType; +} TPM_1_2_CMD_STARTUP; + +typedef struct _PHYSICAL_PRESENCE_CMD{ + TPM_1_2_CMD_HEADER Hdr; + UINT16 Data; +} PHYSICAL_PRESENCE_CMD; + +typedef struct _DATA_CMD{ + TPM_1_2_CMD_HEADER Hdr; + UINT8 Data; +} DATA_CMD; + +#pragma pack() + +EFI_STATUS +__stdcall IsTpmPresent ( + IN TPM_1_2_REGISTERS_PTR TpmReg ); + +EFI_STATUS +__stdcall TisReleaseLocality ( + IN TPM_1_2_REGISTERS_PTR TpmReg ); + +EFI_STATUS +__stdcall TisRequestLocality ( + IN TPM_1_2_REGISTERS_PTR TpmReg ); + +EFI_STATUS +__stdcall TpmLibPassThrough ( + IN TPM_1_2_REGISTERS_PTR TpmReg, + IN UINTN NoInputBuffers, + IN TPM_TRANSMIT_BUFFER *InputBuffers, + IN UINTN NoOutputBuffers, + IN OUT TPM_TRANSMIT_BUFFER *OutputBuffers ); + +BOOLEAN +__stdcall AutoSupportType (); + +EFI_STATUS TpmRecoveryGetFidFromFv( + OUT VOID *Fid +); + +EFI_STATUS TpmGetFidFromBuffer( + OUT VOID *Fid, + IN VOID *Buffer +); + +UINT8 ClearTpmBeforeFlash(); + +void +__stdcall +FixedDelay(UINT32 dCount); + +#endif +//************************************************************************* +//************************************************************************* +//** ** +//** (C)Copyright 1985-2011, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//************************************************************************* +//*************************************************************************
\ No newline at end of file |