summaryrefslogtreecommitdiff
path: root/Board/EM/TCG2/Common/TcgPlatformSetupPolicy
diff options
context:
space:
mode:
authorraywu <raywu0301@gmail.com>2018-06-15 00:00:50 +0800
committerraywu <raywu0301@gmail.com>2018-06-15 00:00:50 +0800
commitb7c51c9cf4864df6aabb99a1ae843becd577237c (patch)
treeeebe9b0d0ca03062955223097e57da84dd618b9a /Board/EM/TCG2/Common/TcgPlatformSetupPolicy
downloadzprj-b7c51c9cf4864df6aabb99a1ae843becd577237c.tar.xz
init. 1AQQW051HEADmaster
Diffstat (limited to 'Board/EM/TCG2/Common/TcgPlatformSetupPolicy')
-rw-r--r--Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.c441
-rw-r--r--Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.cif12
-rw-r--r--Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.dxs52
-rw-r--r--Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.h165
-rw-r--r--Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.mak88
-rw-r--r--Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.sdl25
6 files changed, 783 insertions, 0 deletions
diff --git a/Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.c b/Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.c
new file mode 100644
index 0000000..6a39194
--- /dev/null
+++ b/Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.c
@@ -0,0 +1,441 @@
+//*************************************************************************
+//*************************************************************************
+//** **
+//** (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/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.c 2 6/09/14 4:59p Fredericko $
+//
+// $Revision: 2 $
+//
+// $Date: 6/09/14 4:59p $
+//**********************************************************************
+// Revision History
+// ----------------
+// $Log: /Alaska/SOURCE/Modules/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.c $
+//
+// 2 6/09/14 4:59p Fredericko
+// Changes for SetVariable vulnerability during Runtime
+//
+// 1 4/21/14 2:18p Fredericko
+//
+// 1 10/08/13 12:05p Fredericko
+// Initial Check-In for Tpm-Next module
+//
+// 2 10/03/13 2:43p Fredericko
+//
+// 1 7/10/13 5:57p Fredericko
+// [TAG] EIP120969
+// [Category] New Feature
+// [Description] TCG (TPM20)
+//
+// 7 5/19/12 6:42p Fredericko
+//
+// 6 12/15/11 3:30p Fredericko
+// removed check for setup changes before NVRAM writes
+//
+// 5 10/26/11 2:14p Fredericko
+// [TAG] EIP72872
+// [Category] Improvement
+// [Description] Do not call setvariable if no change to TPM setup
+// information
+// [Files] TcgPlatformSetupPolicy.c
+//
+// 4 10/24/11 1:52p Fredericko
+// [TAG] EIP72872
+// [Category] Improvement
+// [Description] TCG module do not call SetVariable() for setup data if
+// no setup changes
+// [Files] TcgPlatformSetupPolicy.c
+//
+// 3 10/07/11 6:52p Fredericko
+//
+// 2 9/28/11 6:30p Fredericko
+//
+// 1 9/27/11 10:11p Fredericko
+// [TAG] EIP67286
+// [Category] Improvement
+// [Description] Initial check-in for Tcg Setup policy for Dxe
+// [Files] TcgPlatformSetupPolicy.cif
+// TcgPlatformSetupPolicy.c
+// TcgPlatformSetupPolicy.h
+// TcgPlatformSetupPolicy.sdl
+// TcgPlatformSetupPolicy.mak
+// TcgPlatformSetupPolicy.dxs
+//
+//**********************************************************************
+
+//<AMI_FHDR_START>
+//---------------------------------------------------------------------------
+// Name: TcgPlatformSetupPolicy.c
+//
+// Description: Policy file to allow reading and update of TCG policy
+//
+//---------------------------------------------------------------------------
+//<AMI_FHDR_END>
+
+#include <AmiDxeLib.h>
+#include "TcgPlatformSetupPolicy.h"
+
+TCG_PLATFORM_SETUP_PROTOCOL *TcgPlatformSetupInstance = NULL;
+
+EFI_HANDLE gImageHandle;
+static TCG_CONFIGURATION InitialConfigFlags;
+EFI_GUID gTcgPlatformSetupPolicyGuid = TCG_PLATFORM_SETUP_POLICY_GUID;
+EFI_GUID gTcgInternalSyncflagGuid = TCG_PPI_SYNC_FLAG_GUID;
+EFI_GUID gTcgInternalflagsGuid = TCG_INTERNAL_FLAGS_GUID;
+
+
+EFI_STATUS
+ UpdateTcgStatusFlags (TCG_CONFIGURATION *StatusFlags, BOOLEAN UpdateNvram)
+
+{
+ EFI_STATUS Status;
+ UINTN VariableSize = sizeof(SETUP_DATA);
+ SETUP_DATA SetupDataBuffer;
+ UINTN SetupVariableSize = sizeof(SETUP_DATA);
+ UINT32 SetupVariableAttributes;
+ EFI_GUID gSetupGuid = SETUP_GUID;
+ TCG_PLATFORM_SETUP_PROTOCOL *NewTcgPlatformSetupInstance = NULL;
+ TCG_PLATFORM_SETUP_PROTOCOL *OldTcgPlatformSetupInstance = NULL;
+
+ if(InitialConfigFlags.DisallowTpm == 1)return EFI_INVALID_PARAMETER;
+
+ Status = pBS->LocateProtocol (&gTcgPlatformSetupPolicyGuid, NULL, &OldTcgPlatformSetupInstance);
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ Status = pBS->AllocatePool (
+ EfiBootServicesData,
+ sizeof (TCG_PLATFORM_SETUP_PROTOCOL),
+ (VOID**)&NewTcgPlatformSetupInstance
+ );
+
+ if(StatusFlags == NULL)
+ {
+ return EFI_INVALID_PARAMETER;
+ }
+
+ if(TcgPlatformSetupInstance == NULL) return EFI_OUT_OF_RESOURCES;
+
+ NewTcgPlatformSetupInstance->ConfigFlags.TpmSupport = InitialConfigFlags.TpmSupport;
+ NewTcgPlatformSetupInstance->ConfigFlags.TcmSupport = StatusFlags->TcmSupport;
+ NewTcgPlatformSetupInstance->ConfigFlags.TpmEnable = StatusFlags->TpmEnable ;
+ NewTcgPlatformSetupInstance->ConfigFlags.TpmAuthenticate = InitialConfigFlags.TpmAuthenticate;
+ NewTcgPlatformSetupInstance->ConfigFlags.TpmOperation = StatusFlags->TpmOperation;
+ NewTcgPlatformSetupInstance->ConfigFlags.DisallowTpm = 0;
+ NewTcgPlatformSetupInstance->ConfigFlags.Reserved1 = StatusFlags->Reserved1;
+ NewTcgPlatformSetupInstance->ConfigFlags.Reserved2 = StatusFlags->Reserved2;
+
+ NewTcgPlatformSetupInstance->ConfigFlags.TpmHardware = StatusFlags->TpmHardware;
+ NewTcgPlatformSetupInstance->ConfigFlags.TpmEnaDisable = StatusFlags->TpmEnaDisable;
+ NewTcgPlatformSetupInstance->ConfigFlags.TpmActDeact = StatusFlags->TpmActDeact;
+ NewTcgPlatformSetupInstance->ConfigFlags.TpmOwnedUnowned = StatusFlags->TpmOwnedUnowned;
+ NewTcgPlatformSetupInstance->ConfigFlags.TcgSupportEnabled = StatusFlags->TcgSupportEnabled ;
+ NewTcgPlatformSetupInstance->ConfigFlags.TpmError = StatusFlags->TpmError;
+ NewTcgPlatformSetupInstance->ConfigFlags.PpiSetupSyncFlag = StatusFlags->PpiSetupSyncFlag;
+ NewTcgPlatformSetupInstance->ConfigFlags.Reserved3 = StatusFlags->Reserved3;
+
+ NewTcgPlatformSetupInstance->ConfigFlags.Reserved4 = StatusFlags->Reserved4;
+ NewTcgPlatformSetupInstance->ConfigFlags.Reserved5 = StatusFlags->Reserved5;
+ NewTcgPlatformSetupInstance->ConfigFlags.Tpm20Device = StatusFlags->Tpm20Device;
+
+
+ NewTcgPlatformSetupInstance->UpdateStatusFlags = UpdateTcgStatusFlags;
+
+ Status = pBS->UninstallMultipleProtocolInterfaces(
+ gImageHandle,
+ &gTcgPlatformSetupPolicyGuid,
+ OldTcgPlatformSetupInstance,
+ NULL
+ );
+
+ Status = pBS->InstallMultipleProtocolInterfaces (
+ &gImageHandle,
+ &gTcgPlatformSetupPolicyGuid,
+ NewTcgPlatformSetupInstance,
+ NULL
+ );
+
+ if (EFI_ERROR (Status)) {
+ return Status;
+ }
+
+ if(UpdateNvram){
+
+ Status = pRS->GetVariable (
+ L"Setup",
+ &gSetupGuid,
+ &SetupVariableAttributes,
+ &SetupVariableSize,
+ &SetupDataBuffer);
+
+ SetupDataBuffer.TpmEnable = NewTcgPlatformSetupInstance->ConfigFlags.TpmEnable;
+ SetupDataBuffer.TpmSupport = NewTcgPlatformSetupInstance->ConfigFlags.TpmSupport;
+ SetupDataBuffer.TcmSupport = NewTcgPlatformSetupInstance->ConfigFlags.TcmSupport;
+ SetupDataBuffer.TpmAuthenticate = NewTcgPlatformSetupInstance->ConfigFlags.TpmAuthenticate;
+ SetupDataBuffer.TpmOperation = NewTcgPlatformSetupInstance->ConfigFlags.TpmOperation;
+ SetupDataBuffer.TpmEnaDisable = NewTcgPlatformSetupInstance->ConfigFlags.TpmEnaDisable;
+ SetupDataBuffer.TpmActDeact = NewTcgPlatformSetupInstance->ConfigFlags.TpmActDeact;
+ SetupDataBuffer.TpmHrdW = NewTcgPlatformSetupInstance->ConfigFlags.TpmHardware;
+ SetupDataBuffer.TpmOwnedUnowned = NewTcgPlatformSetupInstance->ConfigFlags.TpmOwnedUnowned;
+ SetupDataBuffer.TpmError = NewTcgPlatformSetupInstance->ConfigFlags.TpmError;
+ SetupDataBuffer.TcgSupportEnabled = NewTcgPlatformSetupInstance->ConfigFlags.TcgSupportEnabled;
+ SetupDataBuffer.Tpm20Device = NewTcgPlatformSetupInstance->ConfigFlags.Tpm20Device;
+ SetupDataBuffer.ShaPolicy = NewTcgPlatformSetupInstance->ConfigFlags.Reserved1;
+
+ Status = pRS->SetVariable (
+ L"Setup",
+ &gSetupGuid,
+ SetupVariableAttributes,
+ SetupVariableSize,
+ &SetupDataBuffer);
+
+ SetupVariableAttributes = EFI_VARIABLE_BOOTSERVICE_ACCESS |
+ EFI_VARIABLE_NON_VOLATILE;
+
+ Status = pRS->SetVariable (
+ L"TcgInternalSyncFlag",
+ &gTcgInternalSyncflagGuid,
+ SetupVariableAttributes,
+ sizeof(UINT8),
+ &(NewTcgPlatformSetupInstance->ConfigFlags.PpiSetupSyncFlag));
+
+ if(Status == EFI_INVALID_PARAMETER)
+ {
+ Status = pRS->SetVariable( L"TcgInternalSyncFlag", \
+ &gTcgInternalSyncflagGuid, \
+ 0, \
+ 0, \
+ NULL);
+
+ if(EFI_ERROR(Status))return Status;
+
+ Status = pRS->SetVariable( L"TcgInternalSyncFlag", \
+ &gTcgInternalSyncflagGuid, \
+ SetupVariableAttributes, \
+ sizeof(UINT8), \
+ &(NewTcgPlatformSetupInstance->ConfigFlags.PpiSetupSyncFlag));
+ }
+ }
+
+ return Status;
+}
+
+
+
+//**********************************************************************
+//<AMI_PHDR_START>
+//
+// Procedure: TcgPlatformSetupPolicyEntryPoint
+//
+// Description: Entry point for TcgPlatformSetupPolicyEntryPoint
+//
+// Input: ImageHandle Image handle of this driver.
+// SystemTable Global system service table.
+//
+// Output: EFI_STATUS
+//
+// Modified:
+//
+// Referrals:
+//
+// Notes:
+//<AMI_PHDR_END>
+//**********************************************************************
+EFI_STATUS
+EFIAPI
+TcgPlatformSetupPolicyEntryPoint (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+)
+{
+ EFI_STATUS Status;
+ UINTN VariableSize = 0;
+ SETUP_DATA SetupDataBuffer;
+ SETUP_DATA *SetupData = &SetupDataBuffer;
+ UINTN SetupVariableSize;
+ UINT32 SetupVariableAttributes;
+ EFI_GUID gSetupGuid = SETUP_GUID;
+ UINT8 SyncVar;
+ UINT8 DisallowTpmFlag;
+ UINTN TempSizeofSyncVar = sizeof(UINT8);
+
+ InitAmiLib (ImageHandle, SystemTable);
+
+ SetupVariableSize = sizeof (SETUP_DATA);
+
+ Status = pBS->AllocatePool (
+ EfiBootServicesData,
+ sizeof (TCG_PLATFORM_SETUP_PROTOCOL),
+ (VOID**)&TcgPlatformSetupInstance
+ );
+
+
+ if (EFI_ERROR(Status)) {
+ return EFI_OUT_OF_RESOURCES;
+ }
+
+ Status = pRS->GetVariable (
+ L"InternalDisallowTpmFlag",
+ &gTcgInternalflagsGuid,
+ &SetupVariableAttributes,
+ &TempSizeofSyncVar,
+ &DisallowTpmFlag);
+
+
+ if(EFI_ERROR(Status)){
+ DisallowTpmFlag = 0;
+ Status = EFI_SUCCESS;
+ }
+ else if(DisallowTpmFlag == 1)
+ {
+ MemSet(&TcgPlatformSetupInstance->ConfigFlags, sizeof(TCG_CONFIGURATION), 0);
+ TcgPlatformSetupInstance->ConfigFlags.DisallowTpm = 1;
+ MemSet(&InitialConfigFlags, sizeof(TCG_CONFIGURATION), 0);
+
+ InitialConfigFlags.DisallowTpm = 1;
+
+ TcgPlatformSetupInstance->Revision = TCG_PLATFORM_SETUP_PROTOCOL_REVISION_1;
+ TcgPlatformSetupInstance->UpdateStatusFlags = UpdateTcgStatusFlags;
+
+ Status = pRS->GetVariable (
+ L"Setup",
+ &gSetupGuid,
+ &SetupVariableAttributes,
+ &SetupVariableSize,
+ &SetupDataBuffer);
+
+
+ SetupDataBuffer.TpmEnable = 0;
+ SetupDataBuffer.TpmSupport = 0;
+ SetupDataBuffer.TcmSupport = 0;
+ SetupDataBuffer.TpmAuthenticate = 0;
+ SetupDataBuffer.TpmOperation = 0;
+ SetupDataBuffer.TpmEnaDisable = 0;
+ SetupDataBuffer.TpmActDeact = 0;
+ SetupDataBuffer.TpmHrdW = 0;
+ SetupDataBuffer.TpmOwnedUnowned = 0;
+ SetupDataBuffer.TpmError = 0;
+ SetupDataBuffer.SuppressTcg = DisallowTpmFlag;
+ SetupDataBuffer.TcgSupportEnabled = 0;
+
+ Status = pRS->SetVariable (
+ L"Setup",
+ &gSetupGuid,
+ SetupVariableAttributes,
+ SetupVariableSize,
+ &SetupDataBuffer);
+
+ return Status;
+ }
+
+
+ Status = pRS->GetVariable (
+ L"TcgInternalSyncFlag",
+ &gTcgInternalSyncflagGuid,
+ &SetupVariableAttributes,
+ &TempSizeofSyncVar,
+ &SyncVar);
+
+ if(EFI_ERROR(Status)){
+ SyncVar = 0;
+ }
+
+
+ Status = pRS->GetVariable (
+ L"Setup",
+ &gSetupGuid,
+ &SetupVariableAttributes,
+ &SetupVariableSize,
+ &SetupDataBuffer);
+
+ TcgPlatformSetupInstance->Revision = TCG_PLATFORM_SETUP_PROTOCOL_REVISION_1;
+
+ if (EFI_ERROR(Status))
+ {
+ MemSet(&TcgPlatformSetupInstance->ConfigFlags, sizeof(TCG_CONFIGURATION), 0);
+ SetupData = NULL;
+ } else {
+
+ MemSet(&TcgPlatformSetupInstance->ConfigFlags, sizeof(TCG_CONFIGURATION), 0);
+ TcgPlatformSetupInstance->ConfigFlags.TpmSupport = (SetupData->TpmSupport);
+ TcgPlatformSetupInstance->ConfigFlags.TcmSupport = (SetupData->TcmSupport);
+ TcgPlatformSetupInstance->ConfigFlags.TpmEnable = (SetupData->TpmEnable);
+ TcgPlatformSetupInstance->ConfigFlags.TpmAuthenticate = (SetupData->TpmAuthenticate);
+ TcgPlatformSetupInstance->ConfigFlags.TpmOperation = (SetupData->TpmOperation);
+ TcgPlatformSetupInstance->ConfigFlags.PpiSetupSyncFlag = SyncVar;
+ TcgPlatformSetupInstance->ConfigFlags.Reserved1 = (SetupData->ShaPolicy);
+ TcgPlatformSetupInstance->ConfigFlags.Reserved2 = 0;
+ TcgPlatformSetupInstance->ConfigFlags.DisallowTpm = DisallowTpmFlag;
+ TcgPlatformSetupInstance->ConfigFlags.TpmHardware = (SetupData->TpmHrdW);
+ TcgPlatformSetupInstance->ConfigFlags.TpmEnaDisable = (SetupData->TpmEnaDisable);
+ TcgPlatformSetupInstance->ConfigFlags.TpmActDeact = (SetupData->TpmActDeact);
+ TcgPlatformSetupInstance->ConfigFlags.TpmOwnedUnowned = (SetupData->TpmOwnedUnowned);
+ TcgPlatformSetupInstance->ConfigFlags.TcgSupportEnabled = (SetupData->TcgSupportEnabled);
+ TcgPlatformSetupInstance->ConfigFlags.TpmError = (SetupData->TpmError);
+ TcgPlatformSetupInstance->ConfigFlags.Reserved3 = 0;
+ TcgPlatformSetupInstance->ConfigFlags.Reserved4 = 0;
+ TcgPlatformSetupInstance->ConfigFlags.Reserved5 = 0;
+ TcgPlatformSetupInstance->ConfigFlags.Tpm20Device = SetupData->Tpm20Device;
+ }
+
+ TcgPlatformSetupInstance->UpdateStatusFlags = UpdateTcgStatusFlags;
+
+ InitialConfigFlags.TpmSupport = TcgPlatformSetupInstance->ConfigFlags.TpmSupport;
+ InitialConfigFlags.TcmSupport = TcgPlatformSetupInstance->ConfigFlags.TcmSupport;
+ InitialConfigFlags.TpmEnable = TcgPlatformSetupInstance->ConfigFlags.TpmEnable;
+ InitialConfigFlags.TpmAuthenticate = TcgPlatformSetupInstance->ConfigFlags.TpmAuthenticate;
+ InitialConfigFlags.TpmOperation = TcgPlatformSetupInstance->ConfigFlags.TpmOperation;
+ InitialConfigFlags.Reserved1 = TcgPlatformSetupInstance->ConfigFlags.Reserved1 ;
+ InitialConfigFlags.Reserved2 = TcgPlatformSetupInstance->ConfigFlags.Reserved2;
+
+ InitialConfigFlags.TpmHardware = TcgPlatformSetupInstance->ConfigFlags.TpmHardware;
+ InitialConfigFlags.TpmEnaDisable = TcgPlatformSetupInstance->ConfigFlags.TpmEnaDisable;
+ InitialConfigFlags.TpmActDeact = TcgPlatformSetupInstance->ConfigFlags.TpmActDeact;
+ InitialConfigFlags.TpmOwnedUnowned = TcgPlatformSetupInstance->ConfigFlags.TpmOwnedUnowned;
+ InitialConfigFlags.TcgSupportEnabled = TcgPlatformSetupInstance->ConfigFlags.TcgSupportEnabled;
+ InitialConfigFlags.TpmError = TcgPlatformSetupInstance->ConfigFlags.TpmError;
+ InitialConfigFlags.PpiSetupSyncFlag = TcgPlatformSetupInstance->ConfigFlags.PpiSetupSyncFlag;
+ InitialConfigFlags.Reserved3 = TcgPlatformSetupInstance->ConfigFlags.Reserved3;
+
+ InitialConfigFlags.Reserved4 = TcgPlatformSetupInstance->ConfigFlags.Reserved4;
+ InitialConfigFlags.Reserved5 = TcgPlatformSetupInstance->ConfigFlags.Reserved5;
+
+ InitialConfigFlags.Tpm20Device = TcgPlatformSetupInstance->ConfigFlags.Tpm20Device;
+
+ //
+ //
+ Status = pBS->InstallMultipleProtocolInterfaces (
+ &ImageHandle,
+ &gTcgPlatformSetupPolicyGuid,
+ TcgPlatformSetupInstance,
+ NULL
+ );
+
+ gImageHandle = ImageHandle;
+
+ return Status;
+}
+//*************************************************************************
+//*************************************************************************
+//** **
+//** (C)Copyright 1985-2010, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//*************************************************************************
+//*************************************************************************
diff --git a/Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.cif b/Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.cif
new file mode 100644
index 0000000..f3fd80e
--- /dev/null
+++ b/Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.cif
@@ -0,0 +1,12 @@
+<component>
+ name = "TcgPlatformSetupPolicy"
+ category = ModulePart
+ LocalRoot = "Board\EM\TCG2\Common\TcgPlatformSetupPolicy\"
+ RefName = "TcgPlatformSetupPolicy"
+[files]
+"TcgPlatformSetupPolicy.c"
+"TcgPlatformSetupPolicy.h"
+"TcgPlatformSetupPolicy.sdl"
+"TcgPlatformSetupPolicy.mak"
+"TcgPlatformSetupPolicy.dxs"
+<endComponent>
diff --git a/Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.dxs b/Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.dxs
new file mode 100644
index 0000000..8980c70
--- /dev/null
+++ b/Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.dxs
@@ -0,0 +1,52 @@
+//*************************************************************************
+//*************************************************************************
+//** **
+//** (C)Copyright 1985-2010, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//*************************************************************************
+//*************************************************************************
+//**********************************************************************
+//
+// $Header: /Alaska/SOURCE/Modules/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.dxs 1 4/21/14 2:18p Fredericko $
+//
+// $Revision: 1 $
+//
+// $Date: 4/21/14 2:18p $
+//
+//**********************************************************************
+
+//<AMI_FHDR_START>
+//----------------------------------------------------------------------------
+//
+// Name: TcgPlatformpolicy.dxs
+//
+// Description: dependency file for TcgPlatformpolicy
+//
+//----------------------------------------------------------------------------
+//<AMI_FHDR_END>
+
+#include <Protocol\Variable.h>
+
+DEPENDENCY_START
+ EFI_VARIABLE_ARCH_PROTOCOL_GUID
+DEPENDENCY_END
+
+//*************************************************************************
+//*************************************************************************
+//** **
+//** (C)Copyright 1985-2010, American Megatrends, Inc. **
+//** **
+//** All Rights Reserved. **
+//** **
+//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+//** **
+//** Phone: (770)-246-8600 **
+//** **
+//*************************************************************************
+//*************************************************************************
diff --git a/Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.h b/Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.h
new file mode 100644
index 0000000..09637df
--- /dev/null
+++ b/Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.h
@@ -0,0 +1,165 @@
+//*************************************************************************
+//*************************************************************************
+//** **
+//** (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/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.h 1 4/21/14 2:18p Fredericko $
+//
+// $Revision: 1 $
+//
+// $Date: 4/21/14 2:18p $
+//**********************************************************************
+// Revision History
+// ----------------
+// $Log: /Alaska/SOURCE/Modules/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.h $
+//
+// 1 4/21/14 2:18p Fredericko
+//
+// 1 10/08/13 12:05p Fredericko
+// Initial Check-In for Tpm-Next module
+//
+// 1 7/10/13 5:57p Fredericko
+// [TAG] EIP120969
+// [Category] New Feature
+// [Description] TCG (TPM20)
+//
+// 1 9/27/11 10:11p Fredericko
+// [TAG] EIP67286
+// [Category] Improvement
+// [Description] Initial check-in for Tcg Setup policy for Dxe
+// [Files] TcgPlatformSetupPolicy.cif
+// TcgPlatformSetupPolicy.c
+// TcgPlatformSetupPolicy.h
+// TcgPlatformSetupPolicy.sdl
+// TcgPlatformSetupPolicy.mak
+// TcgPlatformSetupPolicy.dxs
+//
+//
+//**********************************************************************
+//<AMI_FHDR_START>
+//----------------------------------------------------------------------------
+//
+// Name: TcgPlatformpolicy.h
+//
+// Description: Header file for TcgPlatformpolicy
+//
+//----------------------------------------------------------------------------
+//<AMI_FHDR_END>
+#ifndef _TCG_PLATFORM_SETUP_POLICY_H_
+#define _TCG_PLATFORM_SETUP_POLICY_H_
+
+#include <Efi.h>
+#include <token.h>
+#include <Setup.h>
+
+
+
+#define TCG_PLATFORM_SETUP_POLICY_GUID \
+ { \
+ 0xbb6cbeff, 0xe072, 0x40d2, 0xa6, 0xeb, 0xba, 0xb7, 0x5b, 0xde, 0x87, 0xe7 \
+ }
+
+#define TCG_PPI_SYNC_FLAG_GUID \
+ {\
+ 0xf3ed95df, 0x828e, 0x41c7, 0xbc, 0xa0, 0x16, 0xc4, 0x19, 0x65, 0xa6, 0x34 \
+ }
+
+#define TCG_INTERNAL_FLAGS_GUID \
+ {\
+ 0x70fff0ff, 0xa543, 0x45b9, 0x8b, 0xe3, 0x1b, 0xdb, 0x90, 0x41, 0x20, 0x80 \
+ }
+
+
+//
+// Protocol revision number
+// Any backwards compatible changes to this protocol will result in an update in the revision number
+// Major changes will require publication of a new protocol
+//
+#define TCG_PLATFORM_SETUP_PROTOCOL_REVISION_1 1
+
+#pragma pack(1)
+
+typedef struct {
+ //
+ // Byte 0, bit definition for functionality enable/disable
+ //
+ UINT8 TpmSupport; // 0: Disabled; 1: Enabled
+ UINT8 TcmSupport; // 0: Disabled; 1: Enabled
+ UINT8 TpmEnable; // 0: Disabled; 1: Enabled
+ UINT8 TpmAuthenticate;
+ UINT8 TpmOperation; // 0: Disabled; 1: Enabled
+ UINT8 DisallowTpm; // 0: Disabled; 1: Enabled
+ UINT8 Reserved1;
+ UINT8 Reserved2;
+
+ //
+ // Byte 1, bit definition for Status Information
+ //
+ UINT8 TpmHardware; // 0: Disabled; 1: Enabled
+ UINT8 TpmEnaDisable;
+ UINT8 TpmActDeact;
+ UINT8 TpmOwnedUnowned;
+ UINT8 TcgSupportEnabled; // 0: Disabled; 1: Enabled
+ UINT8 TpmError;
+ UINT8 PpiSetupSyncFlag;
+ UINT8 Reserved3;
+
+ //
+ // Byte 2, Reserved bytes
+ //
+ UINT8 Reserved4;
+
+ //
+ // Byte 3, Reserved bytes
+ //
+ UINT8 Reserved5;
+
+ //TPM 20 Configuration
+ UINT8 Tpm20Device;
+} TCG_CONFIGURATION;
+
+
+#pragma pack()
+
+typedef
+EFI_STATUS
+(EFIAPI * UPDATE_AMI_TCG_STATUS_FLAGS)(
+ TCG_CONFIGURATION *StatusFlags,
+ BOOLEAN UpdateNvram
+);
+
+
+//
+// AMT DXE Platform Policiy ====================================================
+//
+typedef struct _TCG_PLATFORM_SETUP_PROTOCOL {
+ UINT8 Revision;
+ TCG_CONFIGURATION ConfigFlags;
+ UPDATE_AMI_TCG_STATUS_FLAGS UpdateStatusFlags;
+} TCG_PLATFORM_SETUP_PROTOCOL;
+
+
+#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
diff --git a/Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.mak b/Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.mak
new file mode 100644
index 0000000..1d5fe1c
--- /dev/null
+++ b/Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.mak
@@ -0,0 +1,88 @@
+#*************************************************************************
+#*************************************************************************
+#** **
+#** (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/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.mak 1 4/21/14 2:18p Fredericko $
+#
+# $Revision: 1 $
+#
+# $Date: 4/21/14 2:18p $
+#**********************************************************************
+# Revision History
+# ----------------
+# $Log: /Alaska/SOURCE/Modules/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.mak $
+#
+# 1 4/21/14 2:18p Fredericko
+#
+# 1 10/08/13 12:05p Fredericko
+# Initial Check-In for Tpm-Next module
+#
+# 1 7/10/13 5:57p Fredericko
+# [TAG] EIP120969
+# [Category] New Feature
+# [Description] TCG (TPM20)
+#
+# 2 9/29/11 1:55a Fredericko
+#
+# 1 9/27/11 10:11p Fredericko
+# [TAG] EIP67286
+# [Category] Improvement
+# [Description] Initial check-in for Tcg Setup policy for Dxe
+# [Files] TcgPlatformSetupPolicy.cif
+# TcgPlatformSetupPolicy.c
+# TcgPlatformSetupPolicy.h
+# TcgPlatformSetupPolicy.sdl
+# TcgPlatformSetupPolicy.mak
+# TcgPlatformSetupPolicy.dxs
+#
+#
+#**********************************************************************
+#<AMI_FHDR_START>
+#
+# Name: TcgPlatformpolicy.mak
+#
+# Description: Make file for TcgPlatformpolicy
+#
+#<AMI_FHDR_END>
+#**********************************************************************
+All : TcgPlatformSetupPolicy
+
+TcgPlatformSetupPolicy : $(BUILD_DIR)\TcgPlatformSetupPolicy.mak TcgPlatformSetupPolicyBin
+
+$(BUILD_DIR)\TcgPlatformSetupPolicy.mak : $(TcgPlatformSetupPolicy_DIR)\$(@B).cif $(TcgPlatformSetupPolicy_DIR)\$(@B).mak $(BUILD_RULES)
+ $(CIF2MAK) $(TcgPlatformSetupPolicy_DIR)\$(@B).cif $(CIF2MAK_DEFAULTS)
+
+TcgPlatformSetupPolicyBin : $(AMIDXELIB)
+ $(MAKE) /$(MAKEFLAGS) $(BUILD_DEFAULTS)\
+ /f $(BUILD_DIR)\TcgPlatformSetupPolicy.mak all\
+ GUID=196CA3D8-9A5A-4735-B328-8FFC1D93D188\
+ ENTRY_POINT=TcgPlatformSetupPolicyEntryPoint\
+ DEPEX1=$(TcgPlatformSetupPolicy_DIR)\TcgPlatformSetupPolicy.dxs\
+ DEPEX1_TYPE=EFI_SECTION_DXE_DEPEX\
+ TYPE=BS_DRIVER\
+ COMPRESS=1
+
+#*************************************************************************
+#*************************************************************************
+#** **
+#** (C)Copyright 1985-2010, American Megatrends, Inc. **
+#** **
+#** All Rights Reserved. **
+#** **
+#** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 **
+#** **
+#** Phone: (770)-246-8600 **
+#** **
+#*************************************************************************
+#*************************************************************************
diff --git a/Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.sdl b/Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.sdl
new file mode 100644
index 0000000..b5bf040
--- /dev/null
+++ b/Board/EM/TCG2/Common/TcgPlatformSetupPolicy/TcgPlatformSetupPolicy.sdl
@@ -0,0 +1,25 @@
+TOKEN
+ Name = "TcgPlatformSetupPolicy_SUPPORT"
+ Value = "1"
+ Help = "Main switch to enable TcgPlatformSetupPolicy support in Project"
+ TokenType = Boolean
+ TargetEQU = Yes
+ TargetMAK = Yes
+ Master = Yes
+End
+
+PATH
+ Name = "TcgPlatformSetupPolicy_DIR"
+End
+
+MODULE
+ Help = "Includes AmtPlatformPolicy.mak to Project"
+ File = "TcgPlatformSetupPolicy.mak"
+End
+
+ELINK
+ Name = "$(BUILD_DIR)\TcgPlatformSetupPolicy.ffs"
+ Parent = "FV_MAIN"
+ InvokeOrder = AfterParent
+End
+