diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /ReferenceCode/Chipset/LynxPoint/Wdt/Pei | |
download | zprj-b7c51c9cf4864df6aabb99a1ae843becd577237c.tar.xz |
Diffstat (limited to 'ReferenceCode/Chipset/LynxPoint/Wdt/Pei')
-rw-r--r-- | ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.c | 280 | ||||
-rw-r--r-- | ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.cif | 12 | ||||
-rw-r--r-- | ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.dxs | 31 | ||||
-rw-r--r-- | ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.mak | 94 | ||||
-rw-r--r-- | ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.sdl | 78 | ||||
-rw-r--r-- | ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPeim.inf | 87 |
6 files changed, 582 insertions, 0 deletions
diff --git a/ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.c b/ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.c new file mode 100644 index 0000000..c1d1e03 --- /dev/null +++ b/ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.c @@ -0,0 +1,280 @@ +/** @file + Implementation file for Watchdog Timer functionality + +@copyright + Copyright (c) 2010 - 2012 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. + + This file contains an 'Intel Peripheral Driver' and 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 + +**/ +#if !defined(EDK_RELEASE_VERSION) || (EDK_RELEASE_VERSION < 0x00020000) +#include "EdkIIGluePeim.h" +#endif + +#include EFI_PPI_CONSUMER (PchReset) +#include "WdtCommon.h" +#include EFI_PPI_PRODUCER (Wdt) + +EFI_STATUS +EFIAPI +WdtPchResetCallback ( + IN PCH_RESET_TYPE PchResetType + ); + +static WDT_PPI mWdtPpi = { + WdtReloadAndStart, + WdtCheckStatus, + WdtDisable, + WdtAllowKnownReset, + IsWdtRequired, + IsWdtEnabled +}; + +static PCH_RESET_CALLBACK_PPI mPchResetCallbackPpi = { WdtPchResetCallback }; + +EFI_STATUS +EndOfPeiCallback ( + IN EFI_PEI_SERVICES **PeiServices, + IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor, + IN VOID *Ppi + ); + +static EFI_PEI_PPI_DESCRIPTOR mInstallWdtPpi = { + EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST, + &gWdtPpiGuid, + &mWdtPpi +}; + +static EFI_PEI_PPI_DESCRIPTOR mInstallPchResetCallbackPpi = { + EFI_PEI_PPI_DESCRIPTOR_PPI | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST, + &gPchResetCallbackPpiGuid, + &mPchResetCallbackPpi +}; + +static EFI_PEI_NOTIFY_DESCRIPTOR mNotifyList = { + (EFI_PEI_PPI_DESCRIPTOR_NOTIFY_CALLBACK | EFI_PEI_PPI_DESCRIPTOR_TERMINATE_LIST), + &gEndOfPeiSignalPpiGuid, + EndOfPeiCallback +}; + +#define MINIMUM_TIMEOUT_AT_S3_EXIT 10 ///< seconds + +/** + Reads PCH registers to check if platform wakes from S3/S4 + + @param[in] None + + @retval TRUE if platfrom wakes from S3/S4 + @retval FALSE otherwise +**/ +UINT8 +IsWakeFromS3_S4 ( + VOID + ) +{ + UINT32 Address; + UINT16 SleepType; + + Address = MmioRead32 ( + MmPciAddress (0, + DEFAULT_PCI_BUS_NUMBER_PCH, + PCI_DEVICE_NUMBER_PCH_LPC, + PCI_FUNCTION_NUMBER_PCH_LPC, + R_PCH_LPC_ACPI_BASE) + ) & B_PCH_LPC_ACPI_BASE_BAR; + + if (IoRead16 (Address + R_PCH_ACPI_PM1_STS) & B_PCH_ACPI_PM1_STS_WAK) { + SleepType = IoRead16 (Address + R_PCH_ACPI_PM1_CNT) & B_PCH_ACPI_PM1_CNT_SLP_TYP; + if ((SleepType == V_PCH_ACPI_PM1_CNT_S3) || (SleepType == V_PCH_ACPI_PM1_CNT_S4)) { + return TRUE; + } + } + + return FALSE; +} + +/** + Initializes watchdog failure bits. + If there was an unexpected reset, enforces WDT expiration. + Stores initial WDT state in a HOB, it is useful in flows with S3/S4 resume. + Stops watchdog. + Installs watchdog PPI for other modules to use. + + @param[in] FfsHeader Pointer to Firmware File System file header. + @param[in] PeiServices General purpose services available to every PEIM. + + @retval EFI_SUCCESS When everything is OK +**/ +EFI_STATUS +WdtPeiEntryPoint ( + IN EFI_FFS_FILE_HEADER *FfsHeader, + IN EFI_PEI_SERVICES **PeiServices + ) +{ + UINT32 Readback; + EFI_STATUS Status; + UINT16 TimeoutValue; + UINT8 Active; + WDT_HOB *WdtHobPtr; + +#ifndef WDT_SUPPORT_ENABLED + /// + /// clear status bits and disable watchdog, then lock the register + /// + IoWrite32 (WdtGetAddress (), (B_PCH_OC_WDT_CTL_ICCSURV_STS | B_PCH_OC_WDT_CTL_NO_ICCSURV_STS)); + IoWrite32 (WdtGetAddress (), B_PCH_OC_WDT_CTL_LCK); +#endif + + Readback = IoRead32 (WdtGetAddress ()); + + DEBUG ((EFI_D_INFO, "(WDT) Readback = 0x%08x\n", Readback)); + /// + /// Write current Wdt settings to a HOB, they may be be needed in S3/S4 resume paths + /// + if (Readback & B_PCH_OC_WDT_CTL_EN) { + Active = 1; + TimeoutValue = (UINT16) ((Readback & B_PCH_OC_WDT_CTL_TOV_MASK) + 1); + } else { + Active = 0; + TimeoutValue = 0; + } + + Status = (*PeiServices)->CreateHob (PeiServices, EFI_HOB_TYPE_GUID_EXTENSION, sizeof (WDT_HOB), (VOID **) &WdtHobPtr); + if (EFI_ERROR (Status)) { + return Status; + } + + WdtHobPtr->Header.Name = mWdtHobGuid; + WdtHobPtr->Active = Active; + WdtHobPtr->TimeoutValue = TimeoutValue; + /// + /// If there was a WDT expiration, set Failure Status and clear timeout status bits + /// Timeout status bits are cleared by writing '1' + /// + if (Readback & (B_PCH_OC_WDT_CTL_ICCSURV_STS | B_PCH_OC_WDT_CTL_NO_ICCSURV_STS)) { + DEBUG ((EFI_D_ERROR, "(WDT) Expiration detected.\n", Readback)); + Readback |= B_PCH_OC_WDT_CTL_FAILURE_STS; + Readback |= (B_PCH_OC_WDT_CTL_ICCSURV_STS | B_PCH_OC_WDT_CTL_NO_ICCSURV_STS); + Readback &= ~(B_PCH_OC_WDT_CTL_UNXP_RESET_STS); + } else { + /// + /// If there was unexpected reset but no WDT expiration and no resume from S3/S4, + /// clear unexpected reset status and enforce expiration. This is to inform Firmware + /// which has no access to unexpected reset status bit, that something went wrong. + /// + if ((Readback & B_PCH_OC_WDT_CTL_UNXP_RESET_STS) && !IsWakeFromS3_S4 ()) { +#if defined EFI_DEBUG && !defined USE_WDT_IN_DEBUG_BIOS + DEBUG ((EFI_D_ERROR, "(WDT) Unexpected reset detected and ignored.\n")); + Readback &= ~(B_PCH_OC_WDT_CTL_FAILURE_STS | B_PCH_OC_WDT_CTL_UNXP_RESET_STS); + Readback |= (B_PCH_OC_WDT_CTL_ICCSURV_STS | B_PCH_OC_WDT_CTL_NO_ICCSURV_STS); +#else + DEBUG ((EFI_D_ERROR, "(WDT) Unexpected reset detected. Enforcing Wdt expiration.\n")); + WdtReloadAndStart (1); + while (1) { + /// + /// wait for reboot caused by WDT expiration + /// + } +#endif + } else { + /// + /// No WDT expiration and no unexpected reset - clear Failure status + /// + DEBUG ((EFI_D_INFO, "(WDT) Status OK.\n", Readback)); + Readback &= ~(B_PCH_OC_WDT_CTL_FAILURE_STS); + Readback |= (B_PCH_OC_WDT_CTL_ICCSURV_STS | B_PCH_OC_WDT_CTL_NO_ICCSURV_STS); + } + } + + IoWrite32 (WdtGetAddress (), Readback); + /// + /// register an event for EndOfPei. It will support Wdt in resume from S3. + /// + Status = (**PeiServices).NotifyPpi (PeiServices, &mNotifyList); + + Status = (**PeiServices).InstallPpi (PeiServices, &mInstallWdtPpi); + + Status = (**PeiServices).InstallPpi (PeiServices, &mInstallPchResetCallbackPpi); + + ASSERT_EFI_ERROR (Status); + + return Status; +} + +/** + Support for WDT in S3 resume. + If WDT was enabled during S0->S3 transition, this function will turn on WDT + just before waking OS. Timeout value will be overridden if it was too small. + + @param[in] PeiServices General purpose services available to every PEIM. + @param[in] NotifyDescriptor The notification structure this PEIM registered on install. + @param[in] Ppi The memory discovered PPI. Not used. + + @retval EFI_SUCCESS When everything is OK + @retval EFI_NOT_FOUND WdtHob is not found +**/ +EFI_STATUS +EndOfPeiCallback ( + IN EFI_PEI_SERVICES **PeiServices, + IN EFI_PEI_NOTIFY_DESCRIPTOR *NotifyDescriptor, + IN VOID *Ppi + ) +{ + WDT_HOB *WdtHob; + EFI_STATUS Status; + EFI_BOOT_MODE BootMode; + + DEBUG ((EFI_D_INFO, "(WDT) EndOfPeiCallback\n")); + Status = (*PeiServices)->GetBootMode (PeiServices, &BootMode); + ASSERT_EFI_ERROR (Status); + WdtHob = GetFirstGuidHob (&mWdtHobGuid); + if (WdtHob == NULL) { + return EFI_NOT_FOUND; + } + + DEBUG ((EFI_D_INFO, "(WDT) BootMode %d, Hob, active %d, ToV %d\n", BootMode, WdtHob->Active, WdtHob->TimeoutValue)); + + if (BootMode == BOOT_ON_S3_RESUME) { + if (WdtHob->Active == 1) { + if (WdtHob->TimeoutValue < MINIMUM_TIMEOUT_AT_S3_EXIT) { + WdtReloadAndStart (MINIMUM_TIMEOUT_AT_S3_EXIT); + } else { + WdtReloadAndStart (WdtHob->TimeoutValue); + } + } else { + WdtDisable (); + } + } + + return EFI_SUCCESS; +} + +/** + WDT call back function for Pch Reset. + + @param[in] PchResetType Pch Reset Types which includes PowerCycle, Globalreset. + + @retval EFI_SUCCESS The function completed successfully + @retval Others All other error conditions encountered result in an ASSERT. +**/ +EFI_STATUS +EFIAPI +WdtPchResetCallback ( + IN PCH_RESET_TYPE PchResetType + ) +{ + WdtAllowKnownReset (); + return EFI_SUCCESS; +} diff --git a/ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.cif b/ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.cif new file mode 100644 index 0000000..24fbb35 --- /dev/null +++ b/ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.cif @@ -0,0 +1,12 @@ +<component> + name = "WdtPei" + category = ModulePart + LocalRoot = "ReferenceCode\Chipset\LynxPoint\Wdt\Pei\" + RefName = "WdtPei" +[files] +"WdtPei.sdl" +"WdtPei.dxs" +"WdtPei.mak" +"WdtPei.c" +"WdtPeim.inf" +<endComponent> diff --git a/ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.dxs b/ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.dxs new file mode 100644 index 0000000..9531248 --- /dev/null +++ b/ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.dxs @@ -0,0 +1,31 @@ +/** @file + Dependencies file for Watchdog Timer functionality + +@copyright + Copyright (c) 2010 - 2012 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. + + This file contains a 'Sample Driver' and is licensed as such + under the terms of your license agreement with Intel or your + vendor. This file may be modified by the user, subject to + the additional terms of the license agreement + +**/ + + +#include "AutoGen.h" +#include "PeimDepex.h" + +#if defined (BUILD_WITH_GLUELIB) || defined (BUILD_WITH_EDKII_GLUE_LIB) +#include "EfiDepex.h" +#endif + +DEPENDENCY_START + TRUE +DEPENDENCY_END diff --git a/ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.mak b/ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.mak new file mode 100644 index 0000000..1c2df94 --- /dev/null +++ b/ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.mak @@ -0,0 +1,94 @@ +#************************************************************************* +#************************************************************************* +#** ** +#** (C)Copyright 1985-2011, American Megatrends, Inc. ** +#** ** +#** All Rights Reserved. ** +#** ** +#** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +#** ** +#** Phone: (770)-246-8600 ** +#** ** +#************************************************************************* +#************************************************************************* + +#************************************************************************* +# $Header: /Alaska/BIN/Chipset/Intel/SouthBridge/LynxPoint/Intel Pch SB Refcode/Wdt/WdtPei/WdtPei.mak 2 2/24/12 2:32a Victortu $ +# +# $Revision: 2 $ +# +# $Date: 2/24/12 2:32a $ +#************************************************************************* +# Revision History +# ---------------- +# $Log: /Alaska/BIN/Chipset/Intel/SouthBridge/LynxPoint/Intel Pch SB Refcode/Wdt/WdtPei/WdtPei.mak $ +# +# 2 2/24/12 2:32a Victortu +# Updated to support 4.6.5.3_IntelEDK_1117_Patch7_00. +# +# 1 2/08/12 9:33a Yurenlai +# Intel Lynx Point/SB eChipset initially releases. +# +#************************************************************************* +EDK : WdtPei +WdtPei : $(BUILD_DIR)\WdtPei.mak WdtPeiBin + +$(BUILD_DIR)\WdtPei.mak : $(WdtPei_DIR)\$(@B).cif $(BUILD_RULES) + $(CIF2MAK) $(WdtPei_DIR)\$(@B).cif $(CIF2MAK_DEFAULTS) + +WdtPei_INCLUDES=\ + $(EdkIIGlueLib_INCLUDES)\ + $(INTEL_PCH_INCLUDES)\ + $(WdtCommonLib_INCLUDES)\ + +WdtPei_DEFINES=$(MY_DEFINES)\ + /D"__EDKII_GLUE_MODULE_ENTRY_POINT__=WdtPeiEntryPoint"\ + /D __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__ \ + /D __EDKII_GLUE_PEI_DEBUG_LIB_REPORT_STATUS_CODE__ \ + /D __EDKII_GLUE_PEI_REPORT_STATUS_CODE_LIB__ \ + /D __EDKII_GLUE_PEI_SERVICES_LIB__ \ + /D __EDKII_GLUE_BASE_PCI_LIB_PCI_EXPRESS__ \ + /D __EDKII_GLUE_PEI_HOB_LIB__ \ +!IF "$(WDT_SUPPORT_ENABLED)"=="1" + /D WDT_SUPPORT_ENABLED +!ENDIF + +WdtPei_LIBS =\ + $(IntelPchPpiLib_LIB)\ + $(EdkIIGlueBaseLib_LIB)\ + $(EdkIIGlueBaseLibIA32_LIB)\ + $(EdkIIGlueBaseIoLibIntrinsic_LIB)\ + $(EdkIIGluePeiDebugLibReportStatusCode_LIB)\ + $(EdkIIGluePeiReportStatusCodeLib_LIB)\ + $(EdkIIGluePeiServicesLib_LIB) \ + $(EdkIIGlueBasePciLibPciExpress_LIB)\ + $(WdtCommonPeiLib_LIB)\ + $(EDKFRAMEWORKPPILIB)\ + $(EdkIIGluePeiHobLib_LIB) + +WdtPeiBin : $(WdtPei_LIBS) + $(MAKE) /$(MAKEFLAGS) $(EDKIIGLUE_DEFAULTS) \ + /f $(BUILD_DIR)\WdtPei.mak all \ + "MY_INCLUDES = $(WdtPei_INCLUDES)" \ + "MY_DEFINES = $(WdtPei_DEFINES)" \ + GUID=1D88C542-9DF7-424a-AA90-02B61F286938 \ + ENTRY_POINT=_ModuleEntryPoint \ + EDKIIModule=PEIM\ + TYPE=PEIM \ + DEPEX1=$(WdtPei_DIR)\WdtPei.dxs \ + DEPEX1_TYPE=EFI_SECTION_PEI_DEPEX \ + COMPRESS=0 + +#************************************************************************* +#************************************************************************* +#** ** +#** (C)Copyright 1985-2011, American Megatrends, Inc. ** +#** ** +#** All Rights Reserved. ** +#** ** +#** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +#** ** +#** Phone: (770)-246-8600 ** +#** ** +#************************************************************************* +#************************************************************************* diff --git a/ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.sdl b/ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.sdl new file mode 100644 index 0000000..59d48d3 --- /dev/null +++ b/ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPei.sdl @@ -0,0 +1,78 @@ +#************************************************************************* +#************************************************************************* +#** ** +#** (C)Copyright 1985-2011, American Megatrends, Inc. ** +#** ** +#** All Rights Reserved. ** +#** ** +#** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +#** ** +#** Phone: (770)-246-8600 ** +#** ** +#************************************************************************* +#************************************************************************* + +#************************************************************************* +# $Header: /Alaska/BIN/Chipset/Intel/SouthBridge/LynxPoint/Intel Pch SB Refcode/Wdt/WdtPei/WdtPei.sdl 1 2/08/12 9:33a Yurenlai $ +# +# $Revision: 1 $ +# +# $Date: 2/08/12 9:33a $ +#************************************************************************* +# Revision History +# ---------------- +# $Log: /Alaska/BIN/Chipset/Intel/SouthBridge/LynxPoint/Intel Pch SB Refcode/Wdt/WdtPei/WdtPei.sdl $ +# +# 1 2/08/12 9:33a Yurenlai +# Intel Lynx Point/SB eChipset initially releases. +# +#************************************************************************* +TOKEN + Name = "WdtPei_SUPPORT" + Value = "1" + TokenType = Boolean + TargetEQU = Yes + TargetMAK = Yes + TargetH = Yes + Master = Yes + Help = "Main switch to enable Wdt support in Project in PEI Phase" +End + +TOKEN + Name = "WDT_SUPPORT_ENABLED" + Value = "1" + TokenType = Boolean + TargetEQU = Yes + TargetMAK = Yes + TargetH = Yes +End + +MODULE + Help = "Includes WdtPei.mak to Project" + File = "WdtPei.mak" +End + +PATH + Name = "WdtPei_DIR" + Help = "Wdt Support commands" +End + +ELINK + Name = "$(BUILD_DIR)\WdtPei.ffs" + Parent = "FV_BB" + Priority = 30 + InvokeOrder = AfterParent +End +#************************************************************************* +#************************************************************************* +#** ** +#** (C)Copyright 1985-2011, American Megatrends, Inc. ** +#** ** +#** All Rights Reserved. ** +#** ** +#** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +#** ** +#** Phone: (770)-246-8600 ** +#** ** +#************************************************************************* +#************************************************************************* diff --git a/ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPeim.inf b/ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPeim.inf new file mode 100644 index 0000000..2f574a9 --- /dev/null +++ b/ReferenceCode/Chipset/LynxPoint/Wdt/Pei/WdtPeim.inf @@ -0,0 +1,87 @@ +## @file +# Component description file for the watchdog driver. +# +#@copyright +# Copyright (c) 2010 - 2012 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. +# +# This file contains a 'Sample Driver' and is licensed as such +# under the terms of your license agreement with Intel or your +# vendor. This file may be modified by the user, subject to +# the additional terms of the license agreement +# + +[defines] +BASE_NAME = WdtPeim +FILE_GUID = 1D88C542-9DF7-424a-AA90-02B61F286938 +COMPONENT_TYPE = PE32_PEIM + +[sources.common] + WdtPei.c + ../Common/WdtCommon.h + ../Common/WdtCommon.c + +# +# Edk II Glue Driver Entry Point +# + EdkIIGluePeimEntryPoint.c + + +[includes.common] + . + ../Common + $(EDK_SOURCE)/Foundation/Efi + $(EDK_SOURCE)/Foundation/Include + $(EDK_SOURCE)/Foundation/Efi/Include + $(EDK_SOURCE)/Foundation/Framework/Include + $(EFI_SOURCE)/$(PROJECT_PCH_ROOT) + $(EFI_SOURCE)/$(PROJECT_PCH_ROOT)/Include + $(EFI_SOURCE)/$(PROJECT_PCH_ROOT)/Include/Library +# +# EDK II Glue Library utilizes some standard headers from EDK +# + $(EFI_SOURCE) + $(EDK_SOURCE)/Foundation + $(EDK_SOURCE)/Foundation/Framework + $(EDK_SOURCE)/Foundation/Include/IndustryStandard + $(EDK_SOURCE)/Foundation/Core/Dxe + $(EDK_SOURCE)/Foundation/Include/Pei + $(EDK_SOURCE)/Foundation/Library/Dxe/Include + $(EDK_SOURCE)/Foundation/Library/EdkIIGlueLib/Include + +[libraries.common] + $(PROJECT_PCH_FAMILY)PpiLib + EdkIIGlueBaseIoLibIntrinsic + EdkIIGluePeiDebugLibReportStatusCode + EdkIIGluePeiReportStatusCodeLib + EdkIIGluePeiServicesLib + EdkIIGlueBasePciLibPciExpress + PchPlatformLib + EdkFrameworkPpiLib + EdkIIGluePeiHobLib + EdkPpiLib + +[nmake.common] + IMAGE_ENTRY_POINT = _ModuleEntryPoint + DPX_SOURCE = WdtPei.dxs +# +# Module Entry Point +# + C_FLAGS = $(C_FLAGS) -D __EDKII_GLUE_MODULE_ENTRY_POINT__=WdtPeiEntryPoint + C_FLAGS = $(C_FLAGS) -D __EDKII_GLUE_BASE_IO_LIB_INTRINSIC__ \ + -D __EDKII_GLUE_PEI_DEBUG_LIB_REPORT_STATUS_CODE__ \ + -D __EDKII_GLUE_PEI_REPORT_STATUS_CODE_LIB__ \ + -D __EDKII_GLUE_PEI_SERVICES_LIB__ \ + -D __EDKII_GLUE_BASE_PCI_LIB_PCI_EXPRESS__ \ + -D __EDKII_GLUE_PEI_HOB_LIB__ + +# +# Undefine the flag below to disable and lock WDT +# + C_FLAGS = $(C_FLAGS) -DWDT_SUPPORT_ENABLED |