summaryrefslogtreecommitdiff
path: root/Board/EM/MeWrapper/AmtWrapper/AmtSetup
diff options
context:
space:
mode:
Diffstat (limited to 'Board/EM/MeWrapper/AmtWrapper/AmtSetup')
-rw-r--r--Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSMIFlashElink.c128
-rw-r--r--Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.c236
-rw-r--r--Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.cif16
-rw-r--r--Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.dxs70
-rw-r--r--Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.h74
-rw-r--r--Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.mak166
-rw-r--r--Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.sd382
-rw-r--r--Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.sdl107
-rw-r--r--Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.unibin0 -> 15810 bytes
-rw-r--r--Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtTseFunc.c447
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
new file mode 100644
index 0000000..a0e84b7
--- /dev/null
+++ b/Board/EM/MeWrapper/AmtWrapper/AmtSetup/AmtSetup.uni
Binary files differ
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