diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei | |
download | zprj-b7c51c9cf4864df6aabb99a1ae843becd577237c.tar.xz |
Diffstat (limited to 'Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei')
7 files changed, 560 insertions, 0 deletions
diff --git a/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.c b/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.c new file mode 100644 index 0000000..0a3ecc2 --- /dev/null +++ b/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.c @@ -0,0 +1,233 @@ +/*++ + This file contains a 'Sample Driver' and is licensed as such + under the terms of your license agreement with Intel or your + vendor. This file may be modified by the user, subject to + the additional terms of the license agreement +--*/ + +/*++ + +Copyright (c) 1999 - 2010 Intel Corporation. All rights reserved +This software and associated documentation (if any) is furnished +under a license and may only be used or copied in accordance +with the terms of the license. Except as permitted by such +license, no part of this software or documentation may be +reproduced, stored in a retrieval system, or transmitted in any +form or by any means without the express written consent of +Intel Corporation. + +Module Name: + + AmtPeiPolicyInit.c + +Abstract: + + This file is SampleCode for Intel AMT PEI Platform Policy initialzation. + +--*/ +#include "AmtPeiPolicyInit.h" + +#if EFI_SPECIFICATION_VERSION>0x20000 +#define __UEFI_HII__H__ +#define __HII_CONFIG_ACCESS__H__ +#include EFI_PROTOCOL_DEFINITION (HiiConfigAccess) +#else +#ifndef GUID_VARIABLE_DECLARATION +#define GUID_VARIABLE_DECLARATION(Variable, Guid) extern EFI_GUID Variable +#endif +#define __UEFI_HII__H__ +#define __HII_PROTOCOL_H__ +#define _HII_H_ +#endif + +#include <Setup.h> + +#include EFI_PPI_DEFINITION (Variable) +#include EFI_GUID_DEFINITION (MeBiosExtensionSetup) +#include <ActiveManagement\AlertStandardFormat\Heci\Common\AlertStandardFormatCommon.h> +#include <Guid\AmtForcePushPetPolicy\AmtForcePushPetPolicy.h> + +EFI_GUID gSetupGuid = SETUP_GUID; +EFI_GUID gEfiMeBiosExtensionSetupGuid = EFI_ME_BIOS_EXTENSION_SETUP_GUID; +CHAR16 gEfiMeBiosExtensionSetupName[] = EFI_ME_BIOS_EXTENSION_SETUP_VARIABLE_NAME; +EFI_GUID gPeiReadOnlyVariablePpiGuid = PEI_READ_ONLY_VARIABLE_ACCESS_PPI_GUID; +EFI_GUID gAmtForcePushPetPolicyGuid = AMT_FORCE_PUSH_PET_POLICY_GUID; + +EFI_STATUS +CreateAmtForcePushPetPolicyHob( + IN EFI_PEI_SERVICES **PeiServices +); + +// +// Function implementations +// +EFI_STATUS +AmtPeiPolicyInitEntryPoint ( + IN EFI_FFS_FILE_HEADER *FfsHeader, + IN EFI_PEI_SERVICES **PeiServices + ) +/*++ + +Routine Description: + + Initilize Intel AMT PEI Platform Policy + +Arguments: + + FfsHeader Pointer to Firmware File System file header. + PeiServices General purpose services available to every PEIM. + +Returns: + + EFI_STATUS + +--*/ +{ + EFI_STATUS Status; + PEI_AMT_PLATFORM_POLICY_PPI *AmtPlatformPolicyPpi; + EFI_PEI_PPI_DESCRIPTOR *AmtPlatformPolicyPpiDesc; + EFI_PEI_READ_ONLY_VARIABLE_PPI *VariableServices; + UINTN VariableSize; + SETUP_DATA SetupData; + ME_BIOS_EXTENSION_SETUP MeBiosExtensionSetupData; + // + // Allocate descriptor and PPI structures + // + AmtPlatformPolicyPpi = (PEI_AMT_PLATFORM_POLICY_PPI *) AllocateZeroPool (sizeof (PEI_AMT_PLATFORM_POLICY_PPI)); + ASSERT (AmtPlatformPolicyPpi != NULL); + if (AmtPlatformPolicyPpi == NULL) { + return EFI_OUT_OF_RESOURCES; + } + + AmtPlatformPolicyPpiDesc = (EFI_PEI_PPI_DESCRIPTOR *) AllocateZeroPool (sizeof (EFI_PEI_PPI_DESCRIPTOR)); + ASSERT (AmtPlatformPolicyPpiDesc != NULL); + if (AmtPlatformPolicyPpiDesc == NULL) { + return EFI_OUT_OF_RESOURCES; + } + + // + // Initialize the PPI + // + AmtPlatformPolicyPpiDesc->Flags = EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST; + AmtPlatformPolicyPpiDesc->Guid = &gPeiAmtPlatformPolicyPpiGuid; + + // Locate Variable Ppi + Status = (*PeiServices)->LocatePpi (PeiServices, &gPeiReadOnlyVariablePpiGuid, 0, NULL, &VariableServices); + + // + // Make sure we have a PPI, if not, just return. + // + if (!VariableServices) { + return EFI_SUCCESS; + } + // + // Get Setup Variable + // + + VariableSize = sizeof (SETUP_DATA); + Status = VariableServices->PeiGetVariable ( + PeiServices, + L"Setup", + &gSetupGuid, + NULL, + &VariableSize, + &SetupData + ); + // + // Update the REVISION number + // + AmtPlatformPolicyPpi->Revision = PEI_AMT_PLATFORM_POLICY_PPI_REVISION_5; + + // + // Initialize the Platform Configuration + // + if (Status != EFI_SUCCESS) { + AmtPlatformPolicyPpi->iAmtEnabled = 0; + AmtPlatformPolicyPpi->WatchDog = 0; + AmtPlatformPolicyPpi->WatchDogTimerBios = 0; + AmtPlatformPolicyPpi->WatchDogTimerOs = 0; + AmtPlatformPolicyPpi->AsfEnabled = 1; + AmtPlatformPolicyPpi->FWProgress = 1; + } else { + AmtPlatformPolicyPpi->iAmtEnabled = SetupData.Amt; + AmtPlatformPolicyPpi->WatchDog = SetupData.WatchDog; + AmtPlatformPolicyPpi->WatchDogTimerBios = SetupData.WatchDogTimerBios; + AmtPlatformPolicyPpi->WatchDogTimerOs = SetupData.WatchDogTimerOs; + AmtPlatformPolicyPpi->AsfEnabled = SetupData.Asf; + AmtPlatformPolicyPpi->FWProgress = SetupData.FWProgress; + } + + // + // Get BIOS Sync-up data from MEBx to AMT platform policy + // + VariableSize = sizeof (MeBiosExtensionSetupData); + Status = VariableServices->PeiGetVariable( + PeiServices, + gEfiMeBiosExtensionSetupName, + &gEfiMeBiosExtensionSetupGuid, + NULL, + &VariableSize, + &MeBiosExtensionSetupData + ); + if (Status != EFI_SUCCESS) { + AmtPlatformPolicyPpi->ManageabilityMode = 0; + } else { + AmtPlatformPolicyPpi->ManageabilityMode = MeBiosExtensionSetupData.PlatformMngSel; + } + +// Debug UpdatePeiAmtPlatformPolicy (PeiServices, AmtPlatformPolicyPpi); + + AmtPlatformPolicyPpiDesc->Ppi = AmtPlatformPolicyPpi; + // + // Install the ME PEI Platform Policy PPI + // + Status = (**PeiServices).InstallPpi (PeiServices, AmtPlatformPolicyPpiDesc); + ASSERT_PEI_ERROR (PeiServices, Status); + + CreateAmtForcePushPetPolicyHob(PeiServices); + + return Status; +} +EFI_FRAMEWORK_MESSAGE_TYPE mAmtForcePushPetPolicy[] = { + EfiAsfMessageChassisIntrusion, + EfiAsfMessageUserAuthenticationInvalid, + EfiAsfMessageHddAuthenticationInvalid, +}; + +//<AMI_PHDR_START> +//---------------------------------------------------------------------------- +// +// Procedure: CreateAmtForcePushPetPolicyHob +// +// Description: Create AMT force push pet policy HOB. +// +// Input: IN EFI_PEI_SERVICES **PeiServices, +// +// Output: EFI_STATUS +//---------------------------------------------------------------------------- +//<AMI_PHDR_END> +EFI_STATUS +CreateAmtForcePushPetPolicyHob( +IN EFI_PEI_SERVICES **PeiServices +) +{ + EFI_STATUS Status; + EFI_HOB_GUID_TYPE *Hob; + + // Build the GUID'd HOB for DXE + Status = (*PeiServices)->CreateHob ( + PeiServices, + EFI_HOB_TYPE_GUID_EXTENSION, + (UINT16) (sizeof (EFI_HOB_GUID_TYPE) + sizeof(mAmtForcePushPetPolicy)), + &Hob + ); + if (EFI_ERROR (Status))return Status; + + ((EFI_HOB_GUID_TYPE *)(Hob))->Name = gAmtForcePushPetPolicyGuid; + + Hob++; + + GlueCopyMem (Hob, mAmtForcePushPetPolicy, sizeof(mAmtForcePushPetPolicy)); + + return EFI_SUCCESS; +} diff --git a/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.cif b/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.cif new file mode 100644 index 0000000..c6c717e --- /dev/null +++ b/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.cif @@ -0,0 +1,13 @@ +<component> + name = "AmtPeiPolicyInit" + category = ModulePart + LocalRoot = "Board\EM\MeWrapper\AmtWrapper\AmtPlatformPolicy\Pei" + RefName = "AmtPeiPolicyInit" +[files] +"AmtPeiPolicyInit.c" +"AmtPeiPolicyInit.h" +"AmtPeiPolicyInit.sdl" +"AmtPeiPolicyInit.mak" +"AmtPeiPolicyInit.dxs" +"AmtPeiPolicyInit.inf" +<endComponent> diff --git a/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.dxs b/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.dxs new file mode 100644 index 0000000..abfebdd --- /dev/null +++ b/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.dxs @@ -0,0 +1,35 @@ +/*++ + This file contains a 'Sample Driver' and is licensed as such + under the terms of your license agreement with Intel or your + vendor. This file may be modified by the user, subject to + the additional terms of the license agreement +--*/ + +/*++ + +Copyright (c) 1999 - 2010 Intel Corporation. All rights reserved +This software and associated documentation (if any) is furnished +under a license and may only be used or copied in accordance +with the terms of the license. Except as permitted by such +license, no part of this software or documentation may be +reproduced, stored in a retrieval system, or transmitted in any +form or by any means without the express written consent of +Intel Corporation. + +Module Name: + + MePeiPolicyInit.dxs + +Abstract: + + Dependency expression source file. + +--*/ + +#include "EfiDepex.h" + +DEPENDENCY_START + TRUE +DEPENDENCY_END + + diff --git a/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.h b/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.h new file mode 100644 index 0000000..a4426bf --- /dev/null +++ b/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.h @@ -0,0 +1,60 @@ +/*++ + This file contains a 'Sample Driver' and is licensed as such + under the terms of your license agreement with Intel or your + vendor. This file may be modified by the user, subject to + the additional terms of the license agreement +--*/ + +/*++ + +Copyright (c) 1999 - 2010 Intel Corporation. All rights reserved +This software and associated documentation (if any) is furnished +under a license and may only be used or copied in accordance +with the terms of the license. Except as permitted by such +license, no part of this software or documentation may be +reproduced, stored in a retrieval system, or transmitted in any +form or by any means without the express written consent of +Intel Corporation. + +Module Name: + + AmtPeiPolicyInit.h + +Abstract: + + Header file for the AmtPeiPolicyInit PEIM. + +--*/ +#ifndef _AMT_PEI_PLATFORM_POLICY_H_ +#define _AMT_PEI_PLATFORM_POLICY_H_ + +#if !defined(EDK_RELEASE_VERSION) || (EDK_RELEASE_VERSION < 0x00020000) +#include "EdkIIGluePeim.h" +#endif + +#include EFI_PPI_DEFINITION (AmtPlatformPolicyPei) +// Debug #include "AmtPlatformPolicyUpdatePeiLib.h" + +EFI_STATUS +AmtPeiPolicyInitEntryPoint ( + IN EFI_FFS_FILE_HEADER *FfsHeader, + IN EFI_PEI_SERVICES **PeiServices + ) +/*++ + +Routine Description: + + Initilize Intel AMT PEI Platform Policy + +Arguments: + + FfsHeader Pointer to Firmware File System file header. + PeiServices General purpose services available to every PEIM. + +Returns: + + EFI_STATUS + +--*/ +; +#endif diff --git a/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.inf b/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.inf new file mode 100644 index 0000000..f039471 --- /dev/null +++ b/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.inf @@ -0,0 +1,81 @@ +# +#/*++ +# This file contains a 'Sample Driver' and is licensed as such +# under the terms of your license agreement with Intel or your +# vendor. This file may be modified by the user, subject to +# the additional terms of the license agreement +#--*/ +# +#/*++ +# +# Copyright (c) 1999 - 2010 Intel Corporation. All rights reserved +# This software and associated documentation (if any) is furnished +# under a license and may only be used or copied in accordance +# with the terms of the license. Except as permitted by such +# license, no part of this software or documentation may be +# reproduced, stored in a retrieval system, or transmitted in any +# form or by any means without the express written consent of +# Intel Corporation. +# +# Module Name: +# +# AmtPeiPolicyInit.inf +# +# Abstract: +# +# Component description file for the AmtPeiPolicyInit PEIM. +# +#--*/ + + +[defines] +BASE_NAME = AmtPeiPolicyInit +FILE_GUID = A05ECE52-15A8-424e-BFD3-FCF3D566A09C +COMPONENT_TYPE = PE32_PEIM + +[sources.common] + AmtPeiPolicyInit.c + AmtPeiPolicyInit.h +# +# Edk II Glue Driver Entry Point +# + EdkIIGluePeimEntryPoint.c + +[includes.common] + $(EFI_SOURCE)\$(PROJECT_ME_ROOT) + +# +# EDK II Glue Library utilizes some standard headers from EDK +# + $(EDK_SOURCE)\Foundation + $(EDK_SOURCE)\Foundation\Core\Dxe + $(EDK_SOURCE)\Foundation\Efi + $(EDK_SOURCE)\Foundation\Efi\Include + $(EDK_SOURCE)\Foundation\Framework + $(EDK_SOURCE)\Foundation\Framework\Include + $(EDK_SOURCE)\Foundation\Include + $(EDK_SOURCE)\Foundation\Include\IndustryStandard + $(EDK_SOURCE)\Foundation\Include\Pei + $(EDK_SOURCE)\Foundation\Library\Dxe\Include + $(EDK_SOURCE)\Foundation\Library\EdkIIGlueLib\Include + +[libraries.common] + MeLibPpi + PeiLib + EdkIIGlueBaseLib + EdkIIGlueBaseMemoryLib + EdkIIGluePeiDebugLibReportStatusCode + EdkIIGluePeiReportStatusCodeLib + EdkIIGluePeiServicesLib + EdkIIGluePeiMemoryAllocationLib + +[nmake.common] + IMAGE_ENTRY_POINT= _ModuleEntryPoint + DPX_SOURCE=AmtPeiPolicyInit.dxs + C_FLAGS = $(C_FLAGS) /D "__EDKII_GLUE_MODULE_ENTRY_POINT__=AmtPeiPolicyInitEntryPoint" \ + /D __EDKII_GLUE_BASE_LIB__ \ + /D __EDKII_GLUE_BASE_MEMORY_LIB__ \ + /D __EDKII_GLUE_PEI_DEBUG_LIB_REPORT_STATUS_CODE__ \ + /D __EDKII_GLUE_PEI_REPORT_STATUS_CODE_LIB__ \ + /D __EDKII_GLUE_PEI_SERVICES_LIB__ \ + /D __EDKII_GLUE_PEI_MEMORY_ALLOCATION_LIB__ \ diff --git a/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.mak b/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.mak new file mode 100644 index 0000000..ee122c7 --- /dev/null +++ b/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.mak @@ -0,0 +1,113 @@ +#************************************************************************* +#************************************************************************* +#** ** +#** (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/AmtPlatformPolicy/AmtPeiPolicyInit/AmtPeiPolicyInit.mak 2 2/23/12 8:59a Klzhan $ +# +# $Revision: 2 $ +# +# $Date: 2/23/12 8:59a $ +#********************************************************************** +# Revision History +# ---------------- +# $Log: /Alaska/SOURCE/Modules/SharkBayRefCodes/ME/AmtWrapper/AmtPlatformPolicy/AmtPeiPolicyInit/AmtPeiPolicyInit.mak $ +# +# 2 2/23/12 8:59a Klzhan +# Support New EDK +# +# 1 2/08/12 1:09a Klzhan +# +# 1 3/29/11 5:03a Klzhan +# +# 1 2/25/11 1:45a Klzhan +# Initial Check-in +# +# 1 12/03/10 5:11a Klzhan +# Initial Check-in. +# +# +#********************************************************************** +#<AMI_FHDR_START> +# +# Name: AmtPlatformPolicy.mak +# +# Description: +# +#<AMI_FHDR_END> +#********************************************************************** +All : AmtPeiPolicyInit + +AmtPeiPolicyInit : $(BUILD_DIR)\AmtPeiPolicyInit.mak AmtPeiPolicyInitBin + +$(BUILD_DIR)\AmtPeiPolicyInit.mak : $(AmtPeiPlatformPolicy_DIR)\$(@B).cif $(AmtPeiPlatformPolicy_DIR)\$(@B).mak $(BUILD_RULES) + $(CIF2MAK) $(AmtPeiPlatformPolicy_DIR)\$(@B).cif $(CIF2MAK_DEFAULTS) + +AmtPeiPlatformPolicy_INCLUDES=\ + $(EDK_INCLUDES) \ + $(ME_INCLUDES) \ + $(MISCFRAMEWORK_INCLUDES) \ + $(NB_INCLUDES)\ + $(SB_INCLUDES)\ + /I$(PROJECT_DIR)\ + /IInclude\ + + +AmtPeiPlatformPolicy_DEFINES=$(MY_DEFINES)\ + /D"__EDKII_GLUE_MODULE_ENTRY_POINT__=AmtPeiPolicyInitEntryPoint"\ + /D __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__ \ + /D __EDKII_GLUE_PEI_DEBUG_LIB_REPORT_STATUS_CODE__ \ + /D __EDKII_GLUE_PEI_REPORT_STATUS_CODE_LIB__\ + /D __EDKII_GLUE_PEI_SERVICES_LIB__ \ + /D __EDKII_GLUE_BASE_PCI_LIB_PCI_EXPRESS__ \ + +AmtPeiPlatformPolicy_LIBS=\ + $(EDKPROTOCOLLIB)\ + $(MeLibPpi_LIB)\ + $(EdkIIGlueBaseLib_LIB)\ + $(EdkIIGlueBaseLibIA32_LIB)\ + $(EdkIIGluePeiServicesLib_LIB)\ + $(EdkIIGluePeiHobLib_LIB)\ + $(EdkIIGluePeiMemoryAllocationLib_LIB)\ + $(EdkIIGlueBaseIoLibIntrinsic_LIB)\ + $(EdkIIGluePeiDebugLibReportStatusCode_LIB)\ + $(EdkIIGluePeiReportStatusCodeLib_LIB)\ + $(PEILIB) + + +AmtPeiPolicyInitBin : $(AmtPeiPlatformPolicy_LIBS) + $(MAKE) /$(MAKEFLAGS) $(EDKIIGLUE_DEFAULTS)\ + /f $(BUILD_DIR)\AmtPeiPolicyInit.mak all\ + GUID=A05ECE52-15A8-424e-BFD3-FCF3D566A09C\ + "MY_INCLUDES = $(AmtPeiPlatformPolicy_INCLUDES)" \ + "MY_DEFINES=$(AmtPeiPlatformPolicy_DEFINES)"\ + ENTRY_POINT=AmtPeiPolicyInitEntryPoint\ + TYPE=PEIM\ + EDKIIModule=PEIM\ + DEPEX1=$(AmtPeiPlatformPolicy_DIR)\AmtPeiPolicyInit.dxs\ + DEPEX1_TYPE=EFI_SECTION_PEI_DEPEX\ + COMPRESS=0 + +#************************************************************************* +#************************************************************************* +#** ** +#** (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/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.sdl b/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.sdl new file mode 100644 index 0000000..15734dd --- /dev/null +++ b/Board/EM/MeWrapper/AmtWrapper/AmtPlatformPolicy/Pei/AmtPeiPolicyInit.sdl @@ -0,0 +1,25 @@ +TOKEN + Name = "AmtPeiPlatformPolicy_SUPPORT" + Value = "1" + Help = "Main switch to enable AmtPlatformPolicy support in Project" + TokenType = Boolean + TargetEQU = Yes + TargetMAK = Yes + Master = Yes +End + +PATH + Name = "AmtPeiPlatformPolicy_DIR" +End + +MODULE + Help = "Includes AmtPlatformPolicy.mak to Project" + File = "AmtPeiPolicyInit.mak" +End + +ELINK + Name = "$(BUILD_DIR)\AmtPeiPolicyInit.ffs" + Parent = "FV_BB" + InvokeOrder = AfterParent +End + |