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/TcgPlatformSetupPolicy | |
download | zprj-b7c51c9cf4864df6aabb99a1ae843becd577237c.tar.xz |
Diffstat (limited to 'Board/EM/TCG2/Common/TcgPlatformSetupPolicy')
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 + |