diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /Board/EM/TCG2/Common/AmiTcgPlatformDxe.h | |
download | zprj-master.tar.xz |
Diffstat (limited to 'Board/EM/TCG2/Common/AmiTcgPlatformDxe.h')
-rw-r--r-- | Board/EM/TCG2/Common/AmiTcgPlatformDxe.h | 425 |
1 files changed, 425 insertions, 0 deletions
diff --git a/Board/EM/TCG2/Common/AmiTcgPlatformDxe.h b/Board/EM/TCG2/Common/AmiTcgPlatformDxe.h new file mode 100644 index 0000000..eb04d34 --- /dev/null +++ b/Board/EM/TCG2/Common/AmiTcgPlatformDxe.h @@ -0,0 +1,425 @@ +//********************************************************************** +//********************************************************************** +//** ** +//** (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/Common/AmiTcgPlatform/AmiTcgPlatformDxe/AmiTcgPlatformDxe.h 1 4/21/14 2:17p Fredericko $ +// +// $Revision: 1 $ +// +// $Date: 4/21/14 2:17p $ +//************************************************************************* +// Revision History +// ---------------- +// $Log: /Alaska/SOURCE/Modules/TCG2/Common/AmiTcgPlatform/AmiTcgPlatformDxe/AmiTcgPlatformDxe.h $ +// +// 1 4/21/14 2:17p Fredericko +// +// 1 10/08/13 12:04p Fredericko +// Initial Check-In for Tpm-Next module +// +// 2 10/03/13 2:19p Fredericko +// +// 1 7/10/13 5:55p Fredericko +// [TAG] EIP120969 +// [Category] New Feature +// [Description] TCG (TPM20) +// +// 11 1/20/12 9:20p Fredericko +// +// 10 12/30/11 5:06p Fredericko +// [TAG] EIP78141 +// [Category] New Feature +// [Description] Added hooks to override generic TPM platform hash +// functions. +// [Files] 1. AmiTcgPlatform.sdl +// 2. AmiTcgPlatformPei.h +// 3. AmiTcgPlatformPeiLib.c +// 4. AmiTcgPlatformPeiAfterMem.c +// 5. AmiTcgPlatformDxe.c +// 6. AmiTcgPlatformDxe.h +// +// 9 11/28/11 7:31p Fredericko +// [TAG] EIP63922 +// [Category] Improvement +// [Description] Support for Smbios label 30 and up. Callback on +// publishing of Smbios tables +// [Files] AmiTcgPlatformDxe.c +// +// 8 10/10/11 11:36a Fredericko +// [TAG] EIP70220 +// [Category] Improvement +// [Description] Remove dependency on CSM +// [Files] TcgLegacy.sdl +// AmiTcgPlatformDxe.c +// AmiTcgPlatformDxe.h +// xTcgDxe.c +// +// 7 10/10/11 12:12a Fredericko +// [TAG] EIP70220 +// [Category] Improvement +// [Description] Remove dependency on CSM +// [Files] TcgLegacy.sdl +// AmiTcgPlatformDxe.c +// AmiTcgPlatformDxe.h +// xTcgDxe.c +// +// 6 7/25/11 3:43a Fredericko +// [TAG] EIP65177 +// [Category] Spec Update +// [Severity] Minor +// [Description] Tcg Ppi Spec ver 1.2 update +// +// 5 4/28/11 6:34p Fredericko +// Removed VFR compile +// +// 4 4/26/11 1:54p Fredericko +// Added support for function level override of specific functions. GUID +// definitions added +// +// 3 4/06/11 10:40a Fredericko +// Core 4.6.5.0 build error changes +// +// 2 3/29/11 2: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: AmiTcgPlatformDxe.h +// +// Description: Header file for AmiTcgPlatformDxe +// +//<AMI_FHDR_END> +//************************************************************************* +#include <EFI.h> +#include "TcgPc.h" +#include <AmiLib.h> +#include <AmiDxeLib.h> +#include <TcgCommon.h> +#include <token.h> +#if SMBIOS_SUPPORT == 1 + #include <SmBios.h> +#endif +#include <TcgMisc.h> +#include <protocol\TcgService\TcgTcmService.h> +#include <protocol\TcgService\TcgService.h> +#include <Protocol\TpmDevice\TpmDevice.h> +#include <Include/Setup.h> +#include "Protocol/CpuIo.h" +#include "Protocol/FirmwareVolume.h" +#include "Protocol/DevicePath.h" + +#if ( defined(CSM_SUPPORT) && (CSM_SUPPORT != 0) ) +#include "Protocol/LegacyBios.h" +#endif + +#include "Protocol/PciIo.h" +#include "Protocol/Variable.h" +#include "Protocol/Reset.h" +#include "Protocol/SimpleTextOut.h" +#include "Protocol/SimpleTextIn.h" +#include "Protocol/UgaDraw.h" +#include "AMIPostMgr.h" +#if EFI_SPECIFICATION_VERSION>0x20000 + #include "Include\UefiHii.h" + #include "Protocol/HiiDatabase.h" + #include "Protocol/HiiString.h" +#else + #include "Protocol/HII.h" +#endif +#include <Protocol\SmmBase.h> +#include <Protocol\SmmSwDispatch.h> +#include <Include\Acpi.h> +#include <Include\Acpi11.h> +#include "AmiTcgPlatformDxeLib.h" +#include <AcpiRes.h> + + + + +//-------------------------------------------------------------------------- +//GUID Definitions +//-------------------------------------------------------------------------- +#define EFI_SMBIOS_TABLE_GUID \ + {0xeb9d2d31, 0x2d88, 0x11d3, 0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} + +#define AMI_TCG_PLATFORM_PROTOCOL_GUID\ + {0x8c939604, 0x700, 0x4415, 0x9d, 0x62, 0x11, 0x61, 0xdb, 0x81, 0x64, 0xa6} + +#define AMI_PROCESS_TCG_PPI_REQUEST_GUID\ + { 0x30ad2b83, 0xadd0, 0x414b, 0xb1, 0x1c, 0xf9, 0x3c, 0xc1, 0xd0, 0xb7,\ + 0x9b} + +#define AMI_PROCESS_TCG_SETUP_GUID\ + { 0xc77dd102, 0x1db4, 0x4997, 0xae, 0x37, 0x4e, 0x8c, 0x52, 0x1e, 0xf5,\ + 0x67} + +#define AMI_MEASURE_CPU_MICROCODE_GUID\ + { 0x5cf308b5, 0xfa23, 0x4100, 0x8a, 0x76, 0xf3, 0x26, 0xc2, 0x81, 0x48,\ + 0x80} + +#define AMI_MEASURE_PCIOPROM_GUID\ + { 0x76f3992d, 0x529e, 0x4efe, 0x8b, 0xbe, 0x8e, 0x1e, 0xd4, 0x32, 0xc2,\ + 0x23} + +#define AMI_SET_TCG_READYTOBOOT_GUID\ + { 0xa4524a9c, 0xb5e, 0x492d, 0xae, 0xc9, 0x30, 0x86, 0x31, 0xb1, 0x89,\ + 0xb4} + +#define TCG_SMBIOS_EFI_TABLE_GROUP \ + { 0xb3dae700, 0x2a77, 0x4ea4, 0xaf, 0x79, 0x32, 0x97, 0xb4, 0x84, 0xbe, 0x61 } + + +EFI_GUID gEfiSmbiosTableGuid = EFI_SMBIOS_TABLE_GUID; + +#define MINI_SETUP_GUID { 0xB1DA0ADF, 0x4F77, 0x4070,\ + { 0xA8, 0x8E, 0xBF, 0xFE, 0x1C, 0x60, 0x52, 0x9A } } + +#define GUID_VARIABLE_DECLARATION( Variable, Guid ) extern EFI_GUID Variable + +EFI_GUID gMicrocodeGuid = { + 0x17088572, 0x377F, 0x44ef, 0x8F, 0x4E, 0xB0, 0x9F, 0xFF, 0x46, 0xA0, 0x70 +}; + +#if TPM_PASSWORD_AUTHENTICATION + +EFI_GUID gAmitseAdminPasswordValidGuid = AMITSE_ADMIN_PASSWORD_VALID_GUID; + + +#define AMITSE_PASSWORD_PROMPT_EXIT_GUID { 0xb9b038b0, 0xe2b6, 0x4aab, \ + 0x94, 0x35, 0x41, 0x65, 0xec, 0xfe, 0xd0, 0x32 } + + +EFI_GUID gAmitsePasswordPromptExitGuid = AMITSE_PASSWORD_PROMPT_EXIT_GUID; + +#define AMITSE_PASSWORD_PROMPT_ENTER_GUID \ +{ 0x73e7e01, 0x2611, 0x4e85, 0xb8, 0x96, 0xa3, 0xb6, 0x76, 0x7c, 0xba, 0x0 } + +EFI_GUID gAmitsePasswordPromptEnterGuid = AMITSE_PASSWORD_PROMPT_ENTER_GUID; +#endif + +EFI_GUID gEfiTcgProtocolGuid = EFI_TCG_PROTOCOL_GUID; +EFI_GUID gDsdtGuidDxe = DSDT_GUID; +EFI_GUID TcgEfiGlobalVariableGuid = TCG_EFI_GLOBAL_VARIABLE_GUID; + + +#define TCG_DEACTIVED_ERROR 0x06 + +//--------------------------------------------------------------------------- +// Structure Definitions +//--------------------------------------------------------------------------- +#if defined CORE_REVISION && CORE_REVISION < 5 +typedef struct _EFI_LIST_ENTRY +{ + struct _EFI_LIST_ENTRY *ForwardLink; + struct _EFI_LIST_ENTRY *BackLink; +} EFI_LIST_ENTRY; +#endif + +typedef struct +{ + UINTN Signature; + EFI_LIST_ENTRY AllEntries; // All entries + EFI_GUID ProtocolID; // ID of the protocol + EFI_LIST_ENTRY Protocols; // All protocol interfaces + EFI_LIST_ENTRY Notify; // Registerd notification handlers +} TCG_PROTOCOL_ENTRY; + +typedef struct +{ + UINTN Signature; + TCG_PROTOCOL_ENTRY *Protocol; + EFI_LIST_ENTRY Link; // All notifications for this protocol + EFI_EVENT Event; // Event to notify + EFI_LIST_ENTRY *Position; // Last position notified +} TCG_PROTOCOL_NOTIFY; + +typedef struct +{ + UINT8 MajorVersion; + UINT8 MinorVersion; + UINT8 Reserve; + UINT8 Flag; +} AMI_TCG_PROTOCOL_VERSION; + + + + +//********************************************************************** +// Function Declarations +//********************************************************************** +EFI_STATUS +OnAcpiInstalled(IN EFI_EVENT ev, + IN VOID *ctx ); + + + +EFI_STATUS measureCpuMicroCode(); + + +EFI_FORWARD_DECLARATION( AMI_TCG_PLATFORM_PROTOCOL ); + + +typedef +EFI_STATUS +(EFIAPI * MEASURE_CPU_MICROCODE)( + +); + + +typedef +EFI_STATUS +(EFIAPI * MEASURE_HANDOFF_TABLES)( + +); + + +typedef +EFI_STATUS +(EFIAPI * MEASURE_PCI_OPROMS)( + +); + + +typedef +EFI_STATUS +(EFIAPI * PROCESS_TCG_SETUP)( + +); + + + +typedef +EFI_STATUS +(EFIAPI * PROCESS_TCG_PPI_REQUEST)( + +); + + + +typedef +EFI_STATUS +(EFIAPI * MEASURE_VARIABLES)( + +); + + +typedef +EFI_STATUS +(EFIAPI * TCG_READY_TO_BOOT)( + +); + +typedef +EFI_STATUS +(EFIAPI * GET_PROTOCOL_VERSION)( + AMI_TCG_PROTOCOL_VERSION * +); + +typedef +EFI_STATUS +(EFIAPI * GET_)( + AMI_TCG_PROTOCOL_VERSION * +); + + +typedef +VOID +(EFIAPI * RESETOSTCGVAR)( +); + + +typedef +EFI_STATUS +(EFIAPI * AMI_TCG_DXE_FUNCTION_OVERRIDE)( +); + + + +typedef struct _AMI_TCG_DXE_FUNCTION_OVERRIDE_PROTOCOL +{ + AMI_TCG_DXE_FUNCTION_OVERRIDE Function; +} AMI_TCG_DXE_FUNCTION_OVERRIDE_PROTOCOL; + + + +typedef EFI_STATUS (MEASURE_PCI_OPTION_ROM_FUNC_PTR)( +); + +typedef EFI_STATUS (MEASURE_HANDOFF_TABLES_FUNC_PTR)( +); + + +typedef EFI_STATUS (MEASURE_CPU_MICROCODE_FUNC_PTR)( +); + + +typedef EFI_STATUS (MEASURE_BOOT_VAR_FUNC_PTR)( +); + +#if (defined(TCGMeasureSecureBootVariables) && (TCGMeasureSecureBootVariables!= 0)) +typedef EFI_STATUS (MEASURE_SECURE_BOOT_FUNC_PTR)( +); +#endif + + +typedef EFI_STATUS (MEASURES_TCG_BOOT_SEPARATORS_DXE_FUNC_PTR)( + +); + + +typedef EFI_STATUS (MEASURE_WAKE_EVENT_DXE_FUNC_PTR)( +); + +typedef UINT8 (SKIP_PHYSICAL_PRESENCE_LOCK_PTR)( +); + +extern MEASURE_PCI_OPTION_ROM_FUNC_PTR *MeasurePCIOpromsFuncPtr; +extern MEASURE_HANDOFF_TABLES_FUNC_PTR *MeasureHandoffTablesFuncPtr; +extern MEASURE_CPU_MICROCODE_FUNC_PTR *MeasureCpuMicroCodeFuncPtr; +extern MEASURE_BOOT_VAR_FUNC_PTR *MeasureAllBootVariablesFuncPtr; +#if (defined(TCGMeasureSecureBootVariables) && (TCGMeasureSecureBootVariables != 0)) +extern MEASURE_SECURE_BOOT_FUNC_PTR *MeasureSecurebootVariablesFuncPtr; +#endif +extern MEASURES_TCG_BOOT_SEPARATORS_DXE_FUNC_PTR *MeasureSeparatorsFuncPtr; +extern MEASURE_WAKE_EVENT_DXE_FUNC_PTR *MeasureWakeEventFuncPtr; + +typedef struct _AMI_TCG_PLATFORM_PROTOCOL +{ + MEASURE_CPU_MICROCODE MeasureCpuMicroCode; + MEASURE_PCI_OPROMS MeasurePCIOproms; + PROCESS_TCG_SETUP ProcessTcgSetup; + PROCESS_TCG_PPI_REQUEST ProcessTcgPpiRequest; + TCG_READY_TO_BOOT SetTcgReadyToBoot; + GET_PROTOCOL_VERSION GetProtocolVersion; + RESETOSTCGVAR ResetOSTcgVar; +} AMI_TCG_PLATFORM_PROTOCOL; + +extern EFI_GUID gEfiTcgProtocolGuid; +//********************************************************************** +//********************************************************************** +//** ** +//** (C)Copyright 1985-2010, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Pkwy, Suite 200, Norcross, GA 30093 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//********************************************************************** +//********************************************************************** |