diff options
Diffstat (limited to 'Board/EM/MeWrapper/AmtWrapper/AmtSetup')
-rw-r--r-- | Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSMIFlashElink.c | 128 | ||||
-rw-r--r-- | Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.c | 236 | ||||
-rw-r--r-- | Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.cif | 16 | ||||
-rw-r--r-- | Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.dxs | 70 | ||||
-rw-r--r-- | Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.h | 74 | ||||
-rw-r--r-- | Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.mak | 166 | ||||
-rw-r--r-- | Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.sd | 382 | ||||
-rw-r--r-- | Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.sdl | 107 | ||||
-rw-r--r-- | Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.uni | bin | 0 -> 15810 bytes | |||
-rw-r--r-- | Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtTseFunc.c | 447 |
10 files changed, 1626 insertions, 0 deletions
diff --git a/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSMIFlashElink.c b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSMIFlashElink.c new file mode 100644 index 0000000..0716540 --- /dev/null +++ b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSMIFlashElink.c @@ -0,0 +1,128 @@ +//************************************************************************* +//************************************************************************* +//** ** +//** (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/SharkBayRefCodes/ME/AmtWrapper/AmtSetup/AmtSMIFlashElink.c 3 5/14/14 9:48p Tristinchou $ +// +// $Revision: 3 $ +// +// $Date: 5/14/14 9:48p $ +//********************************************************************** +// Revision History +// ---------------- +// $Log: /Alaska/SOURCE/Modules/SharkBayRefCodes/ME/AmtWrapper/AmtSetup/AmtSMIFlashElink.c $ +// +// 3 5/14/14 9:48p Tristinchou +// [TAG] EIP167030 +// [Category] Improvement +// [Description] Remove the variable runtime attribute and keep original +// attributes. +// +// 2 9/19/12 6:38a Klzhan +// Check MebxVariable exist or not before restore. +// +// 1 4/24/12 12:38a Klzhan +// Update modulepart to latest +// +// 1 2/16/12 9:01a Klzhan +// [TAG] EIP83223 +// [Category] Improvement +// [Description] Restore MEBiosExtensionSetup when NVRam updated by AFU. +// +//********************************************************************** + +//<AMI_FHDR_START> +//--------------------------------------------------------------------------- +// Name: AMTSMIFlashElink.c +// +// Description: AMT TSE Functions. +// +//--------------------------------------------------------------------------- +//<AMI_FHDR_END> +#include <AmiDxeLib.h> +#include "MeBiosExtensionSetup\MeBiosExtensionSetup.h" + +ME_BIOS_EXTENSION_SETUP BiosExtensionSetup; +UINT32 mMebxSetupVariableDataAttr; +UINTN mMebxSetupVariableDataSize; +//<AMI_PHDR_START> +//---------------------------------------------------------------------- +// Procedure: PreserveMEBXSyncData +// +// Description: Restore the MEBiosExtensionSetup variable +// +// Input: NONE +// +// Output: NONE +// +// Returns: NONE +// +//---------------------------------------------------------------------- +//<AMI_PHDR_END> +VOID PreserveMEBXSyncData (VOID) +{ + + EFI_STATUS Status; + + mMebxSetupVariableDataSize = sizeof(ME_BIOS_EXTENSION_SETUP); + Status = pRS->GetVariable ( gEfiMeBiosExtensionSetupName, + &gEfiMeBiosExtensionSetupGuid, + &mMebxSetupVariableDataAttr, + &mMebxSetupVariableDataSize, + &BiosExtensionSetup); + + if(EFI_ERROR(Status)) + mMebxSetupVariableDataSize = 0; +} + +//<AMI_PHDR_START> +//---------------------------------------------------------------------- +// Procedure: RestoreMEBXSyncData +// +// Description: Restore the MEBiosExtensionSetup variable +// +// Input: NONE +// +// Output: NONE +// +// Returns: NONE +// +//---------------------------------------------------------------------- +//<AMI_PHDR_END> +VOID RestoreMEBXSyncData (VOID) +{ + EFI_STATUS Status; + + if(mMebxSetupVariableDataSize == 0) + return; + + Status = pRS->SetVariable ( gEfiMeBiosExtensionSetupName, + &gEfiMeBiosExtensionSetupGuid, + mMebxSetupVariableDataAttr, + mMebxSetupVariableDataSize, + &BiosExtensionSetup ); +} +//************************************************************************* +//************************************************************************* +//** ** +//** (C)Copyright 1985-2010, 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/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.c b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.c new file mode 100644 index 0000000..a643c62 --- /dev/null +++ b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.c @@ -0,0 +1,236 @@ +//************************************************************************* +//************************************************************************* +//** ** +//** (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/SharkBayRefCodes/ME/AmtWrapper/AmtSetup/AmtSetup.c 5 5/14/14 9:48p Tristinchou $ +// +// $Revision: 5 $ +// +// $Date: 5/14/14 9:48p $ +//********************************************************************** +// Revision History +// ---------------- +// $Log: /Alaska/SOURCE/Modules/SharkBayRefCodes/ME/AmtWrapper/AmtSetup/AmtSetup.c $ +// +// 5 5/14/14 9:48p Tristinchou +// [TAG] EIP167030 +// [Category] Improvement +// [Description] Remove the variable runtime attribute and keep original +// attributes. +// +// 4 9/19/12 6:37a Klzhan +// Fix entry point return type. +// +// 3 6/05/12 2:05a Klzhan +// [TAG] EIP91581 +// [Category] Improvement +// [Description] Avoid system crash when HECI reset +// +// 1 2/08/12 1:08a Klzhan +// Initial Check in +// +// 2 7/14/11 7:45a Klzhan +// Add "Disable ME" setup item. +// +// 1 2/25/11 1:44a Klzhan +// Initial Check-in +// +// 1 12/03/10 5:11a Klzhan +// Initial Check-in. +// +//********************************************************************** +// +//<AMI_FHDR_START> +//--------------------------------------------------------------------------- +// Name: AMTSetup.c +// +// Description: AMT TSE Functions. +// +//--------------------------------------------------------------------------- +//<AMI_FHDR_END> +#include "Token.h" +#include "Efi.h" +#include "EfiDriverLib.h" +#include "EfiCommonLib.h" +#include "Amt.h" +#include "EfiScriptLib.h" +#include "AmtLib.h" +#include "Include\Protocol\LegacySredir.h" +#include "AmtSetup.h" +#include <SetupDataDefinition.h> +#include "MELib.h" +#include EFI_PROTOCOL_CONSUMER (AmtPlatformPolicy) +#include EFI_PROTOCOL_CONSUMER (AmtWrapper) +#include EFI_PROTOCOL_DEFINITION (MeBiosPayloadData) +#include "Protocol\AmtWrapper\AmtWrapper.h" + +EFI_GUID gEfiAmtWrapperProtocolGuid = EFI_AMT_WRAPPER_PROTOCOL_GUID; + +#define SETUP_GUID { 0xEC87D643, 0xEBA4, 0x4BB5, 0xA1, 0xE5, 0x3F, 0x3E, 0x36, 0xB2, 0x0D, 0xA9 } +EFI_GUID gEfiSetupGuid = SETUP_GUID; + +VOID +SetMEDisable ( + IN UINT8 Grayout +) +{ +#if defined(iAMT_SUPPORT) && (iAMT_SUPPORT == 1) + SETUP_DATA gSetupData; + UINTN SetupDataSize; + EFI_STATUS Status; + EFI_HECI_PROTOCOL *Heci; + UINT32 MeMode; + DXE_MBP_DATA_PROTOCOL *mBIOSPayLoad; + + Status = gBS->LocateProtocol ( + &gEfiHeciProtocolGuid, + NULL, + &Heci + ); + + if (EFI_ERROR (Status)) { + return; + } + + Status = Heci->GetMeMode (&MeMode); + + if (EFI_ERROR (Status)) { + return; + } + + SetupDataSize = sizeof(SETUP_DATA); + Status = gRT->GetVariable ( L"Setup", \ + &gEfiSetupGuid, \ + NULL, \ + &SetupDataSize, \ + &gSetupData ); + + if (EFI_ERROR (Status)) { + return; + } + + Status = gBS->LocateProtocol(&gMeBiosPayloadDataProtocolGuid, + NULL, &mBIOSPayLoad); + + if (EFI_ERROR (Status)) { + return; + } + + if(gSetupData.MEDisabled) + { + // AT in Inactive mode, and no SOL or IDER or KVM session + // can't set ME to disabled + if((MeMode == ME_MODE_NORMAL) && + (mBIOSPayLoad->MeBiosPayload.AtState.State == 0) && + (Grayout == 0)) + { + Status = HeciSetMeDisableMsg(); + if(!EFI_ERROR(Status)) + { + Status = HeciSendCbmResetRequest (CBM_RR_REQ_ORIGIN_BIOS_POST, CBM_HRR_GLOBAL_RESET); + if(!EFI_ERROR(Status)) + EFI_DEADLOOP(); + } + } + }else + { + if(MeMode == ME_MODE_TEMP_DISABLED) + { + Status = HeciSetMeEnableMsg(); + if(!EFI_ERROR(Status)) + { + Status = HeciSendCbmResetRequest (CBM_RR_REQ_ORIGIN_BIOS_POST, CBM_HRR_GLOBAL_RESET); + if(!EFI_ERROR(Status)) + EFI_DEADLOOP(); + } + } + } +#endif +} + + +EFI_STATUS +InitializeAmtSetup ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable +) +{ + SETUP_AMT_FEATURES SetupAmtFeatures; + EFI_STATUS Status; + UINT32 VarAttr; + UINTN VariableSize; + UINTN Update = 0; + UINT8 GrayOut; + AMT_WRAPPER_PROTOCOL *pAmtWrapper = NULL; + + + EfiInitializeDriverLib (ImageHandle, SystemTable); + + Status = gBS->LocateProtocol( + &gEfiAmtWrapperProtocolGuid, + NULL, + &pAmtWrapper); + + ASSERT_EFI_ERROR(Status); + + VariableSize = sizeof(SETUP_AMT_FEATURES); + Status = gRT->GetVariable( + L"SetupAmtFeatures", + &gEfiSetupGuid, + &VarAttr, + &VariableSize, + &SetupAmtFeatures); + + if ( pAmtWrapper->ActiveManagementEnableIdeR() || + pAmtWrapper->ActiveManagementEnableSol() || + pAmtWrapper->ActiveManagementEnableKvm()) { + GrayOut = 1; + } else { + GrayOut = 0; + } + + if (SetupAmtFeatures.GrayOut != GrayOut) { + SetupAmtFeatures.GrayOut = GrayOut; + Update = 1; + } + + if (Update || EFI_ERROR(Status)) { + if( Status == EFI_NOT_FOUND ) + VarAttr = EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS; + Status = gRT->SetVariable( + L"SetupAmtFeatures", + &gEfiSetupGuid, + VarAttr, + sizeof(SETUP_AMT_FEATURES), + &SetupAmtFeatures); + ASSERT_EFI_ERROR(Status); + } + SetMEDisable(GrayOut); + + + return EFI_SUCCESS; +} + +//************************************************************************* +//************************************************************************* +//** ** +//** (C)Copyright 1985-2010, 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/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.cif b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.cif new file mode 100644 index 0000000..58618a7 --- /dev/null +++ b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.cif @@ -0,0 +1,16 @@ +<component> + name = "AmtSetup" + category = ModulePart + LocalRoot = "Board\EM\MeWrapper\AmtWrapper\AmtSetup" + RefName = "AmtSetup" +[files] +"AmtSetup.sdl" +"AmtSetup.mak" +"AmtSetup.c" +"AmtSetup.sd" +"AmtSetup.uni" +"AmtSetup.h" +"AmtSetup.dxs" +"AmtTseFunc.c" +"AmtSMIFlashElink.c" +<endComponent> diff --git a/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.dxs b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.dxs new file mode 100644 index 0000000..057c0e5 --- /dev/null +++ b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.dxs @@ -0,0 +1,70 @@ +//************************************************************************* +//************************************************************************* +//** ** +//** (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/SharkBayRefCodes/ME/AmtWrapper/AmtSetup/AmtSetup.dxs 1 2/08/12 1:08a Klzhan $ +// +// $Revision: 1 $ +// +// $Date: 2/08/12 1:08a $ +//********************************************************************** +// Revision History +// ---------------- +// $Log: /Alaska/SOURCE/Modules/SharkBayRefCodes/ME/AmtWrapper/AmtSetup/AmtSetup.dxs $ +// +// 1 2/08/12 1:08a Klzhan +// Initial Check in +// +// 1 2/25/11 1:44a Klzhan +// Initial Check-in +// +// 1 12/03/10 5:11a Klzhan +// Initial Check-in. +// +//********************************************************************** +// +//<AMI_FHDR_START> +//--------------------------------------------------------------------------- +// Name: AMTSetup.dxs +// +// Description: AMT TSE dependency file. +// +//--------------------------------------------------------------------------- +//<AMI_FHDR_END> + +#include <Protocol\Variable.h> +#include "Protocol\AmtWrapper\AmtWrapper.h" + +#include EFI_PROTOCOL_DEFINITION (ActiveManagement) + +DEPENDENCY_START + EFI_VARIABLE_ARCH_PROTOCOL_GUID AND + EFI_VARIABLE_WRITE_ARCH_PROTOCOL_GUID AND + EFI_ACTIVE_MANAGEMENT_PROTOCOL_GUID AND + EFI_AMT_WRAPPER_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/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.h b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.h new file mode 100644 index 0000000..00b842c --- /dev/null +++ b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.h @@ -0,0 +1,74 @@ +//************************************************************************* +//************************************************************************* +//** ** +//** (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/SharkBayRefCodes/ME/AmtWrapper/AmtSetup/AmtSetup.h 1 2/08/12 1:08a Klzhan $ +// +// $Revision: 1 $ +// +// $Date: 2/08/12 1:08a $ +//********************************************************************** +// Revision History +// ---------------- +// $Log: /Alaska/SOURCE/Modules/SharkBayRefCodes/ME/AmtWrapper/AmtSetup/AmtSetup.h $ +// +// 1 2/08/12 1:08a Klzhan +// Initial Check in +// +// 1 2/25/11 1:44a Klzhan +// Initial Check-in +// +// 1 12/03/10 5:11a Klzhan +// Initial Check-in. +// +//********************************************************************** +// +//<AMI_FHDR_START> +//--------------------------------------------------------------------------- +// Name: AMTSetup.sd +// +// Description: AMT TSE makfile. +// +//--------------------------------------------------------------------------- +//<AMI_FHDR_END> +#ifndef __AMT_SETUP_H__ +#define __AMT_SETUP_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +//This structure is used for setup. +typedef struct { + UINT8 GrayOut; +} SETUP_AMT_FEATURES; + + +/****** DO NOT WRITE BELOW THIS LINE *******/ +#ifdef __cplusplus +} +#endif +#endif +//************************************************************************* +//************************************************************************* +//** ** +//** (C)Copyright 1985-2010, 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/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.mak b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.mak new file mode 100644 index 0000000..e5cedb1 --- /dev/null +++ b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.mak @@ -0,0 +1,166 @@ +#************************************************************************* +#************************************************************************* +#** ** +#** (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/SharkBayRefCodes/ME/AmtWrapper/AmtSetup/AmtSetup.mak 3 4/24/12 12:38a Klzhan $ +# +# $Revision: 3 $ +# +# $Date: 4/24/12 12:38a $ +#********************************************************************** +# Revision History +# ---------------- +# $Log: /Alaska/SOURCE/Modules/SharkBayRefCodes/ME/AmtWrapper/AmtSetup/AmtSetup.mak $ +# +# 3 4/24/12 12:38a Klzhan +# Update modulepart to latest +# +# 2 2/23/12 8:58a Klzhan +# Support New EDK +# +# 1 2/08/12 1:08a Klzhan +# Initial Check in +# +# 2 7/14/11 7:45a Klzhan +# Add "Disable ME" setup item. +# +# 1 2/25/11 1:44a Klzhan +# Initial Check-in +# +# 1 12/03/10 5:11a Klzhan +# Initial Check-in. +# +#********************************************************************** +# +#<AMI_FHDR_START> +#--------------------------------------------------------------------------- +# Name: AMTSetup.sd +# +# Description: AMT TSE makfile. +# +#--------------------------------------------------------------------------- +#<AMI_FHDR_END> + +#--------------------------------------------------------------------------- +# Create AMT Setup Screens +#--------------------------------------------------------------------------- +All : AmtSetup + +AmtSetup : $(BUILD_DIR)\AmtSetup.mak AmtSetupBin +#AmtSetup : $(BUILD_DIR)\AmtSetup.mak AmtSetupBin +AmtTseFunc_lib : $(BUILD_DIR)\AmtSetup.mak AmtTseSetupBin + + +SetupSdbs : $(BUILD_DIR)\AmtSetup.sdb + +$(BUILD_DIR)\AmtSetup.sdb : $(AMT_SETUP_DIR)\$(@B).sd $(AMT_SETUP_DIR)\$(@B).uni + $(STRGATHER) -i INCLUDE -parse -newdb -db $(BUILD_DIR)\$(@B).sdb $(AMT_SETUP_DIR)\$(@B).uni + $(STRGATHER) -scan -db $(BUILD_DIR)\$(@B).sdb -od $(BUILD_DIR)\$(@B).sdb $(AMT_SETUP_DIR)\$(@B).sd + +$(BUILD_DIR)\AmtSetup.mak : $(AMT_SETUP_DIR)\$(@B).cif $(AMT_SETUP_DIR)\$(@B).mak $(BUILD_RULES) + $(CIF2MAK) $(AMT_SETUP_DIR)\$(@B).cif $(CIF2MAK_DEFAULTS) + +AmtSetup_INCLUDES= \ + $(EDK_INCLUDES) \ + $(MISCFRAMEWORK_INCLUDES) \ + $(ME_INCLUDES) \ + $(IndustryStandard_INCLUDES)\ + +AmtSetup_CFLAGS=$(CFLAGS) \ + -I $(TSEBIN_DIR)\Inc \ + -I $(TSEBIN_DIR)\ + -I ReferenceCode\ME\Protocol\ + -I Board\EM\MeWrapper\AmtWrapper\Protocol + +AmtTseSetup_INCLUDES= \ + /I$(PROJECT_DIR) \ + $(EDK_INCLUDES) \ + $(MISCFRAMEWORK_INCLUDES) \ + $(ME_INCLUDES) \ + /IInclude\Protocol\ + /IInclude\IndustryStandard\ + /IInclude\ + +SetupData : $(BUILD_DIR)\AmtTseFunc.obj + +$(BUILD_DIR)\AmtTseFunc.obj : $(AMT_SETUP_DIR)\AmtTseFunc.c + $(CC) $(AmtSetup_CFLAGS) /Fo$(BUILD_DIR)\ $(AMT_SETUP_DIR)\AmtTseFunc.c + +AMT_SETUPLIB_OBJECTS = $(BUILD_DIR)\$(AMT_SETUP_DIR)\AmtTseFunc.obj +AMT_SETUP_OBJECTS = $(BUILD_DIR)\$(AMT_SETUP_DIR)\AmtSetup.obj + +AMT_SETUP_LIBS=\ + $(EFIDRIVERLIB)\ + $(MeLibDxe_LIB)\ + $(EfiScriptLib_LIB)\ + $(EdkIIGlueBaseLib_LIB)\ + $(EDKFRAMEWORKPROTOCOLLIB)\ + $(EFIPROTOCOLLIB)\ +!IF "$(x64_BUILD)"=="1" + $(EdkIIGlueBaseLibX64_LIB)\ +!ELSE + $(EdkIIGlueBaseLibIA32_LIB)\ +!ENDIF + $(EdkIIGlueBaseLib_LIB)\ + $(EdkIIGlueDxeReportStatusCodeLib_LIB)\ + $(EdkIIGlueDxeDebugLibReportStatusCode_LIB)\ + $(EdkIIGlueDxeMemoryAllocationLib_LIB)\ + $(EFIGUIDLIB)\ + $(EDKPROTOCOLLIB)\ + $(EdkIIGlueBaseIoLibIntrinsic_LIB)\ + $(EdkIIGlueBaseMemoryLib_LIB)\ + $(EdkIIGlueEdkDxeRuntimeDriverLib_LIB)\ + $(EdkIIGlueUefiLib_LIB)\ + $(EdkIIGlueDxeHobLib_LIB)\ + +AmtSetupBin : $(AMT_SETUP_LIBS) + $(MAKE) /$(MAKEFLAGS) $(EDK_DEFAULTS)\ + /f $(BUILD_DIR)\AmtSetup.mak all \ + "MY_INCLUDES=$(AmtSetup_INCLUDES)"\ + GUID=773CB08B-511A-4bd5-85AD-41D4F4B64A52 \ + TYPE=BS_DRIVER \ + "OBJECTS=$(AMT_SETUP_OBJECTS)"\ + ENTRY_POINT=InitializeAmtSetup \ + DEPEX1=$(AMT_SETUP_DIR)\AmtSetup.dxs \ + DEPEX1_TYPE=EFI_SECTION_DXE_DEPEX \ + COMPRESS=1 + +#--------------------------------------------------------------------------- +# Create Restore BIOSExtesionSetup Restore Component +#--------------------------------------------------------------------------- +AmtSMIFlashElink : $(BUILD_DIR)\AmtSetup.mak AmtSMIFlashElinkBin + +AmtSMIFlashElinkObjs = $(BUILD_DIR)\$(AMT_SETUP_DIR)\AmtSMIFlashElink.obj + +AmtSMIFlashElinkBin : $(AMIDXELIB) $(MeGuidLib_LIB) + $(MAKE) /$(MAKEFLAGS) $(BUILD_DEFAULTS)\ + /f $(BUILD_DIR)\AmtSetup.mak all\ + "CFLAGS=$(CFLAGS:/W4=/W3) /I$(MeGuidLib_DIR)" \ + OBJECTS="$(AmtSMIFlashElinkObjs)" \ + NAME=AmtSetup \ + TYPE=LIBRARY LIBRARY_NAME=$(AMT_SMIFLASH_LIB) + +$(AMT_SMIFLASH_LIB) : AmtSMIFlashElink +#************************************************************************* +#************************************************************************* +#** ** +#** (C)Copyright 1985-2010, 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/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.sd b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.sd new file mode 100644 index 0000000..8f9bd1a --- /dev/null +++ b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.sd @@ -0,0 +1,382 @@ +//************************************************************************* +//************************************************************************* +//** ** +//** (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/SharkBayRefCodes/ME/AmtWrapper/AmtSetup/AmtSetup.sd 5 9/24/15 3:04a Tristinchou $ +// +// $Revision: 5 $ +// +// $Date: 9/24/15 3:04a $ +//********************************************************************** +// Revision History +// ---------------- +// $Log: /Alaska/SOURCE/Modules/SharkBayRefCodes/ME/AmtWrapper/AmtSetup/AmtSetup.sd $ +// +// 5 9/24/15 3:04a Tristinchou +// [TAG] EIP238392 +// [Category] Improvement +// [Description] Change USB Provisioning default to disable +// +// 4 8/02/13 5:02a Klzhan +// [TAG] EIP131372 +// [Category] Improvement +// [Description] Fix build error when disable AT_SUPPORT +// +// 3 11/06/12 7:13a Klzhan +// Pass SharkBay AT test. +// +// 2 4/24/12 12:38a Klzhan +// Update modulepart to latest +// +// 1 2/08/12 1:08a Klzhan +// Initial Check in +// +// 3 7/14/11 7:45a Klzhan +// Add "Disable ME" setup item. +// +// 2 5/19/11 5:30a Klzhan +// Remove un-use AMT setup item. +// +// 1 2/25/11 1:44a Klzhan +// Initial Check-in +// +// 1 12/03/10 5:11a Klzhan +// Initial Check-in. +// +//********************************************************************** + +//<AMI_FHDR_START> +//--------------------------------------------------------------------------- +// Name: AMTSetup.sd +// +// Description: AMT TSE sd file. +// +//--------------------------------------------------------------------------- +//<AMI_FHDR_END> +#ifdef SETUP_DATA_DEFINITION +/***********************************************************/ +/* Put NVRAM data definitions here. +/* For example: UINT8 Data1; +/* These definitions will be converted by the build process +/* to a definitions of SETUP_DATA fields. +/***********************************************************/ + // + // Intel AMT + // + UINT8 Amt; + UINT8 AmtbxPrompt; + UINT8 AmtbxHotKeyPressed; + UINT8 AmtbxSelectionScreen; + UINT8 FWVerbose; + UINT8 HideUnConfigureMeConfirm; + UINT8 MebxDebugMsg; + UINT8 UnConfigureMe; + UINT8 AmtSpiLock; + UINT16 AmtWaitTimer; + UINT8 AmtCiraRequest; + UINT8 AmtCiraTimeout; + UINT8 USBProvision; + UINT8 FWProgress; + UINT8 MEDisabled; + // + // ASF + // + UINT8 Asf; + + // + // WatchDog + // + UINT8 WatchDog; + UINT16 WatchDogTimerOs; + UINT16 WatchDogTimerBios; + +#endif + +//--------------------------------------------------------------------------- +#if defined(VFRCOMPILE) && !defined(CONTROLS_ARE_DEFINED) +#define CONTROL_DEFINITION +#endif +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +#ifdef CONTROL_DEFINITION + +#define AMT_ONEOF_AMT\ + oneof varid = SETUP_DATA.Amt,\ + prompt = STRING_TOKEN(STR_AMT_PROMPT),\ + help = STRING_TOKEN(STR_AMT_HELP),\ + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED, key = 0;\ + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\ + endoneof; + + +#define AMT_CHECKBOX_AMTBX_HOTKEYPRESSED\ + checkbox varid = SETUP_DATA.AmtbxHotKeyPressed,\ + prompt = STRING_TOKEN(STR_AMTBX_HOTKEY_PRESSED_PROMPT),\ + help = STRING_TOKEN(STR_AMTBX_HOTKEY_PRESSED_HELP),\ + flags = 0 | RESET_REQUIRED,\ + key = 0,\ + endcheckbox; + +#define AMT_CHECKBOX_AMTBX_SELECTSECTION\ + checkbox varid = SETUP_DATA.AmtbxSelectionScreen,\ + prompt = STRING_TOKEN(STR_AMTBX_SELECTION_SCREEN_PROMPT),\ + help = STRING_TOKEN(STR_AMTBX_SELECTION_SCREEN_HELP),\ + flags = 0 | RESET_REQUIRED,\ + key = 0,\ + endcheckbox; + + +#define AMT_CHECKBOX_HIDEUNCONFIGUREDMECONFIRM\ + checkbox varid = SETUP_DATA.HideUnConfigureMeConfirm,\ + prompt = STRING_TOKEN(STR_AMT_HIDE_CONFIRMATION_UNCONFIGURE_ME_PROMPT),\ + help = STRING_TOKEN(STR_AMT_HIDE_CONFIRMATION_UNCONFIGURE_ME_HELP),\ + flags = 0 | RESET_REQUIRED,\ + key = 0,\ + endcheckbox; + +#define AMT_CHECKBOX_MEBX_DEBUGMSG\ + checkbox varid = SETUP_DATA.MebxDebugMsg,\ + prompt = STRING_TOKEN(STR_AMT_MEBX_DEBUG_MSG_PROMPT),\ + help = STRING_TOKEN(STR_AMT_MEBX_DEBUG_MSG_HELP),\ + flags = 0 | RESET_REQUIRED,\ + key = 0,\ + endcheckbox; + +#define AMT_CHECKBOX_UNCONFIGUREME\ + checkbox varid = SETUP_DATA.UnConfigureMe,\ + prompt = STRING_TOKEN(STR_AMT_UNCONFIGURE_ME_PROMPT),\ + help = STRING_TOKEN(STR_AMT_UNCONFIGURE_ME_HELP),\ + flags = 0 | RESET_REQUIRED,\ + key = 0,\ + endcheckbox; + +#define AMT_NUMERIC_AMT_WAITTIMER\ + numeric varid = SETUP_DATA.AmtWaitTimer,\ + prompt = STRING_TOKEN (STR_AMT_WAIT_TIMER_PROMPT),\ + help = STRING_TOKEN (STR_AMT_WAIT_TIMER_HELP),\ + minimum = 0,\ + maximum = 65535,\ + step = 1,\ + default = 0,\ + endnumeric; + // Stepping of 0 equates to a manual entering + // of a value, otherwise it will auto-increment + // with a left/right arrow + +#define AMT_ONEOF_MEDISABLED\ + oneof varid = SETUP_DATA.MEDisabled,\ + prompt = STRING_TOKEN(STR_SET_ME_DISABLED_PROMPT),\ + help = STRING_TOKEN(STR_SET_ME_DISABLED_HELP),\ + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | RESET_REQUIRED, key = 0;\ + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = MANUFACTURING | RESET_REQUIRED, key = 0;\ + endoneof; + +#define AMT_ONEOF_ASF\ + oneof varid = SETUP_DATA.Asf,\ + prompt = STRING_TOKEN(STR_ASF_PROMPT),\ + help = STRING_TOKEN(STR_ASF_HELP),\ + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED, key = 0;\ + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\ + endoneof; + +#define AMT_CHECKBOX_AMT_CIRAREQUEST\ + checkbox varid = SETUP_DATA.AmtCiraRequest,\ + prompt = STRING_TOKEN(STR_AMT_CIRA_REQUEST_PROMPT),\ + help = STRING_TOKEN(STR_AMT_CIRA_REQUEST_HELP),\ + flags = 0 | RESET_REQUIRED,\ + key = 0,\ + endcheckbox; + +#define AMT_ONEOF_USB_PROVISION\ + oneof varid = SETUP_DATA.USBProvision,\ + prompt = STRING_TOKEN(STR_AMT_USB_CONFIGURE_PROMPT),\ + help = STRING_TOKEN(STR_AMT_USB_CONFIGURE_HELP),\ + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\ + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED, key = 0;\ + endoneof; + +#define AMT_ONEOF_FW_PROGRESS\ + oneof varid = SETUP_DATA.FWProgress,\ + prompt = STRING_TOKEN(STR_AMT_PET_PROGRESS_PROMPT),\ + help = STRING_TOKEN(STR_AMT_PET_PROGRESS_HELP),\ + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = RESET_REQUIRED, key = 0;\ + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\ + endoneof; + + +#define AMT_NUMERIC_AMT_CIRATIMEOUT\ + numeric varid = SETUP_DATA.AmtCiraTimeout, \ + prompt = STRING_TOKEN (STR_AMT_CIRA_TIMEOUT_PROMPT),\ + help = STRING_TOKEN (STR_AMT_CIRA_TIMEOUT_HELP),\ + flags = RESET_REQUIRED,\ + minimum = 0,\ + maximum = 255,\ + step = 1,\ + default = 0, \ + endnumeric; + // Stepping of 0 equates to a manual entering + // of a value, otherwise it will auto-increment + // with a left/right arrow + +#define AMT_ONEOF_WATCHDOG\ + oneof varid = SETUP_DATA.WatchDog,\ + prompt = STRING_TOKEN(STR_WATCHDOG_PROMPT),\ + help = STRING_TOKEN(STR_WATCHDOG_HELP),\ + option text = STRING_TOKEN(STR_DISABLED), value = 0, flags = DEFAULT | MANUFACTURING | RESET_REQUIRED, key = 0;\ + option text = STRING_TOKEN(STR_ENABLED), value = 1, flags = RESET_REQUIRED, key = 0;\ + endoneof; + +#define AMT_NUMERIC_WATCHDOG_TIMEROS\ + numeric varid = SETUP_DATA.WatchDogTimerOs,\ + prompt = STRING_TOKEN (STR_WATCHDOG_TIMER_OS_PROMPT),\ + help = STRING_TOKEN (STR_WATCHDOG_TIMER_OS_HELP),\ + minimum = 0,\ + maximum = 65535,\ + step = 1,\ + default = 0,\ + endnumeric; + +#define AMTSETUP_NUMERIC_WATCHDOG_TIMERBIOS\ + numeric varid = SETUP_DATA.WatchDogTimerBios,\ + prompt = STRING_TOKEN (STR_WATCHDOG_TIMER_BIOS_PROMPT),\ + help = STRING_TOKEN (STR_WATCHDOG_TIMER_BIOS_HELP),\ + minimum = 0,\ + maximum = 65535,\ + step = 1,\ + default = 0,\ + endnumeric; + +#endif // CONTROL_DEFINITION +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +#ifdef CONTROLS_WITH_DEFAULTS + AMT_ONEOF_AMT + AMT_CHECKBOX_AMTBX_HOTKEYPRESSED + AMT_CHECKBOX_AMTBX_SELECTSECTION + AMT_CHECKBOX_HIDEUNCONFIGUREDMECONFIRM + AMT_CHECKBOX_MEBX_DEBUGMSG + AMT_CHECKBOX_UNCONFIGUREME + AMT_NUMERIC_AMT_WAITTIMER + AMT_ONEOF_MEDISABLED + AMT_ONEOF_ASF + AMT_CHECKBOX_AMT_CIRAREQUEST + AMT_ONEOF_USB_PROVISION + AMT_ONEOF_FW_PROGRESS + AMT_NUMERIC_AMT_CIRATIMEOUT + AMT_ONEOF_WATCHDOG + AMT_NUMERIC_WATCHDOG_TIMEROS + AMTSETUP_NUMERIC_WATCHDOG_TIMERBIOS +#endif // CONTROLS_WITH_DEFAULTS + +//********************************************************************** +// Advanced - ASF Configuration Form +//********************************************************************** + +#ifdef ADVANCED_FORM_SET + +#ifdef FORM_SET_TYPEDEF + #include "AmtSetup.h" + #include <MeSetup.h> +#endif + + #ifdef FORM_SET_ITEM + // Define controls to be added to the main page of the formset + + #endif + + #ifdef FORM_SET_VARSTORE + varstore SETUP_AMT_FEATURES, + key = AUTO_ID(AMT_FEATURES_ID), + name = SetupAmtFeatures, + guid = SETUP_GUID; + #endif + + #ifdef FORM_SET_GOTO + // Define goto commands for the forms defined in this file + suppressif NOT ideqval SETUP_DATA.MeFirmwareInfo == NORMAL_MODE + AND NOT ideqval SETUP_DATA.MeFirmwareInfo == TEMP_DISABLE_MODE; + grayoutif ideqval SETUP_AMT_FEATURES.GrayOut == 1; + goto AMT_FORM_ID, + prompt = STRING_TOKEN(STR_AMT_FORM), + help = STRING_TOKEN(STR_AMT_FORM_HELP); + SUPPRESS_GRAYOUT_ENDIF + #endif + + #ifdef FORM_SET_FORM + + // Define forms + #ifndef AMT_FORM_SETUP + #define AMT_FORM_SETUP + + form formid = AUTO_ID(AMT_FORM_ID), + title = STRING_TOKEN(STR_AMT_FORM); + + grayoutif ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER; + AMT_ONEOF_AMT + endif; + + + grayoutif ideqval SETUP_DATA.Amt == 0 OR ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER; + AMT_CHECKBOX_AMTBX_HOTKEYPRESSED + AMT_CHECKBOX_AMTBX_SELECTSECTION + AMT_CHECKBOX_HIDEUNCONFIGUREDMECONFIRM + AMT_CHECKBOX_MEBX_DEBUGMSG + AMT_CHECKBOX_UNCONFIGUREME + AMT_NUMERIC_AMT_WAITTIMER + +#if TdtWrapper_SUPPORT + grayoutif ideqval TDT_VOLATILE_SETUP_DATA.TdtEnroll == 1; + AMT_ONEOF_MEDISABLED + endif; +#else + AMT_ONEOF_MEDISABLED +#endif + AMT_ONEOF_ASF + AMT_CHECKBOX_AMT_CIRAREQUEST + AMT_ONEOF_USB_PROVISION + AMT_ONEOF_FW_PROGRESS + endif; + + grayoutif ideqval SETUP_DATA.AmtCiraRequest == 0 OR ideqval SETUP_DATA.Amt == 0 OR ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER; + AMT_NUMERIC_AMT_CIRATIMEOUT + endif; + + grayoutif ideqval SETUP_DATA.Asf == 0 OR ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER; + AMT_ONEOF_WATCHDOG + endif; + + grayoutif ideqval SETUP_DATA.Asf == 0 OR ideqval SETUP_DATA.WatchDog == 0 OR ideqval SYSTEM_ACCESS.Access == SYSTEM_PASSWORD_USER; + AMT_NUMERIC_WATCHDOG_TIMEROS + AMTSETUP_NUMERIC_WATCHDOG_TIMERBIOS + endif; + + endform; + #endif // AMT_FORM_SETUP + #endif +#endif // ADVANCED_FORM_SET + +//************************************************************************* +//************************************************************************* +//** ** +//** (C)Copyright 1985-2010, 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/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.sdl b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.sdl new file mode 100644 index 0000000..8840618 --- /dev/null +++ b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.sdl @@ -0,0 +1,107 @@ +TOKEN + Name = "iAMT_Setup" + Value = "1" + Help = "Main switch to enable iAMT Setup support in Project" + TokenType = Boolean + TargetEQU = Yes + TargetMAK = Yes + Master = Yes +End + +PATH + Name = "AMT_SETUP_DIR" +End + +MODULE + Help = "Includes AmtSetup.mak to Project" + File = "AmtSetup.mak" +End + +ELINK + Name = "$(BUILD_DIR)\AmtSetup.sdb" + Parent = "SETUP_SDBS" + Priority = 30 + Help = "Includes generic iAMT setup screens to the project" + InvokeOrder = AfterParent +End + +ELINK + Name = "$(AMT_SETUP_DIR)\AmtSetup.sd" + Parent = "SETUP_DEFINITIONS" + Priority = 30 + InvokeOrder = AfterParent +End + +ELINK + Name = "iAMTProcessProceedToBootHook," + Parent = "ProcessProceedToBoot," + Help = "iAMT hook into TSE for TSE specific functions " + Token = "iAMT_SUPPORT" "=" "1" + InvokeOrder = BeforeParent +End + +ELINK + Name = "iAMTProcessEnterSetupHook," + Parent = "PostManagerHandShakeHook," + Help = "iAMT hook into TSE for TSE specific functions " + Token = "iAMT_SUPPORT" "=" "1" + InvokeOrder = AfterParent +End + +ELINK + Name = "$(BUILD_DIR)\AmtSetup.ffs" + Parent = "FV_MAIN" + InvokeOrder = AfterParent +End + +ELINK + Name = "$(BUILD_DIR)\AmtTseFunc.obj" + Parent = "AMITSE_Objects" + InvokeOrder = AfterParent +End + +ELINK + Name = "AMTSETUP_LIB" + InvokeOrder = ReplaceParent +End + +ELINK + Name = "iAMTProcessConInAvailabilityHook," + Parent = "ProcessConInAvailability," + Help = "iAMT hook into TSE for TSE specific functions " + Token = "iAMT_SUPPORT" "=" "1" + InvokeOrder = AfterParent +End + + +ELINK + Name = "AMTBypassPasswordCheck," + Parent = "ProcessConInAvailabilityHook," + Priority = 0 + InvokeOrder = AfterParent +End + +TOKEN + Name = "AMT_SMIFLASH_LIB" + Value = "$(BUILD_DIR)\AmtSetup.lib" + TokenType = Expression + TargetMAK = Yes +End + +ELINK + Name = "$(BUILD_DIR)\AmtSetup.lib" + Parent = "PRESERVE_LIB" + InvokeOrder = AfterParent +End + +ELINK + Name = "PreserveMEBXSyncData," + Parent = "SMIFlashPreUpdateList" + InvokeOrder = AfterParent +End + +ELINK + Name = "RestoreMEBXSyncData," + Parent = "SMIFlashEndUpdateList" + InvokeOrder = AfterParent +End diff --git a/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.uni b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.uni Binary files differnew file mode 100644 index 0000000..a0e84b7 --- /dev/null +++ b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.uni diff --git a/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtTseFunc.c b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtTseFunc.c new file mode 100644 index 0000000..ee41845 --- /dev/null +++ b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtTseFunc.c @@ -0,0 +1,447 @@ +//************************************************************************* +//************************************************************************* +//** ** +//** (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/SharkBayRefCodes/ME/AmtWrapper/AmtSetup/AmtTseFunc.c 3 5/14/14 9:49p Tristinchou $ +// +// $Revision: 3 $ +// +// $Date: 5/14/14 9:49p $ +//********************************************************************** +// Revision History +// ---------------- +// $Log: /Alaska/SOURCE/Modules/SharkBayRefCodes/ME/AmtWrapper/AmtSetup/AmtTseFunc.c $ +// +// 3 5/14/14 9:49p Tristinchou +// [TAG] EIP167030 +// [Category] Improvement +// [Description] Remove the variable runtime attribute and keep original +// attributes. +// +// 2 4/24/12 12:38a Klzhan +// Update modulepart to latest +// +// 1 2/08/12 1:08a Klzhan +// Initial Check in +// +// 1 2/25/11 1:44a Klzhan +// Initial Check-in +// +// 1 12/03/10 5:11a Klzhan +// Initial Check-in. +// +//********************************************************************** + +//<AMI_FHDR_START> +//--------------------------------------------------------------------------- +// Name: AMTTseFunc.c +// +// Description: AMT TSE Functions. +// +//--------------------------------------------------------------------------- +//<AMI_FHDR_END> +/* +#include <EFI.h> +#include "EfiDriverLib.h" +#include "EfiCommonLib.h" +#include "AmtSetup.h" +#include "token.h" +#include "EfiBootScript.h" +#include <AMIVfr.h> +#include <Core\EM\AMITSE\Inc\variable.h> + +#include EFI_PROTOCOL_CONSUMER (AmtPlatformPolicy) +#include EFI_PROTOCOL_CONSUMER (AmtWrapper) +#include EFI_PROTOCOL_CONSUMER (AlertStandardFormat) +#include EFI_PROTOCOL_DEFINITION (BootScriptSave) +#include EFI_GUID_DEFINITION (AcpiVariable) +*/ +#include <Setup.h> +#include <TseCommon.h> +//#include <ME.h> +//#include "Board\EM\AMT\Setup\AMT.h" +#include "variable.h" +#include "AmtWrapper\AmtWrapper.h" +#include "AlertStandardFormat\AlertStandardFormat.h" +#define SETUP_GUID \ + { 0xEC87D643, 0xEBA4, 0x4BB5, 0xA1, 0xE5, 0x3F, 0x3E, 0x36, 0xB2, 0x0D, 0xA9 } + +#define BOOT_MANAGER_GUID \ + { 0xB4909CF3, 0x7B93, 0x4751, 0x9B, 0xD8, 0x5B, 0xA8, 0x22, 0x0B, 0x9B, 0xB2 } + +#define EFI_BOOT_SCRIPT_SAVE_PROTOCOL_GUID \ + { \ + 0x470e1529, 0xb79e, 0x4e32, 0xa0, 0xfe, 0x6a, 0x15, 0x6d, 0x29, 0xf9, 0xb2 \ + } + +#define AMI_EFI_SOL_POST_MESSAGE_GUID \ + { 0xf42f3752, 0x12e, 0x4812, 0x99, 0xe6, 0x49, 0xf9, 0x43, 0x4, 0x84, 0x54 } + +#define EFI_GLOBAL_VARIABLE \ + {0x8BE4DF61,0x93CA,0x11d2,0xAA,0xD,0x0,0xE0,0x98,0x03,0x2B,0x8C} + +//EFI_BOOT_SCRIPT_SAVE_PROTOCOL *gBootScriptSave; +EFI_GUID gEfiAmtWrapperProtocolGuidTse = EFI_AMT_WRAPPER_PROTOCOL_GUID; +EFI_GUID gEfiAlertStandardFormatProtocolGuid = EFI_ALERT_STANDARD_FORMAT_PROTOCOL_GUID; +static UINTN ScriptDone = 0; +extern BOOLEAN gEnterSetup; + +VOID CheckForKey( EFI_EVENT Event, VOID *Context ); +VOID AMTBypassPasswordRestore(VOID); + +extern EFI_BOOT_SERVICES *gBS; +extern EFI_SYSTEM_TABLE *gST; +extern EFI_RUNTIME_SERVICES *gRT; +//******************************************************************************* +//<AMI_PHDR_START> +// Procedure: iAMTCheckForKey +// +// Description: +// +// Input: Event: Timer event. +// Context: Event context; always NULL +// +// Output: VOID +// +//<AMI_PHDR_END> +//******************************************************************************* +VOID iAMTCheckForKey( EFI_EVENT Event, VOID *Context) +{ + // Console Lock by uninstall Protocol, + // So remove this. + //CheckForKey((EFI_EVENT)NULL, NULL ); + +} + + +//******************************************************************************* +//<AMI_PHDR_START> +// Procedure: iAMTProcessProceedToBootHook +// +// Description: +// +// Input: Event: Timer event. +// Context: Event context; always NULL +// +// Output: VOID +// +//<AMI_PHDR_END> +//******************************************************************************* +VOID iAMTProcessProceedToBootHook ( EFI_EVENT Event, VOID *Context) +{ + AMT_WRAPPER_PROTOCOL *pAmtWrapper = NULL; + EFI_STATUS Status; + EFI_ALERT_STANDARD_FORMAT_PROTOCOL *AsfCheck; + EFI_ASF_BOOT_OPTIONS *mInternalAsfBootOptions; + + if (pAmtWrapper == NULL) { + Status = gBS->LocateProtocol(&gEfiAmtWrapperProtocolGuidTse, NULL, &pAmtWrapper); + } + + //case IDER + if (pAmtWrapper != NULL) { + if (pAmtWrapper->ActiveManagementEnableIdeR()||pAmtWrapper->ActiveManagementEnableSol()){ + Status = pAmtWrapper->BdsBootViaAsf(); + return; + } + } + + //case ASF + //Get the ASF options + //if set then we have to do and Asfboot + Status = gBS->LocateProtocol ( + &gEfiAlertStandardFormatProtocolGuid, + NULL, + &AsfCheck + ); + + if (EFI_ERROR (Status)) { +// DEBUG ((EFI_D_ERROR, "Info : Error gettings ASF protocol -> %r\n", Status)); + return; + } + + Status = AsfCheck->GetBootOptions (AsfCheck, &mInternalAsfBootOptions); + + if (mInternalAsfBootOptions->SubCommand != ASF_BOOT_OPTIONS_PRESENT) { + return; + }else{ + Status = pAmtWrapper->BdsBootViaAsf(); + return; + } +} + + +//******************************************************************************* +//<AMI_PHDR_START> +// Procedure: iAMTProcessEnterSetupHook +// +// Description: +// +// Input: Event: Timer event. +// Context: Event context; always NULL +// +// Output: VOID +// +//<AMI_PHDR_END> +//******************************************************************************* +VOID iAMTProcessEnterSetupHook ( EFI_EVENT Event, VOID *Context) +{ + EFI_STATUS Status; + UINT16 count = 0; + EFI_GUID BootManGuid = BOOT_MANAGER_GUID; + AMT_WRAPPER_PROTOCOL *pAmtWrapper = NULL; + + if (pAmtWrapper == NULL) + Status = gBS->LocateProtocol(&gEfiAmtWrapperProtocolGuidTse, NULL, &pAmtWrapper); + if (pAmtWrapper != NULL) { + if (pAmtWrapper->ActiveManagementEnableIdeR()) { + count = 0xFFFF; + } + } + if (count == 0xFFFF){ + gRT->SetVariable( L"BootManager", &BootManGuid, EFI_VARIABLE_BOOTSERVICE_ACCESS,sizeof(count),&count );} +} +//<AMI_PHDR_START> +//---------------------------------------------------------------------------- +// Procedure: AMTBypassPasswordRestore +// +// Description: This function is a hook called when TSE determines +// that SETUP utility has to be displayed. This function +// is available as ELINK. In the generic implementation +// setup password is prompted in this function. +// +// Input: VOID +// +// Output: VOID +// +//---------------------------------------------------------------------------- +//<AMI_PHDR_END> +BOOLEAN iAMTProcessConInAvailabilityHook (VOID) +{ + AMT_WRAPPER_PROTOCOL *pAmtWrapper = NULL; + EFI_HANDLE SolPostMessageHandle = NULL; + EFI_STATUS Status; + EFI_GUID gAmiEfiSolPostMessageGuid = AMI_EFI_SOL_POST_MESSAGE_GUID; + + // Handle EnterSetup Flag here !! + if (pAmtWrapper == NULL){ + Status = gBS->LocateProtocol(&gEfiAmtWrapperProtocolGuidTse, NULL, &pAmtWrapper); + } + if(EFI_ERROR(Status)) + return FALSE; + if(pAmtWrapper->ActiveManagementEnterSetup()) + gEnterSetup = TRUE; + + // Install Protocol here, Trig Callback event to show SOL message. + Status = gBS->InstallMultipleProtocolInterfaces( + &SolPostMessageHandle, + &gAmiEfiSolPostMessageGuid, + NULL, + NULL); + + + return FALSE; +} +//<AMI_PHDR_START> +//---------------------------------------------------------------------------- +// Procedure: AMTBypassPasswordRestore +// +// Description: This function is a hook called when TSE determines +// that SETUP utility has to be displayed. This function +// is available as ELINK. In the generic implementation +// setup password is prompted in this function. +// +// Input: VOID +// +// Output: VOID +// +//---------------------------------------------------------------------------- +//<AMI_PHDR_END> +VOID AMTBypassPasswordRestore(VOID) +{ + + EFI_STATUS Status; + UINT32 VarAttr; + UINTN VariableSize; + EFI_GUID gAmiTseSetupGuid = AMITSESETUP_GUID; + AMITSESETUP AmiTseData; +#if defined(TSE_ADVANCED_BIN_SUPPORT) + AMITSESETUP *pSetupVariable; +#endif + VariableSize = sizeof(AMITSESETUP); + Status = gRT->GetVariable ( L"AMITSESetupBackup", \ + &gAmiTseSetupGuid, \ + &VarAttr, \ + &VariableSize, \ + &AmiTseData ); + + // If we get this variable, restore it back + if (!EFI_ERROR (Status)) { + + VariableSize = sizeof(AMITSESETUP); + Status = gRT->SetVariable ( L"AMITSESetup", \ + &gAmiTseSetupGuid, \ + VarAttr, \ + VariableSize, \ + &AmiTseData ); + + VariableSize = 0; + Status = gRT->SetVariable ( L"AMITSESetupBackup", \ + &gAmiTseSetupGuid, \ + VarAttr, \ + VariableSize, \ + &AmiTseData ); +#if defined(TSE_ADVANCED_BIN_SUPPORT) + VariableSize = sizeof(AMITSESETUP); + pSetupVariable = VarGetVariable( VARIABLE_ID_AMITSESETUP, &VariableSize ); + if ( ( pSetupVariable == NULL ) || ( VariableSize != sizeof(AMITSESETUP) ) ) + pSetupVariable = VarGetNvram( VARIABLE_ID_AMITSESETUP, &VariableSize ); + MemCopy(pSetupVariable->UserPassword, AmiTseData.UserPassword, + sizeof(pSetupVariable->UserPassword)); + MemCopy(pSetupVariable->AdminPassword, AmiTseData.AdminPassword, + sizeof(pSetupVariable->AdminPassword)); + VarSetNvram( VARIABLE_ID_AMITSESETUP, \ + pSetupVariable, sizeof(AMITSESETUP)); +#endif + } + +} + +//<AMI_PHDR_START> +//---------------------------------------------------------------------------- +// Procedure: AMTBypassPasswordCheck +// +// Description: ELink to ProcessConInAvailabilityHook. +// If AMT Bypass user password, Delete AMITSESetup. +// +// Input: VOID +// +// Output: BOOLEAN. Should return TRUE if the screen was used to +// ask password; FALSE if the screen was not used to ask +// password. +// +//---------------------------------------------------------------------------- +//<AMI_PHDR_END> +BOOLEAN AMTBypassPasswordCheck(VOID) +{ + EFI_STATUS Status; + UINT32 VarAttr; + UINTN VariableSize; + EFI_GUID gAmiTseSetupGuid = AMITSESETUP_GUID; + AMITSESETUP AmiTseData; +#if defined(TSE_ADVANCED_BIN_SUPPORT) + AMITSESETUP *pSetupVariable; +#endif + UINTN VarSize=0; + EFI_ALERT_STANDARD_FORMAT_PROTOCOL *Asf; + EFI_ASF_BOOT_OPTIONS *mAsfBootOptions; + EFI_GUID gSetupGuid = SETUP_GUID; + mAsfBootOptions = NULL; + // + // Get Protocol for ASF + // + Status = gBS->LocateProtocol ( + &gEfiAlertStandardFormatProtocolGuid, + NULL, + &Asf + ); + if (EFI_ERROR (Status)) { +// DEBUG ((EFI_D_ERROR, "Info : Error gettings ASF protocol -> %r\n", Status)); + return FALSE; + } + + Status = Asf->GetBootOptions (Asf, &mAsfBootOptions); + // Configuration data resert. + if(mAsfBootOptions->BootOptions & 0x8000) + { + // Delete Variable. + VarAttr = 0; + VariableSize = 0; + Status = gRT->GetVariable( + L"Setup", + &gSetupGuid, + &VarAttr, + &VariableSize, + &VarSize ); + if( EFI_ERROR(Status) && (Status != EFI_BUFFER_TOO_SMALL) ) + VarAttr = EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS; + + VariableSize = 0; + gRT->SetVariable( + L"Setup", + &gSetupGuid, + VarAttr, + VariableSize, + &VarSize); + } + // ByPass Password + if(mAsfBootOptions->BootOptions & 0x0800) + { + VarAttr = 0; + VariableSize = sizeof(AMITSESETUP); + Status = gRT->GetVariable ( L"AMITSESetup", \ + &gAmiTseSetupGuid, \ + &VarAttr, \ + &VariableSize, \ + &AmiTseData ); + + // No Password installed just return + if (Status == EFI_NOT_FOUND) { + return 0; + } + // If exist , store a backup then delete AMITSESetup + + VariableSize = sizeof(AMITSESETUP); + Status = gRT->SetVariable ( L"AMITSESetupBackup", \ + &gAmiTseSetupGuid, \ + VarAttr, \ + VariableSize, \ + &AmiTseData ); + Status = gRT->SetVariable ( L"AMITSESetup", \ + &gAmiTseSetupGuid, \ + VarAttr, \ + 0, \ + &AmiTseData ); +#if defined(TSE_ADVANCED_BIN_SUPPORT) + pSetupVariable = VarGetVariable( VARIABLE_ID_AMITSESETUP, &VarSize ); + if ( ( pSetupVariable == NULL ) || ( VarSize != sizeof(AMITSESETUP) ) ) + pSetupVariable = VarGetNvram( VARIABLE_ID_AMITSESETUP, &VarSize ); + MemSet(pSetupVariable->UserPassword, \ + sizeof(pSetupVariable->UserPassword), 0); + MemSet(pSetupVariable->AdminPassword, \ + sizeof(pSetupVariable->AdminPassword), 0); + VarSetNvram( VARIABLE_ID_AMITSESETUP, \ + pSetupVariable, sizeof(AMITSESETUP)); +#endif + }else + { + // If not bypass password , check AMITSESetupBackup vairblae + AMTBypassPasswordRestore(); + } + + return 0; +} +//************************************************************************* +//************************************************************************* +//** ** +//** (C)Copyright 1985-2010, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//************************************************************************* +//*************************************************************************
\ No newline at end of file |