From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga14.intel.com (mga14.intel.com []) by mx.groups.io with SMTP id smtpd.web11.10509.1620726902245449258 for ; Tue, 11 May 2021 02:55:03 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=fail (domain: intel.com, ip: , mailfrom: nathaniel.l.desimone@intel.com) IronPort-SDR: rO+rP0Pv1RNXmmWs7GhNtnExUX+Z9ob+2TVlYslkrheGbi/FJpZBxmX9ZuHZBrTXil36+jdrtv 6IN5nhMUF3jA== X-IronPort-AV: E=McAfee;i="6200,9189,9980"; a="199081241" X-IronPort-AV: E=Sophos;i="5.82,290,1613462400"; d="scan'208";a="199081241" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 May 2021 02:55:02 -0700 IronPort-SDR: W4C6kCywKw03pvga3C3zuKFPor9VQz22QHBYTcrUG2xqez79KrrKOEEW8fpq0G/0Xdjt8i7F4y 6bq5WYYBtxsg== X-IronPort-AV: E=Sophos;i="5.82,290,1613462400"; d="scan'208";a="436576731" Received: from nldesimo-desk1.amr.corp.intel.com ([10.209.66.229]) by orsmga008-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 May 2021 02:55:00 -0700 From: "Nate DeSimone" To: devel@edk2.groups.io Cc: Chasel Chiu , Mike Kinney , Isaac Oram , Mohamed Abbas , Michael Kubacki , Zachary Bobroff , Harikrishna Doppalapudi Subject: [edk2-non-osi] [PATCH V1 2/9] PurleySiliconBinPkg/FV: Add RELEASE FvLateSilicon Date: Tue, 11 May 2021 02:54:27 -0700 Message-Id: <20210511095434.12575-3-nathaniel.l.desimone@intel.com> X-Mailer: git-send-email 2.27.0.windows.1 In-Reply-To: <20210511095434.12575-1-nathaniel.l.desimone@intel.com> References: <20210511095434.12575-1-nathaniel.l.desimone@intel.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Cc: Chasel Chiu Cc: Mike Kinney Cc: Isaac Oram Cc: Mohamed Abbas Cc: Michael Kubacki Cc: Zachary Bobroff Cc: Harikrishna Doppalapudi Signed-off-by: Nate DeSimone --- .../FV/FvLateSilicon/RELEASE/FVLATESILICON.Fv | Bin 0 -> 429688 bytes .../RELEASE/FVLATESILICON.Fv.txt | 17 + .../FvLateSilicon/RELEASE/FvLateSilicon.inf | 3811 +++++++++++++++++ 3 files changed, 3828 insertions(+) create mode 100644 Silicon/Intel/PurleySiliconBinPkg/FV/FvLateSilicon/RELEASE/FVLATESILICON.Fv create mode 100644 Silicon/Intel/PurleySiliconBinPkg/FV/FvLateSilicon/RELEASE/FVLATESILICON.Fv.txt create mode 100644 Silicon/Intel/PurleySiliconBinPkg/FV/FvLateSilicon/RELEASE/FvLateSilicon.inf diff --git a/Silicon/Intel/PurleySiliconBinPkg/FV/FvLateSilicon/RELEASE/FVLATESILICON.Fv b/Silicon/Intel/PurleySiliconBinPkg/FV/FvLateSilicon/RELEASE/FVLATESILICON.Fv new file mode 100644 index 0000000000000000000000000000000000000000..4c919ad135c911a903b8e6f8e53122723c7382fa GIT binary patch literal 429688 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 literal 0 HcmV?d00001 diff --git a/Silicon/Intel/PurleySiliconBinPkg/FV/FvLateSilicon/RELEASE/FVLATESILICON.Fv.txt b/Silicon/Intel/PurleySiliconBinPkg/FV/FvLateSilicon/RELEASE/FVLATESILICON.Fv.txt new file mode 100644 index 0000000..246a95b --- /dev/null +++ b/Silicon/Intel/PurleySiliconBinPkg/FV/FvLateSilicon/RELEASE/FVLATESILICON.Fv.txt @@ -0,0 +1,17 @@ +EFI_FV_TOTAL_SIZE = 0x68e78 +EFI_FV_TAKEN_SIZE = 0x68e78 +0x00000078 56D60EE4-5CCF-485C-BBBB-FEDAE2B24146 +0x00002CF0 D96A2393-8790-4BAA-9CEB-42533F016EE9 +0x00005F88 62D171CB-78CD-4480-8678-C6A2A797A8DE +0x0000D668 40BEAB40-CECE-4909-B133-20A413AE19E9 +0x00029330 274F0C8F-9E57-41D8-9966-29CCD48D31C2 +0x00029ED0 A3FF0EF5-0C28-42F5-B544-8C7DE1E80014 +0x00039570 06D20D84-A032-4E25-969A-346D255E46D1 +0x0003CBF8 870E0F5A-1981-45F6-AE26-0391425CC46F +0x00040698 63809859-F029-41C3-9F34-EEEB9EA787A5 +0x00048B38 D58EBCE1-AF26-488D-BE66-C164417F8C13 +0x0004C948 DE23ACEE-CF55-4FB6-AA77-984AB53DE823 +0x00057750 B0D6ED53-B844-43F5-BD2F-61095264E77E +0x00060038 D7B10D4E-67E6-4C74-83E9-F9AF0ACC33CC +0x00065D60 A0BAD9F7-AB78-491B-B583-C52B7F84B9E0 +0x000671D0 27F4917B-A707-4AAD-9676-26DF168CBF0D diff --git a/Silicon/Intel/PurleySiliconBinPkg/FV/FvLateSilicon/RELEASE/FvLateSilicon.inf b/Silicon/Intel/PurleySiliconBinPkg/FV/FvLateSilicon/RELEASE/FvLateSilicon.inf new file mode 100644 index 0000000..79e79f6 --- /dev/null +++ b/Silicon/Intel/PurleySiliconBinPkg/FV/FvLateSilicon/RELEASE/FvLateSilicon.inf @@ -0,0 +1,3811 @@ +### @file +# +# Copyright (c) 2018 - 2021, Intel Corporation. All rights reserved.
+# +# This program and the accompanying materials are licensed and made available under +# the terms and conditions of the BSD License which accompanies this distribution. +# The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +### + +[Defines] + INF_VERSION = 0x00010017 + BASE_NAME = FvLateSilicon + FILE_GUID = 5EB4D9EE-0296-4353-83AB-076AA655EAEC + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + +[Binaries] + FV|FVLATESILICON.Fv + +# # +# # This file contains 'Framework Code' and is licensed as such +# # under the terms of your license agreement with Intel or your +# # vendor. This file may not be modified, except as allowed by +# # additional terms of your license agreement. +# # +# # +# ## @file +# # +# # Register Access Protocol installation for Runtime +# # +# # Copyright (c) 2011 - 2014, 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. +# # +# ## +# +# # DO NOT EDIT +# # FILE auto-generated +# +# [Defines] +# INF_VERSION = 0x00010017 +# BASE_NAME = RegAccessDxe +# FILE_GUID = 56D60EE4-5CCF-485C-BBBB-FEDAE2B24146 +# MODULE_TYPE = DXE_RUNTIME_DRIVER +# VERSION_STRING = 1.0 +# ENTRY_POINT = UsraDxeInit +# +[Packages.X64] + MdePkg/MdePkg.dec + PurleyRefreshSiliconPkg/SiPkg.dec + +# [Binaries.X64] +# PE32|RegAccessDxe.efi +# DXE_DEPEX|RegAccessDxe.depex +# DISPOSABLE|RegAccessDxe.pdb +# +[PatchPcd.X64] + gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0x0000000080000000|0x1ccc # 0x1C10+0xbc + + +# [Protocols.X64] +# gUsraProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gPcdProtocolGuid +# +# ## CONSUMES +# gEfiPcdProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiDevicePathProtocolGuid +# +# ## UNDEFINED +# gEfiDebugPortProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiLoadedImageProtocolGuid +# +# ## SOMETIMES_PRODUCES +# gEfiDriverBindingProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiSimpleTextOutProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGraphicsOutputProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiHiiFontProtocolGuid +# +# ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled +# gEfiUgaDrawProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentNameProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentName2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfigurationProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfiguration2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnosticsProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnostics2ProtocolGuid +# +# gEfiIioUdsProtocolGuid +# +# +# [Ppis.X64] +# +# [Guids.X64] +# gEfiCpRcPkgTokenSpaceGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVTUTF8Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100PlusGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPcAnsiGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiUartDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiSasDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventReadyToBootGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventLegacyBootGuid +# +# ## SOMETIMES_CONSUMES ## Variable +# gEfiGlobalVariableGuid +# +# ## CONSUMES ## SystemTable +# gEfiHobListGuid +# +# +[PcdEx.X64] + gEfiCpRcPkgTokenSpaceGuid.PcdPcieMmcfgTablePtr + + +# [LibraryClasses.X64] +# ## @LIB_INSTANCES +# # MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf +# # MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +# # MdePkg/Library/DxePcdLib/DxePcdLib.inf +# # MdePkg/Library/BaseLib/BaseLib.inf +# # MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf +# # MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf +# # MdePkg/Library/BasePrintLib/BasePrintLib.inf +# # MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf +# # MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf +# # MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf +# # MdePkg/Library/UefiLib/UefiLib.inf +# # PurleyRcPkg/Library/UsraRegisterFilterLibNull/UsraRegisterFilterLibNull.inf +# # PurleyRcPkg/Library/USRATraceLibNull/USRATraceLibNull.inf +# # MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf +# # PurleyRcPkg/Library/PcieAddressLib/PcieAddressLib.inf +# # PurleySktPkg/Library/CsrToPcieLib/CsrToPcieDxeLib.inf +# # MdePkg/Library/BaseS3BootScriptLibNull/BaseS3BootScriptLibNull.inf +# # MdePkg/Library/DxeHobLib/DxeHobLib.inf +# # PurleyRcPkg/Library/UsraAccessLib/UsraAccessLib.inf +# +# [Depex.X64] +# # (TRUE) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid) AND (gEfiIioUdsProtocolGuid) +# +# +# +# +# +# [BuildOptions.X64] +# ## @AsBuilt +# ## MSFT:RELEASE_VS2015x86_X64_OPTROM_FLAGS = -e +# ## MSFT:RELEASE_VS2015x86_X64_VFR_FLAGS = -n +# ## MSFT:RELEASE_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for +# ## MSFT:RELEASE_VS2015x86_X64_GENFW_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG +# ## MSFT:RELEASE_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE +# ## MSFT:RELEASE_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi +# ## MSFT:RELEASE_VS2015x86_X64_ASL_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE /Zi /Gm +# ## MSFT:RELEASE_VS2015x86_X64_NASMB_FLAGS = -f bin +# ## MSFT:RELEASE_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_APP_FLAGS = /nologo /E /TC -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_DLINK2_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG /ALIGN:4096 +# ## MSFT:RELEASE_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for +# ## MSFT:RELEASE_VS2015x86_X64_MAKE_FLAGS = /nologo +# ## MSFT:RELEASE_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny +# ## MSFT:RELEASE_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 +# # +# # This file contains 'Framework Code' and is licensed as such +# # under the terms of your license agreement with Intel or your +# # vendor. This file may not be modified, except as allowed by +# # additional terms of your license agreement. +# # +# # +# ## @file +# # +# # Register Access Protocol installation for SMM +# # +# # Copyright (c) 2011 - 2015, 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. +# # +# ## +# ## +# +# # DO NOT EDIT +# # FILE auto-generated +# +# [Defines] +# INF_VERSION = 0x00010017 +# BASE_NAME = RegAccessSMM +# FILE_GUID = D96A2393-8790-4BAA-9CEB-42533F016EE9 +# MODULE_TYPE = DXE_SMM_DRIVER +# VERSION_STRING = 1.0 +# PI_SPECIFICATION_VERSION = 0x0001000A +# ENTRY_POINT = UsraSmmInit +# +[Packages.X64] + MdePkg/MdePkg.dec + PurleyRefreshSiliconPkg/SiPkg.dec + +# [Binaries.X64] +# PE32|RegAccessSMM.efi +# SMM_DEPEX|RegAccessSMM.depex +# DISPOSABLE|RegAccessSMM.pdb +# +[PatchPcd.X64] + gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0x0000000080000000|0x4d68 # 0x2010+0x2d58 + + +# [Protocols.X64] +# gUsraProtocolGuid +# +# ## CONSUMES +# gEfiSmmBase2ProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gPcdProtocolGuid +# +# ## CONSUMES +# gEfiPcdProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGetPcdInfoProtocolGuid +# +# ## CONSUMES +# gEfiSmmAccess2ProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiDevicePathProtocolGuid +# +# ## UNDEFINED +# gEfiDebugPortProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiLoadedImageProtocolGuid +# +# ## SOMETIMES_PRODUCES +# gEfiDriverBindingProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiSimpleTextOutProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGraphicsOutputProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiHiiFontProtocolGuid +# +# ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled +# gEfiUgaDrawProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentNameProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentName2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfigurationProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfiguration2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnosticsProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnostics2ProtocolGuid +# +# gEfiIioUdsProtocolGuid +# +# +# [Ppis.X64] +# +# [Guids.X64] +# gEfiCpRcPkgTokenSpaceGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVTUTF8Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100PlusGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPcAnsiGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiUartDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiSasDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventReadyToBootGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventLegacyBootGuid +# +# ## SOMETIMES_CONSUMES ## Variable +# gEfiGlobalVariableGuid +# +# ## CONSUMES ## SystemTable +# gEfiHobListGuid +# +# +[PcdEx.X64] + gEfiCpRcPkgTokenSpaceGuid.PcdPcieMmcfgTablePtr + + +# [LibraryClasses.X64] +# ## @LIB_INSTANCES +# # MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +# # MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf +# # MdePkg/Library/DxePcdLib/DxePcdLib.inf +# # MdePkg/Library/BaseLib/BaseLib.inf +# # MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf +# # MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf +# # MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf +# # MdePkg/Library/BasePrintLib/BasePrintLib.inf +# # MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf +# # MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf +# # MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf +# # MdePkg/Library/UefiLib/UefiLib.inf +# # PurleyRcPkg/Library/UsraRegisterFilterLibNull/UsraRegisterFilterLibNull.inf +# # PurleyRcPkg/Library/USRATraceLibNull/USRATraceLibNull.inf +# # MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf +# # PurleyRcPkg/Library/PcieAddressLib/PcieAddressLib.inf +# # PurleySktPkg/Library/CsrToPcieLib/CsrToPcieDxeLib.inf +# # MdePkg/Library/BaseS3BootScriptLibNull/BaseS3BootScriptLibNull.inf +# # MdePkg/Library/DxeHobLib/DxeHobLib.inf +# # PurleyRcPkg/Library/UsraAccessLib/UsraAccessLib.inf +# # PurleySktPkg/Library/UsraQuiesceLib/UsraQuiesceLib.inf +# +# [Depex.X64] +# # (gEfiSmmBase2ProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiSmmBase2ProtocolGuid) AND (gEfiSmmAccess2ProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid) AND (gEfiIioUdsProtocolGuid) +# +# +# +# +# +# [BuildOptions.X64] +# ## @AsBuilt +# ## MSFT:RELEASE_VS2015x86_X64_OPTROM_FLAGS = -e +# ## MSFT:RELEASE_VS2015x86_X64_VFR_FLAGS = -n +# ## MSFT:RELEASE_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for +# ## MSFT:RELEASE_VS2015x86_X64_GENFW_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG +# ## MSFT:RELEASE_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE +# ## MSFT:RELEASE_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi +# ## MSFT:RELEASE_VS2015x86_X64_ASL_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE /Zi /Gm +# ## MSFT:RELEASE_VS2015x86_X64_NASMB_FLAGS = -f bin +# ## MSFT:RELEASE_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_APP_FLAGS = /nologo /E /TC -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_DLINK2_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG /ALIGN:4096 +# ## MSFT:RELEASE_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for +# ## MSFT:RELEASE_VS2015x86_X64_MAKE_FLAGS = /nologo +# ## MSFT:RELEASE_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny +# ## MSFT:RELEASE_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 +# # +# # This file contains an 'Intel Peripheral Driver' and is +# # licensed for Intel CPUs and chipsets under the terms of your +# # license agreement with Intel or your vendor. This file may +# # be modified by the user, subject to additional terms of the +# # license agreement +# # +# ## @file +# # The DXE driver produces CPU Architecture Protocol defined in the PI specification. +# # +# # This driver does some CPU specific initliazations for the BSP, installs CPU Architecture Protocol, +# # and refreshes the GCD memory space attributes to be consistent with platform hardware status. +# # +# # Copyright (c) 2006 - 2014, 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. +# # +# # +# ## +# +# # DO NOT EDIT +# # FILE auto-generated +# +# [Defines] +# INF_VERSION = 0x00010017 +# BASE_NAME = CpuArchDxe +# FILE_GUID = 62D171CB-78CD-4480-8678-C6A2A797A8DE +# MODULE_TYPE = DXE_DRIVER +# VERSION_STRING = 1.0 +# ENTRY_POINT = InitializeCpu +# MODULE_UNI_FILE = CpuArchDxe.uni +# +[Packages.X64] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + PurleyRefreshSiliconPkg/Override/IA32FamilyCpuPkg/IA32FamilyCpuPkg.dec + +# [Binaries.X64] +# PE32|CpuArchDxe.efi +# DXE_DEPEX|CpuArchDxe.depex +# DISPOSABLE|CpuArchDxe.pdb +# +[PatchPcd.X64] + +# [Protocols.X64] +# ## SOMETIMES_CONSUMES +# gEfiMpServiceProtocolGuid +# +# ## PRODUCES +# gEfiCpuArchProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gPcdProtocolGuid +# +# ## CONSUMES +# gEfiPcdProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiDevicePathProtocolGuid +# +# ## UNDEFINED +# gEfiDebugPortProtocolGuid +# +# ## SOMETIMES_PRODUCES +# gEfiDriverBindingProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiSimpleTextOutProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGraphicsOutputProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiHiiFontProtocolGuid +# +# ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled +# gEfiUgaDrawProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentNameProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentName2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfigurationProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfiguration2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnosticsProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnostics2ProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiLoadedImageProtocolGuid +# +# ## CONSUMES +# gEfiStatusCodeRuntimeProtocolGuid +# +# +# [Ppis.X64] +# +# [Guids.X64] +# ## SOMETIMES_CONSUMES ## SystemTable +# gEfiVectorHandoffTableGuid +# +# gEfiCpuTokenSpaceGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVTUTF8Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100PlusGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPcAnsiGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiUartDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiSasDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventReadyToBootGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventLegacyBootGuid +# +# ## SOMETIMES_CONSUMES ## Variable +# gEfiGlobalVariableGuid +# +# ## CONSUMES ## SystemTable +# gEfiHobListGuid +# +# ## CONSUMES ## SystemTable +# gEfiDxeServicesTableGuid +# +# ## SOMETIMES_CONSUMES ## UNDEFINED +# gEfiStatusCodeSpecificDataGuid +# +# ## SOMETIMES_CONSUMES ## UNDEFINED +# gEfiStatusCodeDataTypeDebugGuid +# +# +[PcdEx.X64] + ## CONSUMES + gEfiCpuTokenSpaceGuid.PcdCpuPageTableAddress + + ## PRODUCES + gEfiCpuTokenSpaceGuid.PcdCpuMtrrTableAddress + + +# [LibraryClasses.X64] +# ## @LIB_INSTANCES +# # MdePkg/Library/BaseLib/BaseLib.inf +# # MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +# # MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf +# # MdePkg/Library/DxePcdLib/DxePcdLib.inf +# # MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf +# # MdePkg/Library/BasePrintLib/BasePrintLib.inf +# # MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf +# # MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf +# # MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf +# # MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf +# # MdePkg/Library/UefiLib/UefiLib.inf +# # MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf +# # MdePkg/Library/DxeHobLib/DxeHobLib.inf +# # MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf +# # PcAtChipsetPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf +# # PurleyOpenBoardPkg/BoardMtOlympus/Library/BasePlatformHookLib/BasePlatformHookLib.inf +# # MdePkg/Library/BaseCpuLib/BaseCpuLib.inf +# # MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf +# # MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf +# # MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf +# # UefiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.inf +# # UefiCpuPkg/Library/MtrrLib/MtrrLib.inf +# # MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf +# # MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf +# # MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf +# # UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf +# # UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeCpuExceptionHandlerLib.inf +# +# [Depex.X64] +# # (TRUE) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid) +# +# [UserExtensions.TianoCore."ExtraFiles"] +# CpuArchDxeExtra.uni +# +# +# +# # +# # The following information is for reference only and not required by the build tools. +# # +# # VALID_ARCHITECTURES = IA32 X64 +# # +# # Create Event Guid C Name: Event Type: EVENT_TYPE_PERIODIC_TIMER +# # +# # HOB Guid C Name: gEfiHtBistHobGuid Hob Type: GUID_EXTENSION +# # +# +# [BuildOptions.X64] +# ## @AsBuilt +# ## MSFT:RELEASE_VS2015x86_X64_OPTROM_FLAGS = -e +# ## MSFT:RELEASE_VS2015x86_X64_VFR_FLAGS = -n +# ## MSFT:RELEASE_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for +# ## MSFT:RELEASE_VS2015x86_X64_GENFW_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG +# ## MSFT:RELEASE_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE +# ## MSFT:RELEASE_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi +# ## MSFT:RELEASE_VS2015x86_X64_ASL_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE /Zi /Gm /Od +# ## MSFT:RELEASE_VS2015x86_X64_NASMB_FLAGS = -f bin +# ## MSFT:RELEASE_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_APP_FLAGS = /nologo /E /TC -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_DLINK2_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG +# ## MSFT:RELEASE_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for +# ## MSFT:RELEASE_VS2015x86_X64_MAKE_FLAGS = /nologo +# ## MSFT:RELEASE_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny +# ## MSFT:RELEASE_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 +# # +# # This file contains an 'Intel Peripheral Driver' and is +# # licensed for Intel CPUs and chipsets under the terms of your +# # license agreement with Intel or your vendor. This file may +# # be modified by the user, subject to additional terms of the +# # license agreement +# # +# ## @file +# # CPU MP DXE Driver. +# # +# # This DXE Driver does processor initialization, configures multi-processor environment, +# # and installs MP Services Protocol. +# # +# # Copyright (c) 2006 - 2016, 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. +# # +# # +# ## +# +# # DO NOT EDIT +# # FILE auto-generated +# +# [Defines] +# INF_VERSION = 0x00010017 +# BASE_NAME = CpuMpDxe +# FILE_GUID = 40BEAB40-CECE-4909-B133-20A413AE19E9 +# MODULE_TYPE = DXE_DRIVER +# VERSION_STRING = 1.0 +# ENTRY_POINT = MultiProcessorInitialize +# MODULE_UNI_FILE = CpuMpDxe.uni +# +[Packages.X64] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + UefiCpuPkg/UefiCpuPkg.dec + PurleyRefreshSiliconPkg/Override/IA32FamilyCpuPkg/IA32FamilyCpuPkg.dec + PurleyRefreshSiliconPkg/SiPkg.dec + +# [Binaries.X64] +# PE32|CpuMpDxe.efi +# DXE_DEPEX|CpuMpDxe.depex +# DISPOSABLE|CpuMpDxe.pdb +# +[PatchPcd.X64] + +# [Protocols.X64] +# ## PRODUCES +# gEfiMpServiceProtocolGuid +# +# ## CONSUMES +# gEfiCpuArchProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGenericMemTestProtocolGuid +# +# ## NOTIFY +# ## SOMETIMES_CONSUMES +# ## NOTIFY +# gEfiSmmConfigurationProtocolGuid +# +# ## CONSUMES +# gEfiTimerArchProtocolGuid +# +# ## NOTIFY +# ## CONSUMES +# gEfiDxeSmmReadyToLockProtocolGuid +# +# # +# # PURLEY_OVERRIDE_BEGIN +# # +# gEfiIioUdsProtocolGuid +# +# # PROTOCOL ALWAYS_CONSUMED +# gEfiCpuCsrAccessGuid +# +# ## SOMETIMES_CONSUMES +# gPcdProtocolGuid +# +# ## CONSUMES +# gEfiPcdProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# ## SOMETIMES_CONSUMES +# gEfiDevicePathProtocolGuid +# +# ## UNDEFINED +# gEfiDebugPortProtocolGuid +# +# ## SOMETIMES_PRODUCES +# gEfiDriverBindingProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiSimpleTextOutProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGraphicsOutputProtocolGuid +# +# ## SOMETIMES_CONSUMES +# ## SOMETIMES_CONSUMES +# gEfiHiiFontProtocolGuid +# +# ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled +# gEfiUgaDrawProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentNameProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentName2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfigurationProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfiguration2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnosticsProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnostics2ProtocolGuid +# +# ## CONSUMES +# gEfiHiiStringProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiHiiImageProtocolGuid +# +# ## CONSUMES +# gEfiHiiDatabaseProtocolGuid +# +# ## CONSUMES +# gEfiHiiConfigRoutingProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiLoadedImageProtocolGuid +# +# ## CONSUMES +# gEfiStatusCodeRuntimeProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiFormBrowser2ProtocolGuid +# +# +# [Ppis.X64] +# ## UNDEFINED # HOB +# gEfiSecPlatformInformation2PpiGuid +# +# ## UNDEFINED # HOB +# gEfiSecPlatformInformationPpiGuid +# +# +# [Guids.X64] +# ## CONSUMES ## HOB +# gEfiHtBistHobGuid +# +# ## CONSUMES ## Event +# gEfiEventExitBootServicesGuid +# +# ## CONSUMES ## Event +# gIdleLoopEventGuid +# +# ## CONSUMES ## TokenSpaceGuid +# gEfiCpuTokenSpaceGuid +# +# # +# # PURLEY_OVERRIDE_BEGIN +# # +# gPlatformTokenSpaceGuid +# +# gUefiCpuPkgTokenSpaceGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVTUTF8Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100PlusGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPcAnsiGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiUartDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiSasDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventReadyToBootGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventLegacyBootGuid +# +# ## SOMETIMES_CONSUMES ## Variable +# gEfiGlobalVariableGuid +# +# ## CONSUMES ## SystemTable +# gEfiHobListGuid +# +# ## CONSUMES ## SystemTable +# gEfiDxeServicesTableGuid +# +# ## SOMETIMES_CONSUMES ## UNDEFINED +# gEfiStatusCodeSpecificDataGuid +# +# ## SOMETIMES_CONSUMES ## UNDEFINED +# gEfiStatusCodeDataTypeDebugGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEdkiiIfrBitVarstoreGuid +# +# +[PcdEx.X64] + # + # PURLEY_OVERRIDE_END + # + ## CONSUMES + gEfiCpuTokenSpaceGuid.PcdPlatformCpuAssetTags + + ## CONSUMES + gEfiCpuTokenSpaceGuid.PcdPlatformCpuSocketNames + + ## CONSUMES + gEfiCpuTokenSpaceGuid.PcdPlatformCpuSocketCount + + ## CONSUMES + gEfiCpuTokenSpaceGuid.PcdPlatformCpuFrequencyLists + + ## CONSUMES + gEfiCpuTokenSpaceGuid.PcdCpuApInitTimeOutInMicroSeconds + + ## CONSUMES + ## PRODUCES + gEfiCpuTokenSpaceGuid.PcdCpuProcessorFeatureSetting + + ## CONSUMES + ## PRODUCES + gEfiCpuTokenSpaceGuid.PcdCpuProcessorFeatureCapability + + ## CONSUMES + gEfiCpuTokenSpaceGuid.PcdCpuProcessorFeatureUserConfiguration + + ## CONSUMES + ## PRODUCES + gEfiCpuTokenSpaceGuid.PcdCpuProcessorFeatureSettingEx1 + + ## CONSUMES + ## PRODUCES + gEfiCpuTokenSpaceGuid.PcdCpuProcessorFeatureCapabilityEx1 + + ## CONSUMES + gEfiCpuTokenSpaceGuid.PcdCpuProcessorFeatureUserConfigurationEx1 + + ## PRODUCES + ## CONSUMES + gEfiCpuTokenSpaceGuid.PcdCpuConfigContextBuffer + + ## PRODUCES + ## SOMETIMES_PRODUCES + ## SOMETIMES_CONSUMES + gEfiCpuTokenSpaceGuid.PcdCpuCallbackSignal + + ## CONSUMES + gEfiCpuTokenSpaceGuid.PcdIsPowerOnReset + + ## CONSUMES + gEfiCpuTokenSpaceGuid.PcdCpuPageTableAddress + + ## CONSUMES + ## SOMETIMES_PRODUCES + gEfiCpuTokenSpaceGuid.PcdCpuMtrrTableAddress + + ## PRODUCES + gUefiCpuPkgTokenSpaceGuid.PcdCpuS3DataAddress + + ## SOMETIMES_CONSUMES + gEfiCpuTokenSpaceGuid.PcdCpuHwCoordination + + ## SOMETIMES_CONSUMES + gEfiCpuTokenSpaceGuid.PcdCpuEnergyPolicy + + ## SOMETIMES_CONSUMES + gEfiCpuTokenSpaceGuid.PcdCpuClockModulationDutyCycle + + ## SOMETIMES_CONSUMES + gEfiCpuTokenSpaceGuid.PcdCpuAcpiLvl2Addr + + ## SOMETIMES_CONSUMES + gEfiCpuTokenSpaceGuid.PcdCpuPackageCStateLimit + + # + # PURLEY_OVERRIDE_BEGIN + # + gEfiCpuTokenSpaceGuid.PcdCpuCoreCStateValue + + # + # PURLEY_OVERRIDE_END + # + ## SOMETIMES_CONSUMES + gEfiCpuTokenSpaceGuid.PcdCpuDcuMode + + # + # PURLEY_OVERRIDE_BEGIN + # + gEfiCpuTokenSpaceGuid.PcdCpuProcessorMsrLockCtrl + + #ESS Override Start + # 4168379: Odin: PL1 cannot be changed greater than 200W and lock bit set. + gEfiCpuTokenSpaceGuid.PcdCpuTurboOverride + + #ESS Override End + gEfiCpuTokenSpaceGuid.PcdPchTraceHubEn + + gEfiCpuTokenSpaceGuid.PcdCpuIioLlcWaysBitMask + + gEfiCpuTokenSpaceGuid.PcdCpuExpandedIioLlcWaysBitMask + + gEfiCpuTokenSpaceGuid.PcdCpuRemoteWaysBitMask + + gEfiCpuTokenSpaceGuid.PcdCpuQlruCfgBitMask + + gEfiCpuTokenSpaceGuid.PcdSbspSelection + + gEfiCpuTokenSpaceGuid.PcdCpuSocketId + + # + # PURLEY_OVERRIDE_BEGIN + # + gEfiCpuTokenSpaceGuid.PcdCpuRRQCountThreshold + + +# [LibraryClasses.X64] +# ## @LIB_INSTANCES +# # MdePkg/Library/BaseLib/BaseLib.inf +# # MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +# # MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf +# # MdePkg/Library/DxePcdLib/DxePcdLib.inf +# # MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf +# # MdePkg/Library/BasePrintLib/BasePrintLib.inf +# # MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf +# # MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf +# # MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf +# # MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf +# # MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf +# # MdePkg/Library/UefiLib/UefiLib.inf +# # MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf +# # MdePkg/Library/DxeHobLib/DxeHobLib.inf +# # MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf +# # PcAtChipsetPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf +# # MdePkg/Library/BaseCpuLib/BaseCpuLib.inf +# # MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf +# # PurleySktPkg/Override/IA32FamilyCpuPkg/Library/CpuConfigLib/CpuConfigLib.inf +# # MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf +# # MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf +# # MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf +# # MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf +# # UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf +# # UefiCpuPkg/Library/MtrrLib/MtrrLib.inf +# # MdePkg/Library/BaseS3BootScriptLibNull/BaseS3BootScriptLibNull.inf +# # MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf +# # UefiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.inf +# +# [Depex.X64] +# # (gEfiTimerArchProtocolGuid AND gEfiGenericMemTestProtocolGuid AND gIntelCpuPcdsSetDoneProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND (gEfiHiiStringProtocolGuid AND gEfiHiiDatabaseProtocolGuid AND gEfiHiiConfigRoutingProtocolGuid) AND +# # (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid) +# +# [UserExtensions.TianoCore."ExtraFiles"] +# CpuMpDxeExtra.uni +# # +# # PURLEY_OVERRIDE_BEGIN_4929970 +# # +# +# +# +# # +# # The following information is for reference only and not required by the build tools. +# # +# # VALID_ARCHITECTURES = IA32 X64 +# # +# # Create Event Guid C Name: Event Type: EVENT_TYPE_PERIODIC_TIMER +# # +# # HOB Guid C Name: gEfiHtBistHobGuid Hob Type: GUID_EXTENSION +# # +# # +# # PURLEY_OVERRIDE_END +# # +# # +# # PURLEY_OVERRIDE_END +# # +# # +# # PURLEY_OVERRIDE_END +# # +# # +# # PURLEY_OVERRIDE_BEGIN +# # +# # +# # PURLEY_OVERRIDE_END +# # +# # +# # PURLEY_OVERRIDE_END +# # +# ## CONSUMES +# ## UNDEFINED # Token +# # +# # PURLEY_OVERRIDE_BEGIN +# # +# #gEfiCpuTokenSpaceGuid.PcdCpuSocketId +# # +# # PURLEY_OVERRIDE_END +# # +# # +# # PURLEY_OVERRIDE_BEGIN_4929970 +# # +# # +# # PURLEY_OVERRIDE_END_4929970 +# # +# +# [BuildOptions.X64] +# ## @AsBuilt +# ## MSFT:RELEASE_VS2015x86_X64_OPTROM_FLAGS = -e +# ## MSFT:RELEASE_VS2015x86_X64_VFR_FLAGS = -n +# ## MSFT:RELEASE_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for +# ## MSFT:RELEASE_VS2015x86_X64_GENFW_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG +# ## MSFT:RELEASE_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE +# ## MSFT:RELEASE_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi +# ## MSFT:RELEASE_VS2015x86_X64_ASL_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE /Zi /Gm +# ## MSFT:RELEASE_VS2015x86_X64_NASMB_FLAGS = -f bin +# ## MSFT:RELEASE_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_APP_FLAGS = /nologo /E /TC -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_DLINK2_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /ALIGN:128 /DEBUG +# ## MSFT:RELEASE_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for +# ## MSFT:RELEASE_VS2015x86_X64_MAKE_FLAGS = /nologo +# ## MSFT:RELEASE_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny +# ## MSFT:RELEASE_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 +# ## @file +# # Component description file for SmmAccess module +# # +# # Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.
+# # +# # This program and the accompanying materials +# # are licensed and made available under the terms and conditions of the BSD License +# # which accompanies this distribution. The full text of the license may be found at +# # http://opensource.org/licenses/bsd-license.php +# # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# # +# # +# ## +# +# # DO NOT EDIT +# # FILE auto-generated +# +# [Defines] +# INF_VERSION = 0x00010017 +# BASE_NAME = SmmAccess +# FILE_GUID = 274F0C8F-9E57-41d8-9966-29CCD48D31C2 +# MODULE_TYPE = DXE_DRIVER +# VERSION_STRING = 1.0 +# ENTRY_POINT = SmmAccessDriverEntryPoint +# +[Packages.X64] + MdePkg/MdePkg.dec + PurleyRefreshSiliconPkg/SiPkg.dec + +# [Binaries.X64] +# PE32|SmmAccess.efi +# DXE_DEPEX|SmmAccess.depex +# DISPOSABLE|SmmAccess.pdb +# +[PatchPcd.X64] + +# [Protocols.X64] +# gEfiPciRootBridgeIoProtocolGuid +# +# gEfiIioUdsProtocolGuid +# +# gEfiSmmAccess2ProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gPcdProtocolGuid +# +# ## CONSUMES +# gEfiPcdProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiDevicePathProtocolGuid +# +# ## UNDEFINED +# gEfiDebugPortProtocolGuid +# +# ## SOMETIMES_PRODUCES +# gEfiDriverBindingProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiSimpleTextOutProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGraphicsOutputProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiHiiFontProtocolGuid +# +# ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled +# gEfiUgaDrawProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentNameProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentName2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfigurationProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfiguration2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnosticsProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnostics2ProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiLoadedImageProtocolGuid +# +# +# [Ppis.X64] +# +# [Guids.X64] +# gEfiSmmPeiSmramMemoryReserveGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVTUTF8Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100PlusGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPcAnsiGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiUartDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiSasDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventReadyToBootGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventLegacyBootGuid +# +# ## SOMETIMES_CONSUMES ## Variable +# gEfiGlobalVariableGuid +# +# ## CONSUMES ## SystemTable +# gEfiHobListGuid +# +# +[PcdEx.X64] + +# [LibraryClasses.X64] +# ## @LIB_INSTANCES +# # MdePkg/Library/DxePcdLib/DxePcdLib.inf +# # MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf +# # MdePkg/Library/BaseLib/BaseLib.inf +# # MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +# # MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf +# # MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf +# # MdePkg/Library/BasePrintLib/BasePrintLib.inf +# # MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf +# # MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf +# # MdePkg/Library/UefiLib/UefiLib.inf +# # MdePkg/Library/DxeHobLib/DxeHobLib.inf +# # MdePkg/Library/BaseS3BootScriptLibNull/BaseS3BootScriptLibNull.inf +# # MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf +# +# [Depex.X64] +# # (gEfiPciRootBridgeIoProtocolGuid AND gEfiIioUdsProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid) +# +# +# +# +# +# [BuildOptions.X64] +# ## @AsBuilt +# ## MSFT:RELEASE_VS2015x86_X64_OPTROM_FLAGS = -e +# ## MSFT:RELEASE_VS2015x86_X64_VFR_FLAGS = -n +# ## MSFT:RELEASE_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for +# ## MSFT:RELEASE_VS2015x86_X64_GENFW_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG +# ## MSFT:RELEASE_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE +# ## MSFT:RELEASE_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi +# ## MSFT:RELEASE_VS2015x86_X64_ASL_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE /Zi /Gm +# ## MSFT:RELEASE_VS2015x86_X64_NASMB_FLAGS = -f bin +# ## MSFT:RELEASE_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_APP_FLAGS = /nologo /E /TC -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_DLINK2_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG +# ## MSFT:RELEASE_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for +# ## MSFT:RELEASE_VS2015x86_X64_MAKE_FLAGS = /nologo +# ## MSFT:RELEASE_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny +# ## MSFT:RELEASE_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 +# ## @file +# # CPU SMM driver. +# # +# # This SMM driver performs SMM initialization, deploy SMM Entry Vector, +# # provides CPU specific services in SMM. +# # +# # Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.
+# # Copyright (c) 2017, AMD Incorporated. All rights reserved.
+# # +# # This program and the accompanying materials +# # are licensed and made available under the terms and conditions of the BSD License +# # which accompanies this distribution. The full text of the license may be found at +# # http://opensource.org/licenses/bsd-license.php +# # +# # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# # +# ## +# +# # DO NOT EDIT +# # FILE auto-generated +# +# [Defines] +# INF_VERSION = 0x00010017 +# BASE_NAME = PiSmmCpuDxeSmm +# FILE_GUID = A3FF0EF5-0C28-42f5-B544-8C7DE1E80014 +# MODULE_TYPE = DXE_SMM_DRIVER +# VERSION_STRING = 1.0 +# PI_SPECIFICATION_VERSION = 0x0001000A +# ENTRY_POINT = PiCpuSmmEntry +# MODULE_UNI_FILE = PiSmmCpuDxeSmm.uni +# +[Packages.X64] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + UefiCpuPkg/UefiCpuPkg.dec + PurleyRefreshSiliconPkg/SiPkg.dec + PurleyRefreshSiliconPkg/Override/IA32FamilyCpuPkg/IA32FamilyCpuPkg.dec + +# [Binaries.X64] +# PE32|PiSmmCpuDxeSmm.efi +# SMM_DEPEX|PiSmmCpuDxeSmm.depex +# DISPOSABLE|PiSmmCpuDxeSmm.pdb +# +[PatchPcd.X64] + ## CONSUMES + gEfiCpuTokenSpaceGuid.PcdCpuSmmUseSmmEnableIndication|0x00|0x372f8 # 0xD3C0+0x29f38 + + ## CONSUMES + gEfiCpuTokenSpaceGuid.PcdCpuSmmUseDelayIndication|0x00|0x372f9 # 0xD3C1+0x29f38 + + ## CONSUMES + gEfiCpuTokenSpaceGuid.PcdCpuSmmUseBlockIndication|0x00|0x372fa # 0xD3C2+0x29f38 + + +# [Protocols.X64] +# ## CONSUMES +# ## CONSUMES +# gEfiSmmAccess2ProtocolGuid +# +# ## CONSUMES +# gEfiMpServiceProtocolGuid +# +# ## PRODUCES +# gEfiSmmConfigurationProtocolGuid +# +# ## PRODUCES +# gEfiSmmCpuProtocolGuid +# +# ## NOTIFY +# gEfiSmmReadyToLockProtocolGuid +# +# ## PRODUCES +# gEfiSmmCpuServiceProtocolGuid +# +# ## PRODUCES +# gEdkiiSmmMemoryAttributeProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gPcdProtocolGuid +# +# ## CONSUMES +# gEfiPcdProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGetPcdInfoProtocolGuid +# +# ## CONSUMES +# gEfiSmmBase2ProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiDevicePathProtocolGuid +# +# ## UNDEFINED +# gEfiDebugPortProtocolGuid +# +# ## SOMETIMES_PRODUCES +# gEfiDriverBindingProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiSimpleTextOutProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGraphicsOutputProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiHiiFontProtocolGuid +# +# ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled +# gEfiUgaDrawProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentNameProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentName2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfigurationProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfiguration2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnosticsProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnostics2ProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiLoadedImageProtocolGuid +# +# ## CONSUMES +# gEfiSmmStatusCodeProtocolGuid +# +# +# [Ppis.X64] +# +# [Guids.X64] +# ## SOMETIMES_CONSUMES ## HOB # it is used for S3 boot. +# gEfiAcpiVariableGuid +# +# ## SOMETIMES_CONSUMES ## Variable +# ## SOMETIMES_PRODUCES ## Variable:L"SmmProfileData" +# gEfiGlobalVariableGuid +# +# ## SOMETIMES_CONSUMES ## SystemTable +# gEfiAcpi20TableGuid +# +# ## SOMETIMES_CONSUMES ## SystemTable +# gEfiAcpi10TableGuid +# +# ## CONSUMES ## SystemTable +# gEdkiiPiSmmMemoryAttributesTableGuid +# +# gUefiCpuPkgTokenSpaceGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVTUTF8Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100PlusGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPcAnsiGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiUartDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiSasDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventReadyToBootGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventLegacyBootGuid +# +# ## CONSUMES ## SystemTable +# gEfiHobListGuid +# +# ## CONSUMES ## SystemTable +# gEfiDxeServicesTableGuid +# +# ## SOMETIMES_CONSUMES ## UNDEFINED +# gEfiStatusCodeSpecificDataGuid +# +# ## SOMETIMES_CONSUMES ## UNDEFINED +# gEfiStatusCodeDataTypeDebugGuid +# +# +[PcdEx.X64] + ## SOMETIMES_CONSUMES + gUefiCpuPkgTokenSpaceGuid.PcdCpuS3DataAddress + + ## SOMETIMES_PRODUCES + gUefiCpuPkgTokenSpaceGuid.PcdCpuHotPlugDataAddress + + +# [LibraryClasses.X64] +# ## @LIB_INSTANCES +# # MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf +# # MdePkg/Library/BaseLib/BaseLib.inf +# # MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +# # MdePkg/Library/DxePcdLib/DxePcdLib.inf +# # MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf +# # MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf +# # MdePkg/Library/BasePrintLib/BasePrintLib.inf +# # MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf +# # MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf +# # MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf +# # MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf +# # MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf +# # MdePkg/Library/UefiLib/UefiLib.inf +# # MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf +# # MdePkg/Library/DxeHobLib/DxeHobLib.inf +# # PurleyOpenBoardPkg/BoardMtOlympus/Library/BasePlatformHookLib/BasePlatformHookLib.inf +# # PcAtChipsetPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf +# # MdePkg/Library/BaseCpuLib/BaseCpuLib.inf +# # MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf +# # MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf +# # UefiCpuPkg/Library/BaseXApicX2ApicLib/BaseXApicX2ApicLib.inf +# # MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf +# # UefiCpuPkg/Library/MtrrLib/MtrrLib.inf +# # MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf +# # MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf +# # MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf +# # UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib.inf +# # UefiCpuPkg/Library/SmmCpuPlatformHookLibNull/SmmCpuPlatformHookLibNull.inf +# # UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf +# # MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf +# # MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCodeLib.inf +# # PurleySktPkg/Override/IA32FamilyCpuPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf +# +# [Depex.X64] +# # (gEfiMpServiceProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiSmmBase2ProtocolGuid) AND (gEfiSmmAccess2ProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid) +# +# [UserExtensions.TianoCore."ExtraFiles"] +# PiSmmCpuDxeSmmExtra.uni +# +# +# +# # +# # The following information is for reference only and not required by the build tools. +# # +# # VALID_ARCHITECTURES = IA32 X64 +# # +# +# [BuildOptions.X64] +# ## @AsBuilt +# ## MSFT:RELEASE_VS2015x86_X64_OPTROM_FLAGS = -e +# ## MSFT:RELEASE_VS2015x86_X64_VFR_FLAGS = -n +# ## MSFT:RELEASE_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for +# ## MSFT:RELEASE_VS2015x86_X64_GENFW_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG +# ## MSFT:RELEASE_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE +# ## MSFT:RELEASE_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi +# ## MSFT:RELEASE_VS2015x86_X64_ASL_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE /Zi /Gm +# ## MSFT:RELEASE_VS2015x86_X64_NASMB_FLAGS = -f bin +# ## MSFT:RELEASE_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_APP_FLAGS = /nologo /E /TC -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_DLINK2_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG /ALIGN:4096 +# ## MSFT:RELEASE_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for +# ## MSFT:RELEASE_VS2015x86_X64_MAKE_FLAGS = /nologo +# ## MSFT:RELEASE_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny +# ## MSFT:RELEASE_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 +# ## @file +# # CpuCsrAccess Protocol +# # +# # Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.
+# # +# # This program and the accompanying materials +# # are licensed and made available under the terms and conditions of the BSD License +# # which accompanies this distribution. The full text of the license may be found at +# # http://opensource.org/licenses/bsd-license.php +# # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# # +# # +# ## +# +# # DO NOT EDIT +# # FILE auto-generated +# +# [Defines] +# INF_VERSION = 0x00010017 +# BASE_NAME = CpuCsrAccess +# FILE_GUID = 06D20D84-A032-4e25-969A-346D255E46D1 +# MODULE_TYPE = DXE_RUNTIME_DRIVER +# VERSION_STRING = 1.0 +# ENTRY_POINT = CpuCsrAccessStart +# +[Packages.X64] + MdePkg/MdePkg.dec + PurleyRefreshSiliconPkg/SiPkg.dec + +# [Binaries.X64] +# PE32|CpuCsrAccess.efi +# DXE_DEPEX|CpuCsrAccess.depex +# DISPOSABLE|CpuCsrAccess.pdb +# +[PatchPcd.X64] + +# [Protocols.X64] +# gEfiIioUdsProtocolGuid +# +# gEfiCpuCsrAccessGuid +# +# gEfiSmmBase2ProtocolGuid +# +# ## CONSUMES +# gUsraProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gPcdProtocolGuid +# +# ## CONSUMES +# gEfiPcdProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiDevicePathProtocolGuid +# +# ## UNDEFINED +# gEfiDebugPortProtocolGuid +# +# ## SOMETIMES_PRODUCES +# gEfiDriverBindingProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiSimpleTextOutProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGraphicsOutputProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiHiiFontProtocolGuid +# +# ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled +# gEfiUgaDrawProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentNameProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentName2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfigurationProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfiguration2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnosticsProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnostics2ProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiLoadedImageProtocolGuid +# +# +# [Ppis.X64] +# +# [Guids.X64] +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVTUTF8Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100PlusGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPcAnsiGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiUartDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiSasDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventReadyToBootGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventLegacyBootGuid +# +# ## SOMETIMES_CONSUMES ## Variable +# gEfiGlobalVariableGuid +# +# ## CONSUMES ## SystemTable +# gEfiHobListGuid +# +# +[PcdEx.X64] + +# [LibraryClasses.X64] +# ## @LIB_INSTANCES +# # MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf +# # MdePkg/Library/DxePcdLib/DxePcdLib.inf +# # MdePkg/Library/BaseLib/BaseLib.inf +# # MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +# # MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf +# # MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf +# # MdePkg/Library/BasePrintLib/BasePrintLib.inf +# # MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf +# # MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf +# # MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf +# # MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf +# # MdePkg/Library/UefiLib/UefiLib.inf +# # MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf +# # MdePkg/Library/DxeHobLib/DxeHobLib.inf +# # MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf +# # PurleyRcPkg/Library/DxeUsraLib/DxeUsraLib.inf +# # PcAtChipsetPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf +# +# [Depex.X64] +# # (gEfiIioUdsProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid) AND (gUsraProtocolGuid) +# +# +# +# +# +# [BuildOptions.X64] +# ## @AsBuilt +# ## MSFT:RELEASE_VS2015x86_X64_OPTROM_FLAGS = -e +# ## MSFT:RELEASE_VS2015x86_X64_VFR_FLAGS = -n +# ## MSFT:RELEASE_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for +# ## MSFT:RELEASE_VS2015x86_X64_GENFW_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG +# ## MSFT:RELEASE_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE +# ## MSFT:RELEASE_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi +# ## MSFT:RELEASE_VS2015x86_X64_ASL_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE /Zi /Gm +# ## MSFT:RELEASE_VS2015x86_X64_NASMB_FLAGS = -f bin +# ## MSFT:RELEASE_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_APP_FLAGS = /nologo /E /TC -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_DLINK2_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG /ALIGN:4096 +# ## MSFT:RELEASE_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for +# ## MSFT:RELEASE_VS2015x86_X64_MAKE_FLAGS = /nologo +# ## MSFT:RELEASE_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny +# ## MSFT:RELEASE_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 +# ## @file +# # CpuCsrAccess Protocol +# # +# # Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.
+# # +# # This program and the accompanying materials +# # are licensed and made available under the terms and conditions of the BSD License +# # which accompanies this distribution. The full text of the license may be found at +# # http://opensource.org/licenses/bsd-license.php +# # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# # +# # +# ## +# +# # DO NOT EDIT +# # FILE auto-generated +# +# [Defines] +# INF_VERSION = 0x00010017 +# BASE_NAME = CpuCsrAccessSMM +# FILE_GUID = 870E0F5A-1981-45f6-AE26-0391425CC46F +# MODULE_TYPE = DXE_SMM_DRIVER +# VERSION_STRING = 1.0 +# PI_SPECIFICATION_VERSION = 0x0001000A +# ENTRY_POINT = CpuCsrAccessStart +# +[Packages.X64] + MdePkg/MdePkg.dec + PurleyRefreshSiliconPkg/SiPkg.dec + +# [Binaries.X64] +# PE32|CpuCsrAccessSMM.efi +# SMM_DEPEX|CpuCsrAccessSMM.depex +# DISPOSABLE|CpuCsrAccessSMM.pdb +# +[PatchPcd.X64] + +# [Protocols.X64] +# gEfiIioUdsProtocolGuid +# +# gEfiCpuCsrAccessGuid +# +# ## CONSUMES +# gEfiSmmBase2ProtocolGuid +# +# ## CONSUMES +# gUsraProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gPcdProtocolGuid +# +# ## CONSUMES +# gEfiPcdProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGetPcdInfoProtocolGuid +# +# ## CONSUMES +# gEfiSmmAccess2ProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiDevicePathProtocolGuid +# +# ## UNDEFINED +# gEfiDebugPortProtocolGuid +# +# ## SOMETIMES_PRODUCES +# gEfiDriverBindingProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiSimpleTextOutProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGraphicsOutputProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiHiiFontProtocolGuid +# +# ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled +# gEfiUgaDrawProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentNameProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentName2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfigurationProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfiguration2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnosticsProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnostics2ProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiLoadedImageProtocolGuid +# +# +# [Ppis.X64] +# +# [Guids.X64] +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVTUTF8Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100PlusGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPcAnsiGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiUartDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiSasDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventReadyToBootGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventLegacyBootGuid +# +# ## SOMETIMES_CONSUMES ## Variable +# gEfiGlobalVariableGuid +# +# ## CONSUMES ## SystemTable +# gEfiHobListGuid +# +# +[PcdEx.X64] + +# [LibraryClasses.X64] +# ## @LIB_INSTANCES +# # MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf +# # MdePkg/Library/DxePcdLib/DxePcdLib.inf +# # MdePkg/Library/BaseLib/BaseLib.inf +# # MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +# # MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf +# # MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf +# # MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf +# # MdePkg/Library/BasePrintLib/BasePrintLib.inf +# # MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf +# # MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf +# # MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf +# # MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf +# # MdePkg/Library/UefiLib/UefiLib.inf +# # MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf +# # MdePkg/Library/DxeHobLib/DxeHobLib.inf +# # MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf +# # PurleyRcPkg/Library/DxeUsraLib/DxeSmmUsraLib.inf +# # PcAtChipsetPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf +# +# [Depex.X64] +# # (gEfiSmmBase2ProtocolGuid AND gEfiIioUdsProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiSmmBase2ProtocolGuid) AND (gEfiSmmAccess2ProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid) +# +# +# +# +# +# [BuildOptions.X64] +# ## @AsBuilt +# ## MSFT:RELEASE_VS2015x86_X64_OPTROM_FLAGS = -e +# ## MSFT:RELEASE_VS2015x86_X64_VFR_FLAGS = -n +# ## MSFT:RELEASE_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for +# ## MSFT:RELEASE_VS2015x86_X64_GENFW_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG +# ## MSFT:RELEASE_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE +# ## MSFT:RELEASE_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi +# ## MSFT:RELEASE_VS2015x86_X64_ASL_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE /Zi /Gm +# ## MSFT:RELEASE_VS2015x86_X64_NASMB_FLAGS = -f bin +# ## MSFT:RELEASE_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_APP_FLAGS = /nologo /E /TC -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_DLINK2_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG /ALIGN:4096 +# ## MSFT:RELEASE_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for +# ## MSFT:RELEASE_VS2015x86_X64_MAKE_FLAGS = /nologo +# ## MSFT:RELEASE_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny +# ## MSFT:RELEASE_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 +# ## @file +# # Status Code Handler Driver which produces general handlers and hook them +# # onto the DXE status code router. +# # +# # Copyright (c) 2006 - 2016, Intel Corporation. +# # +# # All rights reserved. This program and the accompanying materials +# # are licensed and made available under the terms and conditions of the BSD License +# # which accompanies this distribution. The full text of the license may be found at +# # http://opensource.org/licenses/bsd-license.php +# # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# # +# # +# ## +# +# # DO NOT EDIT +# # FILE auto-generated +# +# [Defines] +# INF_VERSION = 0x00010017 +# BASE_NAME = IioInit +# FILE_GUID = 63809859-F029-41c3-9F34-EEEB9EA787A5 +# MODULE_TYPE = DXE_DRIVER +# VERSION_STRING = 1.0 +# ENTRY_POINT = IioInitEntry +# +[Packages.X64] + MdePkg/MdePkg.dec + PurleyOpenBoardPkg/OpenBoardPkg.dec + PurleyRefreshSiliconPkg/SiPkg.dec + +# [Binaries.X64] +# PE32|IioInit.efi +# DXE_DEPEX|IioInit.depex +# DISPOSABLE|IioInit.pdb +# +[PatchPcd.X64] + gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0x0000000080000000|0x45160 # 0x4A70+0x406f0 + + +# [Protocols.X64] +# gEfiIioSystemProtocolGuid +# +# gEfiCpuCsrAccessGuid +# +# ## SOMETIMES_CONSUMES +# gPcdProtocolGuid +# +# ## CONSUMES +# gEfiPcdProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGetPcdInfoProtocolGuid +# +# gEfiIioUdsProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiLoadedImageProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiDevicePathProtocolGuid +# +# ## UNDEFINED +# gEfiDebugPortProtocolGuid +# +# ## SOMETIMES_PRODUCES +# gEfiDriverBindingProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiSimpleTextOutProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGraphicsOutputProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiHiiFontProtocolGuid +# +# ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled +# gEfiUgaDrawProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentNameProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentName2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfigurationProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfiguration2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnosticsProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnostics2ProtocolGuid +# +# gEfiSmmCpuIo2ProtocolGuid +# +# ## CONSUMES +# gUsraProtocolGuid +# +# gEfiPciCallbackProtocolGuid +# +# gEfiMpServiceProtocolGuid +# +# +# [Ppis.X64] +# +# [Guids.X64] +# gIioPolicyHobGuid +# +# gEfiCpRcPkgTokenSpaceGuid +# +# gOemSkuTokenSpaceGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVTUTF8Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100PlusGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPcAnsiGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiUartDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiSasDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventReadyToBootGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventLegacyBootGuid +# +# ## SOMETIMES_CONSUMES ## Variable +# gEfiGlobalVariableGuid +# +# ## CONSUMES ## SystemTable +# gEfiDxeServicesTableGuid +# +# ## CONSUMES ## SystemTable +# gEfiHobListGuid +# +# gEfiEventExitBootServicesGuid +# +# gEfiEndOfDxeEventGroupGuid +# +# +[PcdEx.X64] + gOemSkuTokenSpaceGuid.PcdSetupData + + gOemSkuTokenSpaceGuid.PcdPchRcConfigurationData + + gOemSkuTokenSpaceGuid.PcdSocketIioConfigData + + gOemSkuTokenSpaceGuid.PcdSocketCommonRcConfigData + + gOemSkuTokenSpaceGuid.PcdSocketMpLinkConfigData + + gOemSkuTokenSpaceGuid.PcdSocketMemoryConfigData + + gOemSkuTokenSpaceGuid.PcdSocketPowerManagementConfigData + + gOemSkuTokenSpaceGuid.PcdSocketProcessorCoreConfigData + + gEfiCpRcPkgTokenSpaceGuid.PcdPcieMmcfgTablePtr + + +# [LibraryClasses.X64] +# ## @LIB_INSTANCES +# # LewisburgPkg/Library/PeiDxeSmmPchPcrLib/PeiDxeSmmPchPcrLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchInfoLib/PeiDxeSmmPchInfoLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchPcieRpLib/PeiDxeSmmPchPcieRpLib.inf +# # MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf +# # MdePkg/Library/BaseLib/BaseLib.inf +# # MdePkg/Library/BaseS3BootScriptLibNull/BaseS3BootScriptLibNull.inf +# # MdePkg/Library/DxePcdLib/DxePcdLib.inf +# # MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf +# # MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf +# # PurleyOpenBoardPkg/OemHook/Library/OemIioInit/OemIioInitHooks.inf +# # PurleySktPkg/Iio/Library/PeiDxeCommonIioInitLib/IioInitLib.inf +# # MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +# # MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf +# # MdePkg/Library/BasePrintLib/BasePrintLib.inf +# # MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf +# # MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf +# # MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf +# # MdePkg/Library/UefiLib/UefiLib.inf +# # MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf +# # PurleyRcPkg/Library/DxeMmPciBaseLib/DxeMmPciBaseLib.inf +# # MdePkg/Library/DxeHobLib/DxeHobLib.inf +# # MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf +# # PurleyRcPkg/Library/UsraRegisterFilterLibNull/UsraRegisterFilterLibNull.inf +# # PurleyRcPkg/Library/USRATraceLibNull/USRATraceLibNull.inf +# # PurleyRcPkg/Library/PcieAddressLib/PcieAddressLib.inf +# # PurleyRcPkg/Library/CsrToPcieLibNull/BaseCsrToPcieLibNull.inf +# # MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf +# # PurleyRcPkg/Library/UsraAccessLib/UsraAccessLib.inf +# # PcAtChipsetPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf +# # MdePkg/Library/BaseS3PciLib/BaseS3PciLib.inf +# # PurleyRcPkg/Library/PcieCommonInitLib/PcieCommonInitLib.inf +# # PurleySktPkg/Iio/Library/DxeIioInitLib/IioInitDxeLib.inf +# +# [Depex.X64] +# # (gEfiMpServiceProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid) AND (gUsraProtocolGuid) +# +# +# +# +# +# [BuildOptions.X64] +# ## @AsBuilt +# ## MSFT:RELEASE_VS2015x86_X64_OPTROM_FLAGS = -e +# ## MSFT:RELEASE_VS2015x86_X64_VFR_FLAGS = -n +# ## MSFT:RELEASE_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for +# ## MSFT:RELEASE_VS2015x86_X64_GENFW_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG +# ## MSFT:RELEASE_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE +# ## MSFT:RELEASE_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi +# ## MSFT:RELEASE_VS2015x86_X64_ASL_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE /Zi /Gm +# ## MSFT:RELEASE_VS2015x86_X64_NASMB_FLAGS = -f bin +# ## MSFT:RELEASE_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_APP_FLAGS = /nologo /E /TC -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_DLINK2_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG +# ## MSFT:RELEASE_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for +# ## MSFT:RELEASE_VS2015x86_X64_MAKE_FLAGS = /nologo +# ## MSFT:RELEASE_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny +# ## MSFT:RELEASE_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 +# ## @file +# # +# # Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.
+# # +# # This program and the accompanying materials +# # are licensed and made available under the terms and conditions of the BSD License +# # which accompanies this distribution. The full text of the license may be found at +# # http://opensource.org/licenses/bsd-license.php +# # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# # +# # +# ## +# +# # DO NOT EDIT +# # FILE auto-generated +# +# [Defines] +# INF_VERSION = 0x00010017 +# BASE_NAME = PciHostBridge +# FILE_GUID = D58EBCE1-AF26-488d-BE66-C164417F8C13 +# MODULE_TYPE = DXE_DRIVER +# VERSION_STRING = 1.0 +# ENTRY_POINT = InitializePciHostBridge +# +[Packages.X64] + MdePkg/MdePkg.dec + PurleyRefreshSiliconPkg/SiPkg.dec + +# [Binaries.X64] +# PE32|PciHostBridge.efi +# DXE_DEPEX|PciHostBridge.depex +# DISPOSABLE|PciHostBridge.pdb +# +[PatchPcd.X64] + +# [Protocols.X64] +# gEfiMetronomeArchProtocolGuid +# +# gEfiCpuIo2ProtocolGuid +# +# gEfiIioUdsProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiDevicePathProtocolGuid +# +# gEfiPciRootBridgeIoProtocolGuid +# +# gEfiPciHostBridgeResourceAllocationProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gPcdProtocolGuid +# +# ## CONSUMES +# gEfiPcdProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGetPcdInfoProtocolGuid +# +# ## UNDEFINED +# gEfiDebugPortProtocolGuid +# +# ## SOMETIMES_PRODUCES +# gEfiDriverBindingProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiSimpleTextOutProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGraphicsOutputProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiHiiFontProtocolGuid +# +# ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled +# gEfiUgaDrawProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentNameProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentName2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfigurationProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfiguration2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnosticsProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnostics2ProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiLoadedImageProtocolGuid +# +# ## CONSUMES +# gUsraProtocolGuid +# +# +# [Ppis.X64] +# +# [Guids.X64] +# gEfiSocketPciResourceDataGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVTUTF8Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100PlusGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPcAnsiGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiUartDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiSasDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventReadyToBootGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventLegacyBootGuid +# +# ## SOMETIMES_CONSUMES ## Variable +# gEfiGlobalVariableGuid +# +# ## CONSUMES ## SystemTable +# gEfiDxeServicesTableGuid +# +# +[PcdEx.X64] + +# [LibraryClasses.X64] +# ## @LIB_INSTANCES +# # MdePkg/Library/DxePcdLib/DxePcdLib.inf +# # MdePkg/Library/BaseLib/BaseLib.inf +# # MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf +# # MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +# # MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf +# # MdePkg/Library/BasePrintLib/BasePrintLib.inf +# # MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf +# # MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf +# # MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf +# # MdePkg/Library/UefiLib/UefiLib.inf +# # MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf +# # MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf +# # PurleyRcPkg/Library/DxeUsraLib/DxeUsraLib.inf +# +# [Depex.X64] +# # (gEfiCpuIo2ProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiIioUdsProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid) AND (gUsraProtocolGuid) +# +# +# +# +# +# [BuildOptions.X64] +# ## @AsBuilt +# ## MSFT:RELEASE_VS2015x86_X64_OPTROM_FLAGS = -e +# ## MSFT:RELEASE_VS2015x86_X64_VFR_FLAGS = -n +# ## MSFT:RELEASE_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for +# ## MSFT:RELEASE_VS2015x86_X64_GENFW_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG +# ## MSFT:RELEASE_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE +# ## MSFT:RELEASE_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi +# ## MSFT:RELEASE_VS2015x86_X64_ASL_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE /Zi /Gm +# ## MSFT:RELEASE_VS2015x86_X64_NASMB_FLAGS = -f bin +# ## MSFT:RELEASE_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_APP_FLAGS = /nologo /E /TC -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_DLINK2_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG +# ## MSFT:RELEASE_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for +# ## MSFT:RELEASE_VS2015x86_X64_MAKE_FLAGS = /nologo +# ## MSFT:RELEASE_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny +# ## MSFT:RELEASE_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 +# ## @file +# # Component description file for Pch Initialization driver +# # +# # @copyright +# # Copyright (c) 1999 - 2016 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 the +# # 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. +# # This file contains an 'Intel Peripheral Driver' and is uniquely +# # identified as "Intel Reference Module" and is licensed for Intel +# # CPUs and chipsets under the terms of your license agreement with +# # Intel or your vendor. This file may be modified by the user, subject +# # to additional terms of the license agreement. +# # +# #@par Specification Reference: +# # +# ## +# +# # DO NOT EDIT +# # FILE auto-generated +# +# [Defines] +# INF_VERSION = 0x00010017 +# BASE_NAME = PchInitDxe +# FILE_GUID = DE23ACEE-CF55-4fb6-AA77-984AB53DE823 +# MODULE_TYPE = DXE_DRIVER +# VERSION_STRING = 1.0 +# ENTRY_POINT = PchInitEntryPointUefi +# +[Packages.X64] + MdePkg/MdePkg.dec + PurleyRefreshSiliconPkg/SiPkg.dec + +# [Binaries.X64] +# PE32|PchInitDxe.efi +# DXE_DEPEX|PchInitDxe.depex +# DISPOSABLE|PchInitDxe.pdb +# +[PatchPcd.X64] + #SERVER_BIOS ## CONSUMES + gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0x0000000080000000|0x52ae0 # 0x6140+0x4c9a0 + + +# [Protocols.X64] +# ## PRODUCES +# gPchInfoProtocolGuid +# +# ## PRODUCES +# gPchNvsAreaProtocolGuid +# +# ## PRODUCES +# gPchEmmcTuningProtocolGuid +# +# ## CONSUMES +# gEfiPciIoProtocolGuid +# +# ## CONSUMES +# ## CONSUMES +# gEfiAcpiTableProtocolGuid +# +# ## CONSUMES +# gEfiBlockIoProtocolGuid +# +# gHeciProtocolGuid +# +# ## CONSUMES +# gEfiPciEnumerationCompleteProtocolGuid +# +# ## CONSUMES +# gPchPcieIoTrapProtocolGuid +# +# ## CONSUMES #SERVER_BIOS +# gPchSataEfiLoadProtocolGuid +# +# ## CONSUMES #SERVER_BIOS +# gPchsSataEfiLoadProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gPcdProtocolGuid +# +# ## CONSUMES +# gEfiPcdProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiDevicePathProtocolGuid +# +# ## UNDEFINED +# gEfiDebugPortProtocolGuid +# +# ## SOMETIMES_PRODUCES +# gEfiDriverBindingProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiSimpleTextOutProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGraphicsOutputProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiHiiFontProtocolGuid +# +# ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled +# gEfiUgaDrawProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentNameProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentName2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfigurationProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfiguration2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnosticsProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnostics2ProtocolGuid +# +# gEfiSmmCpuIo2ProtocolGuid +# +# ## CONSUMES +# gUsraProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiLoadedImageProtocolGuid +# +# ## CONSUMES +# gEfiAcpiSdtProtocolGuid +# +# +# [Ppis.X64] +# +# [Guids.X64] +# gEfiEndOfDxeEventGroupGuid +# +# gEfiAcpiTableGuid +# +# gSiPolicyHobGuid +# +# gPchPolicyHobGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVTUTF8Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100PlusGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPcAnsiGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiUartDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiSasDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventReadyToBootGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventLegacyBootGuid +# +# ## SOMETIMES_CONSUMES ## Variable +# gEfiGlobalVariableGuid +# +# ## CONSUMES ## SystemTable +# gEfiDxeServicesTableGuid +# +# ## CONSUMES ## SystemTable +# gEfiHobListGuid +# +# gPlatformGpioConfigGuid +# +# gEfiCpRcPkgTokenSpaceGuid +# +# +[PcdEx.X64] + gEfiCpRcPkgTokenSpaceGuid.PcdPcieMmcfgTablePtr + + +# [LibraryClasses.X64] +# ## @LIB_INSTANCES +# # MdePkg/Library/BaseLib/BaseLib.inf +# # MdePkg/Library/DxePcdLib/DxePcdLib.inf +# # MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf +# # MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +# # MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf +# # MdePkg/Library/BasePrintLib/BasePrintLib.inf +# # MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf +# # MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf +# # MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf +# # MdePkg/Library/UefiLib/UefiLib.inf +# # MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf +# # MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf +# # PurleyRcPkg/Library/DxeMmPciBaseLib/DxeMmPciBaseLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchInfoLib/PeiDxeSmmPchInfoLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchP2sbLib/PeiDxeSmmPchP2sbLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchPcrLib/PeiDxeSmmPchPcrLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchSbiAccessLib/PeiDxeSmmPchSbiAccessLib.inf +# # MdePkg/Library/DxeHobLib/DxeHobLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchCycleDecodingLib/PeiDxeSmmPchCycleDecodingLib.inf +# # MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf +# # LewisburgPkg/Library/PeiDxeSmmGpioLib/PeiDxeSmmGpioLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchPcieRpLib/PeiDxeSmmPchPcieRpLib.inf +# # MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf +# # MdePkg/Library/BaseS3BootScriptLibNull/BaseS3BootScriptLibNull.inf +# # LewisburgPkg/LibraryPrivate/PeiDxeSmmPchPciExpressHelpersLib/PeiDxeSmmPchPciExpressHelpersLib.inf +# # PcAtChipsetPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf +# # MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf +# # LewisburgPkg/Library/DxeAslUpdateLib/DxeAslUpdateLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchSerialIoLib/PeiDxeSmmPchSerialIoLib.inf +# # LewisburgPkg/LibraryPrivate/DxePchHdaLib/DxePchHdaLib.inf +# # LewisburgPkg/LibraryPrivate/PeiDxeSmmPchInitCommonLib/PeiDxeSmmPchInitCommonLib.inf +# # PurleyRcPkg/Library/PcieAddressLib/PcieAddressLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchPmcLib/PeiDxeSmmPchPmcLib.inf +# +# [Depex.X64] +# # (gEfiPciHostBridgeResourceAllocationProtocolGuid ## This is to ensure that PCI MMIO and IO resource has been prepared and available for this driver to allocate.) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gUsraProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid) +# +# +# +# +# +# [BuildOptions.X64] +# ## @AsBuilt +# ## MSFT:RELEASE_VS2015x86_X64_OPTROM_FLAGS = -e +# ## MSFT:RELEASE_VS2015x86_X64_VFR_FLAGS = -n +# ## MSFT:RELEASE_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for +# ## MSFT:RELEASE_VS2015x86_X64_GENFW_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG +# ## MSFT:RELEASE_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE +# ## MSFT:RELEASE_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi +# ## MSFT:RELEASE_VS2015x86_X64_ASL_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE /Zi /Gm +# ## MSFT:RELEASE_VS2015x86_X64_NASMB_FLAGS = -f bin +# ## MSFT:RELEASE_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_APP_FLAGS = /nologo /E /TC -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_DLINK2_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG +# ## MSFT:RELEASE_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for +# ## MSFT:RELEASE_VS2015x86_X64_MAKE_FLAGS = /nologo +# ## MSFT:RELEASE_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny +# ## MSFT:RELEASE_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 +# ## @file +# # Component description file for the Pch SMI Dispatch Handlers module +# # +# # @copyright +# # Copyright (c) 1999 - 2015 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 the +# # 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. +# # This file contains an 'Intel Peripheral Driver' and is uniquely +# # identified as "Intel Reference Module" and is licensed for Intel +# # CPUs and chipsets under the terms of your license agreement with +# # Intel or your vendor. This file may be modified by the user, subject +# # to additional terms of the license agreement. +# # +# #@par Specification Reference: +# # +# ## +# +# # DO NOT EDIT +# # FILE auto-generated +# +# [Defines] +# INF_VERSION = 0x00010017 +# BASE_NAME = PchSmiDispatcher +# FILE_GUID = B0D6ED53-B844-43f5-BD2F-61095264E77E +# MODULE_TYPE = DXE_SMM_DRIVER +# VERSION_STRING = 1.0 +# PI_SPECIFICATION_VERSION = 0x0001000a +# ENTRY_POINT = InitializePchSmmDispatcher +# +[Packages.X64] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + PurleyRefreshSiliconPkg/SiPkg.dec + +# [Binaries.X64] +# PE32|PchSmiDispatcher.efi +# SMM_DEPEX|PchSmiDispatcher.depex +# DISPOSABLE|PchSmiDispatcher.pdb +# +[PatchPcd.X64] + +# [Protocols.X64] +# ##CONSUMES +# gEfiPciRootBridgeIoProtocolGuid +# +# ##PRODUCES +# gEfiSmmGpiDispatch2ProtocolGuid +# +# ##PRODUCES +# gEfiSmmSxDispatch2ProtocolGuid +# +# ##PRODUCES +# gEfiSmmSwDispatch2ProtocolGuid +# +# ##PRODUCES +# gEfiSmmUsbDispatch2ProtocolGuid +# +# ##PRODUCES +# gEfiSmmPowerButtonDispatch2ProtocolGuid +# +# ##PRODUCES +# gEfiSmmPeriodicTimerDispatch2ProtocolGuid +# +# ## CONSUMES +# ##CONSUMES +# gEfiSmmBase2ProtocolGuid +# +# ##CONSUMES +# gEfiSmmCpuProtocolGuid +# +# ## CONSUMES +# gEfiSmmReadyToLockProtocolGuid +# +# ##PRODUCES +# gEfiSmmIoTrapDispatch2ProtocolGuid +# +# ##PRODUCES +# gPchSmmIoTrapControlGuid +# +# ##PRODUCES +# gPchTcoSmiDispatchProtocolGuid +# +# ##PRODUCES +# gPchPcieSmiDispatchProtocolGuid +# +# ##PRODUCES +# gPchAcpiSmiDispatchProtocolGuid +# +# ##PRODUCES +# gPchGpioUnlockSmiDispatchProtocolGuid +# +# ##PRODUCES +# gPchSmiDispatchProtocolGuid +# +# ##PRODUCES +# gPchEspiSmiDispatchProtocolGuid +# +# ## PRODUCES +# gPchSmmPeriodicTimerControlGuid +# +# ## CONSUMES +# gPchNvsAreaProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gPcdProtocolGuid +# +# ## CONSUMES +# gEfiPcdProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGetPcdInfoProtocolGuid +# +# ## CONSUMES +# gEfiSmmAccess2ProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiDevicePathProtocolGuid +# +# ## UNDEFINED +# gEfiDebugPortProtocolGuid +# +# ## SOMETIMES_PRODUCES +# gEfiDriverBindingProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiSimpleTextOutProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGraphicsOutputProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiHiiFontProtocolGuid +# +# ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled +# gEfiUgaDrawProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentNameProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentName2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfigurationProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfiguration2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnosticsProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnostics2ProtocolGuid +# +# gEfiSmmCpuIo2ProtocolGuid +# +# ## CONSUMES +# gUsraProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiLoadedImageProtocolGuid +# +# ## CONSUMES +# gEfiSmmStatusCodeProtocolGuid +# +# +# [Ppis.X64] +# +# [Guids.X64] +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVTUTF8Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100PlusGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPcAnsiGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiUartDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiSasDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventReadyToBootGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventLegacyBootGuid +# +# ## SOMETIMES_CONSUMES ## Variable +# gEfiGlobalVariableGuid +# +# ## CONSUMES ## SystemTable +# gEfiHobListGuid +# +# gPlatformGpioConfigGuid +# +# ## SOMETIMES_CONSUMES ## UNDEFINED +# gEfiStatusCodeSpecificDataGuid +# +# ## SOMETIMES_CONSUMES ## UNDEFINED +# gEfiStatusCodeDataTypeDebugGuid +# +# ## SOMETIMES_CONSUMES ## UNDEFINED # Locate protocol +# gSmmPerformanceProtocolGuid +# +# ## SOMETIMES_CONSUMES ## UNDEFINED # Locate protocol +# gSmmPerformanceExProtocolGuid +# +# ## CONSUMES ## SystemTable +# gEfiDxeServicesTableGuid +# +# +[PcdEx.X64] + +# [LibraryClasses.X64] +# ## @LIB_INSTANCES +# # MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf +# # MdePkg/Library/BaseLib/BaseLib.inf +# # MdePkg/Library/DxePcdLib/DxePcdLib.inf +# # MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +# # MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf +# # MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf +# # MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf +# # MdePkg/Library/BasePrintLib/BasePrintLib.inf +# # MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf +# # MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf +# # MdePkg/Library/UefiLib/UefiLib.inf +# # MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf +# # PurleyRcPkg/Library/DxeMmPciBaseLib/SmmMmPciBaseLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchInfoLib/PeiDxeSmmPchInfoLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchP2sbLib/PeiDxeSmmPchP2sbLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchPcrLib/PeiDxeSmmPchPcrLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchSbiAccessLib/PeiDxeSmmPchSbiAccessLib.inf +# # MdePkg/Library/DxeHobLib/DxeHobLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchCycleDecodingLib/PeiDxeSmmPchCycleDecodingLib.inf +# # MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf +# # LewisburgPkg/Library/PeiDxeSmmGpioLib/PeiDxeSmmGpioLib.inf +# # MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf +# # MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf +# # LewisburgPkg/Library/PeiDxeSmmPchEspiLib/PeiDxeSmmPchEspiLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchPcieRpLib/PeiDxeSmmPchPcieRpLib.inf +# # MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCodeLib.inf +# # MdeModulePkg/Library/SmmPerformanceLib/SmmPerformanceLib.inf +# # MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf +# # LewisburgPkg/LibraryPrivate/PeiDxeSmmGpioPrivateLib/PeiDxeSmmGpioPrivateLib.inf +# # MdePkg/Library/BaseS3BootScriptLibNull/BaseS3BootScriptLibNull.inf +# # PcAtChipsetPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf +# # MdePkg/Library/SmiHandlerProfileLibNull/SmiHandlerProfileLibNull.inf +# +# [Depex.X64] +# # (gEfiPciRootBridgeIoProtocolGuid AND gEfiPciHostBridgeResourceAllocationProtocolGuid AND ## This is to ensure that PCI MMIO resource has been prepared and available for this driver to allocate. gEfiSmmCpuProtocolGuid AND gEfiSmmBase2ProtocolGuid AND ## This is for SmmServicesTableLib gPchNvsAreaProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiSmmBase2ProtocolGuid) AND (gEfiSmmAccess2ProtocolGuid) AND (gEfiSmmCpuIo2ProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid) +# +# +# +# +# +# [BuildOptions.X64] +# ## @AsBuilt +# ## MSFT:RELEASE_VS2015x86_X64_OPTROM_FLAGS = -e +# ## MSFT:RELEASE_VS2015x86_X64_VFR_FLAGS = -n +# ## MSFT:RELEASE_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for +# ## MSFT:RELEASE_VS2015x86_X64_GENFW_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG +# ## MSFT:RELEASE_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE +# ## MSFT:RELEASE_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi +# ## MSFT:RELEASE_VS2015x86_X64_ASL_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE /Zi /Gm +# ## MSFT:RELEASE_VS2015x86_X64_NASMB_FLAGS = -f bin +# ## MSFT:RELEASE_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_APP_FLAGS = /nologo /E /TC -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_DLINK2_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG /ALIGN:4096 +# ## MSFT:RELEASE_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for +# ## MSFT:RELEASE_VS2015x86_X64_MAKE_FLAGS = /nologo +# ## MSFT:RELEASE_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny +# ## MSFT:RELEASE_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 +# ## @file +# # Component description file for PchInitSmm driver +# # +# # @copyright +# # Copyright (c) 2010 - 2015 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 the +# # 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. +# # This file contains an 'Intel Peripheral Driver' and is uniquely +# # identified as "Intel Reference Module" and is licensed for Intel +# # CPUs and chipsets under the terms of your license agreement with +# # Intel or your vendor. This file may be modified by the user, subject +# # to additional terms of the license agreement. +# # +# #@par Specification Reference: +# # +# ## +# +# # DO NOT EDIT +# # FILE auto-generated +# +# [Defines] +# INF_VERSION = 0x00010017 +# BASE_NAME = PchInitSmm +# FILE_GUID = D7B10D4E-67E6-4C74-83E9-F9AF0ACC33CC +# MODULE_TYPE = DXE_SMM_DRIVER +# VERSION_STRING = 1.0 +# PI_SPECIFICATION_VERSION = 0x0001000a +# ENTRY_POINT = PchInitSmmEntryPoint +# +[Packages.X64] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + PurleyRefreshSiliconPkg/SiPkg.dec + +# [Binaries.X64] +# PE32|PchInitSmm.efi +# SMM_DEPEX|PchInitSmm.depex +# DISPOSABLE|PchInitSmm.pdb +# +[PatchPcd.X64] + +# [Protocols.X64] +# ## CONSUMES +# gEfiSmmIoTrapDispatch2ProtocolGuid +# +# ## CONSUMES +# gEfiSmmSxDispatch2ProtocolGuid +# +# ## CONSUMES +# gPchSmmIoTrapControlGuid +# +# ## CONSUMES +# gEfiSmmCpuProtocolGuid +# +# ## CONSUMES +# gPchNvsAreaProtocolGuid +# +# ## CONSUMES +# gPchPcieSmiDispatchProtocolGuid +# +# ## CONSUMES +# gPchTcoSmiDispatchProtocolGuid +# +# ## CONSUMES +# gPchSmiDispatchProtocolGuid +# +# ## CONSUMES +# gPchEspiSmiDispatchProtocolGuid +# +# ## PRODUCES +# gPchPcieIoTrapProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gPcdProtocolGuid +# +# ## CONSUMES +# gEfiPcdProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGetPcdInfoProtocolGuid +# +# ## CONSUMES +# gEfiSmmBase2ProtocolGuid +# +# ## CONSUMES +# gEfiSmmAccess2ProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiDevicePathProtocolGuid +# +# ## UNDEFINED +# gEfiDebugPortProtocolGuid +# +# ## SOMETIMES_PRODUCES +# gEfiDriverBindingProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiSimpleTextOutProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGraphicsOutputProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiHiiFontProtocolGuid +# +# ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled +# gEfiUgaDrawProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentNameProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentName2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfigurationProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfiguration2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnosticsProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnostics2ProtocolGuid +# +# gEfiSmmCpuIo2ProtocolGuid +# +# ## CONSUMES +# gUsraProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiLoadedImageProtocolGuid +# +# ## CONSUMES +# gEfiSmmStatusCodeProtocolGuid +# +# +# [Ppis.X64] +# +# [Guids.X64] +# gSiPolicyHobGuid +# +# gPchPolicyHobGuid +# +# gPchDeviceTableHobGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVTUTF8Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100PlusGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPcAnsiGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiUartDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiSasDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventReadyToBootGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventLegacyBootGuid +# +# ## SOMETIMES_CONSUMES ## Variable +# gEfiGlobalVariableGuid +# +# ## CONSUMES ## SystemTable +# gEfiHobListGuid +# +# gPlatformGpioConfigGuid +# +# ## CONSUMES ## SystemTable +# gEfiDxeServicesTableGuid +# +# ## SOMETIMES_CONSUMES ## UNDEFINED +# gEfiStatusCodeSpecificDataGuid +# +# ## SOMETIMES_CONSUMES ## UNDEFINED +# gEfiStatusCodeDataTypeDebugGuid +# +# +[PcdEx.X64] + +# [LibraryClasses.X64] +# ## @LIB_INSTANCES +# # MdePkg/Library/DxePcdLib/DxePcdLib.inf +# # MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf +# # MdePkg/Library/BaseLib/BaseLib.inf +# # MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +# # MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf +# # MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf +# # MdePkg/Library/BasePrintLib/BasePrintLib.inf +# # MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf +# # MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf +# # MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf +# # MdePkg/Library/UefiLib/UefiLib.inf +# # MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf +# # PurleyRcPkg/Library/DxeMmPciBaseLib/SmmMmPciBaseLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchInfoLib/PeiDxeSmmPchInfoLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchP2sbLib/PeiDxeSmmPchP2sbLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchPcrLib/PeiDxeSmmPchPcrLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchSbiAccessLib/PeiDxeSmmPchSbiAccessLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchCycleDecodingLib/PeiDxeSmmPchCycleDecodingLib.inf +# # MdePkg/Library/DxeHobLib/DxeHobLib.inf +# # MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchPcieRpLib/PeiDxeSmmPchPcieRpLib.inf +# # LewisburgPkg/Library/PeiDxeSmmGpioLib/PeiDxeSmmGpioLib.inf +# # MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf +# # MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf +# # MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf +# # MdePkg/Library/BaseS3BootScriptLibNull/BaseS3BootScriptLibNull.inf +# # LewisburgPkg/LibraryPrivate/PeiDxeSmmPchPciExpressHelpersLib/PeiDxeSmmPchPciExpressHelpersLib.inf +# # LewisburgPkg/LibraryPrivate/PeiDxeSmmGpioPrivateLib/PeiDxeSmmGpioPrivateLib.inf +# # MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCodeLib.inf +# # PcAtChipsetPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf +# +# [Depex.X64] +# # (gEfiSmmIoTrapDispatch2ProtocolGuid AND gEfiSmmSxDispatch2ProtocolGuid AND gPchSmmIoTrapControlGuid AND gPchPcieSmiDispatchProtocolGuid AND gPchTcoSmiDispatchProtocolGuid AND gEfiSmmCpuProtocolGuid AND gPchNvsAreaProtocolGuid AND gEfiPciHostBridgeResourceAllocationProtocolGuid AND # This is to ensure that PCI MMIO resource has been prepared and available for this driver to allocate. gEfiSmmBase2ProtocolGuid # This is for SmmServicesTableLib) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiSmmBase2ProtocolGuid) AND (gEfiSmmAccess2ProtocolGuid) AND (gEfiSmmCpuIo2ProtocolGuid) AND +# # (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid) +# +# +# +# # +# # The following information is for reference only and not required by the build tools. +# # +# # VALID_ARCHITECTURES = IA32 X64 +# # +# +# [BuildOptions.X64] +# ## @AsBuilt +# ## MSFT:RELEASE_VS2015x86_X64_OPTROM_FLAGS = -e +# ## MSFT:RELEASE_VS2015x86_X64_VFR_FLAGS = -n +# ## MSFT:RELEASE_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for +# ## MSFT:RELEASE_VS2015x86_X64_GENFW_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG +# ## MSFT:RELEASE_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE +# ## MSFT:RELEASE_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi +# ## MSFT:RELEASE_VS2015x86_X64_ASL_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE /Zi /Gm +# ## MSFT:RELEASE_VS2015x86_X64_NASMB_FLAGS = -f bin +# ## MSFT:RELEASE_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_APP_FLAGS = /nologo /E /TC -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_DLINK2_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG /ALIGN:4096 +# ## MSFT:RELEASE_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for +# ## MSFT:RELEASE_VS2015x86_X64_MAKE_FLAGS = /nologo +# ## MSFT:RELEASE_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny +# ## MSFT:RELEASE_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 +# ## @file +# # Component description file for SmmControl module +# # +# # @copyright +# # Copyright (c) 1999 - 2014 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 the +# # 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. +# # This file contains an 'Intel Peripheral Driver' and is uniquely +# # identified as "Intel Reference Module" and is licensed for Intel +# # CPUs and chipsets under the terms of your license agreement with +# # Intel or your vendor. This file may be modified by the user, subject +# # to additional terms of the license agreement. +# # +# #@par Specification Reference: +# # +# ## +# +# # DO NOT EDIT +# # FILE auto-generated +# +# [Defines] +# INF_VERSION = 0x00010017 +# BASE_NAME = SmmControl +# FILE_GUID = A0BAD9F7-AB78-491b-B583-C52B7F84B9E0 +# MODULE_TYPE = DXE_RUNTIME_DRIVER +# VERSION_STRING = 1.0 +# ENTRY_POINT = SmmControlDriverEntryInit +# +[Packages.X64] + MdePkg/MdePkg.dec + PurleyRefreshSiliconPkg/SiPkg.dec + +# [Binaries.X64] +# PE32|SmmControl.efi +# DXE_DEPEX|SmmControl.depex +# DISPOSABLE|SmmControl.pdb +# +[PatchPcd.X64] + +# [Protocols.X64] +# gEfiSmmControl2ProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gPcdProtocolGuid +# +# ## CONSUMES +# gEfiPcdProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiDevicePathProtocolGuid +# +# ## UNDEFINED +# gEfiDebugPortProtocolGuid +# +# ## SOMETIMES_PRODUCES +# gEfiDriverBindingProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiSimpleTextOutProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGraphicsOutputProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiHiiFontProtocolGuid +# +# ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled +# gEfiUgaDrawProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentNameProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentName2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfigurationProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfiguration2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnosticsProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnostics2ProtocolGuid +# +# gEfiSmmCpuIo2ProtocolGuid +# +# ## CONSUMES +# gUsraProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiLoadedImageProtocolGuid +# +# +# [Ppis.X64] +# +# [Guids.X64] +# gEfiEventVirtualAddressChangeGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVTUTF8Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100PlusGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPcAnsiGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiUartDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiSasDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventReadyToBootGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventLegacyBootGuid +# +# ## SOMETIMES_CONSUMES ## Variable +# gEfiGlobalVariableGuid +# +# ## CONSUMES ## SystemTable +# gEfiDxeServicesTableGuid +# +# ## CONSUMES ## SystemTable +# gEfiHobListGuid +# +# gPlatformGpioConfigGuid +# +# +[PcdEx.X64] + +# [LibraryClasses.X64] +# ## @LIB_INSTANCES +# # MdePkg/Library/DxePcdLib/DxePcdLib.inf +# # MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf +# # MdePkg/Library/BaseLib/BaseLib.inf +# # MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +# # MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf +# # MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf +# # MdePkg/Library/BasePrintLib/BasePrintLib.inf +# # MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf +# # MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf +# # MdePkg/Library/UefiLib/UefiLib.inf +# # MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf +# # MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf +# # PurleyRcPkg/Library/DxeMmPciBaseLib/DxeMmPciBaseLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchInfoLib/PeiDxeSmmPchInfoLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchP2sbLib/PeiDxeSmmPchP2sbLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchPcrLib/PeiDxeSmmPchPcrLib.inf +# # MdePkg/Library/DxeHobLib/DxeHobLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchSbiAccessLib/PeiDxeSmmPchSbiAccessLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchCycleDecodingLib/PeiDxeSmmPchCycleDecodingLib.inf +# # MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf +# # LewisburgPkg/Library/PeiDxeSmmGpioLib/PeiDxeSmmGpioLib.inf +# +# [Depex.X64] +# # (TRUE) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gUsraProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid) +# +# +# +# # +# # The following information is for reference only and not required by the build tools. +# # +# # VALID_ARCHITECTURES = IA32 X64 +# # +# +# [BuildOptions.X64] +# ## @AsBuilt +# ## MSFT:RELEASE_VS2015x86_X64_OPTROM_FLAGS = -e +# ## MSFT:RELEASE_VS2015x86_X64_VFR_FLAGS = -n +# ## MSFT:RELEASE_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for +# ## MSFT:RELEASE_VS2015x86_X64_GENFW_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG +# ## MSFT:RELEASE_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE +# ## MSFT:RELEASE_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi +# ## MSFT:RELEASE_VS2015x86_X64_ASL_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE /Zi /Gm +# ## MSFT:RELEASE_VS2015x86_X64_NASMB_FLAGS = -f bin +# ## MSFT:RELEASE_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_APP_FLAGS = /nologo /E /TC -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_DLINK2_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG /ALIGN:4096 +# ## MSFT:RELEASE_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for +# ## MSFT:RELEASE_VS2015x86_X64_MAKE_FLAGS = /nologo +# ## MSFT:RELEASE_VS2015x86_X64_ASMLINK_FLAGS = /nologo /tiny +# ## MSFT:RELEASE_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 +# ## @file +# # Component description file for the SPI SMM driver. +# # +# # @copyright +# # Copyright (c) 2008 - 2015 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 the +# # 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. +# # This file contains an 'Intel Peripheral Driver' and is uniquely +# # identified as "Intel Reference Module" and is licensed for Intel +# # CPUs and chipsets under the terms of your license agreement with +# # Intel or your vendor. This file may be modified by the user, subject +# # to additional terms of the license agreement. +# # +# #@par Specification Reference: +# # +# ## +# +# # DO NOT EDIT +# # FILE auto-generated +# +# [Defines] +# INF_VERSION = 0x00010017 +# BASE_NAME = PchSpiSmm +# FILE_GUID = 27F4917B-A707-4aad-9676-26DF168CBF0D +# MODULE_TYPE = DXE_SMM_DRIVER +# VERSION_STRING = 1.0 +# PI_SPECIFICATION_VERSION = 0x0001000a +# ENTRY_POINT = InstallPchSpi +# +[Packages.X64] + MdePkg/MdePkg.dec + PurleyRefreshSiliconPkg/SiPkg.dec + +# [Binaries.X64] +# PE32|PchSpiSmm.efi +# SMM_DEPEX|PchSpiSmm.depex +# DISPOSABLE|PchSpiSmm.pdb +# +[PatchPcd.X64] + +# [Protocols.X64] +# # PRODUCES #SERVER_BIOS +# gEfiSmmSpiProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gPcdProtocolGuid +# +# ## CONSUMES +# gEfiPcdProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gGetPcdInfoProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGetPcdInfoProtocolGuid +# +# ## CONSUMES +# gEfiSmmBase2ProtocolGuid +# +# ## CONSUMES +# gEfiSmmAccess2ProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiDevicePathProtocolGuid +# +# ## UNDEFINED +# gEfiDebugPortProtocolGuid +# +# ## SOMETIMES_PRODUCES +# gEfiDriverBindingProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiSimpleTextOutProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiGraphicsOutputProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiHiiFontProtocolGuid +# +# ## SOMETIMES_CONSUMES # Consumes if gEfiGraphicsOutputProtocolGuid uninstalled +# gEfiUgaDrawProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentNameProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiComponentName2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfigurationProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverConfiguration2ProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnosticsProtocolGuid +# +# ## SOMETIMES_PRODUCES # User chooses to produce it +# gEfiDriverDiagnostics2ProtocolGuid +# +# gEfiSmmCpuIo2ProtocolGuid +# +# ## CONSUMES +# gUsraProtocolGuid +# +# ## SOMETIMES_CONSUMES +# gEfiLoadedImageProtocolGuid +# +# +# [Ppis.X64] +# +# [Guids.X64] +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVTUTF8Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100Guid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVT100PlusGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPcAnsiGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiUartDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiSasDevicePathGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualDiskGuid +# +# ## SOMETIMES_CONSUMES ## GUID +# gEfiPersistentVirtualCdGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventReadyToBootGuid +# +# ## SOMETIMES_CONSUMES ## Event +# gEfiEventLegacyBootGuid +# +# ## SOMETIMES_CONSUMES ## Variable +# gEfiGlobalVariableGuid +# +# +[PcdEx.X64] + +# [LibraryClasses.X64] +# ## @LIB_INSTANCES +# # MdePkg/Library/BaseMemoryLibRepStr/BaseMemoryLibRepStr.inf +# # MdePkg/Library/DxePcdLib/DxePcdLib.inf +# # MdePkg/Library/BaseLib/BaseLib.inf +# # MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf +# # MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf +# # MdePkg/Library/SmmServicesTableLib/SmmServicesTableLib.inf +# # MdePkg/Library/SmmMemoryAllocationLib/SmmMemoryAllocationLib.inf +# # MdePkg/Library/BasePrintLib/BasePrintLib.inf +# # MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf +# # MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf +# # MdePkg/Library/UefiLib/UefiLib.inf +# # MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf +# # PurleyRcPkg/Library/DxeMmPciBaseLib/SmmMmPciBaseLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchInfoLib/PeiDxeSmmPchInfoLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchP2sbLib/PeiDxeSmmPchP2sbLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchPcrLib/PeiDxeSmmPchPcrLib.inf +# # LewisburgPkg/Library/PeiDxeSmmPchCycleDecodingLib/PeiDxeSmmPchCycleDecodingLib.inf +# # MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf +# # LewisburgPkg/LibraryPrivate/BasePchSpiCommonLib/BasePchSpiCommonLib.inf +# +# [Depex.X64] +# # (gEfiSmmBase2ProtocolGuid #This is for SmmServicesTableLib AND gEfiSmmCpuProtocolGuid # This is for CpuSmmDisableBiosWriteProtect()) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiPcdProtocolGuid) AND (gEfiSmmBase2ProtocolGuid) AND (gEfiSmmAccess2ProtocolGuid) AND (gEfiSmmCpuIo2ProtocolGuid) AND (gEfiBdsArchProtocolGuid AND gEfiCpuArchProtocolGuid AND gEfiMetronomeArchProtocolGuid AND gEfiMonotonicCounterArchProtocolGuid AND gEfiRealTimeClockArchProtocolGuid AND gEfiResetArchProtocolGuid AND gEfiRuntimeArchProtocolGuid AND gEfiSecurityArchProtocolGuid AND gEfiTimerArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid AND gEfiVariableArchProtocolGuid AND gEfiWatchdogTimerArchProtocolGuid) +# +# +# +# +# +# [BuildOptions.X64] +# ## @AsBuilt +# ## MSFT:RELEASE_VS2015x86_X64_OPTROM_FLAGS = -e +# ## MSFT:RELEASE_VS2015x86_X64_VFR_FLAGS = -n +# ## MSFT:RELEASE_VS2015x86_X64_PP_FLAGS = /nologo /E /TC /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_SYMRENAME_FLAGS = Symbol renaming not needed for +# ## MSFT:RELEASE_VS2015x86_X64_GENFW_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_SLINK_FLAGS = /NOLOGO /LTCG +# ## MSFT:RELEASE_VS2015x86_X64_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE +# ## MSFT:RELEASE_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi +# ## MSFT:RELEASE_VS2015x86_X64_ASL_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE /Zi /Gm +# ## MSFT:RELEASE_VS2015x86_X64_NASMB_FLAGS = -f bin +# ## MSFT:RELEASE_VS2015x86_X64_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_APP_FLAGS = /nologo /E /TC -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_DLINK2_FLAGS = +# ## MSFT:RELEASE_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG /ALIGN:4096 +# ## MSFT:RELEASE_VS2015x86_X64_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h -D CRB_FLAG -D TRAD_FLAG=1 $(ULT_BUILD_OPTION) -D PCH_SERVER_BIOS_FLAG=1 -D SUS_WELL_RESTORE=1 -D SERVER_BIOS_FLAG=1 -D PCH_SPT -D PURLEY_FLAG $(SPARING_SCRATCHPAD_OPTION) $(TRACE_HUB_DEBUG_BUILD_OPTIONS) $(TRACE_HUB_INIT_BUILD_OPTIONS) -D MAX_SOCKET=2 -D EFI_PCI_IOV_SUPPORT -D WHEA_SUPPORT -D SKX_HOST -D CLX_HOST -D MDEPKG_NDEBUG -D SILENT_MODE +# ## MSFT:RELEASE_VS2015x86_X64_OBJCOPY_FLAGS = objcopy not needed for +# ## MSFT:RELEASE_VS2015x86_X64_MAKE_FLAGS = /nologo -- 2.27.0.windows.1