+++ /dev/null
-/*++\r
-\r
-Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved\r
-\r
- SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-\r
-\r
-Module Name:\r
-\r
- HwWatchdogTimer.h\r
-\r
-Abstract:\r
-\r
-\r
---*/\r
-\r
-#ifndef __EFI_WATCHDOG_TIMER_DRIVER_PROTOCOL_H__\r
-#define __EFI_WATCHDOG_TIMER_DRIVER_PROTOCOL_H__\r
-\r
-#define EFI_WATCHDOG_TIMER_DRIVER_PROTOCOL_GUID \\r
- { 0xd5b06d16, 0x2ea1, 0x4def, 0x98, 0xd0, 0xa0, 0x5d, 0x40, 0x72, 0x84, 0x17 }\r
-\r
-#define EFI_WATCHDOG_TIMER_NOT_SUPPORTED_PROTOCOL_GUID \\r
- { 0xe9e156ac, 0x3203, 0x4572, 0xac, 0xdf, 0x84, 0x4f, 0xdc, 0xdb, 0x6, 0xbf }\r
-\r
-\r
-#include <Guid/HwWatchdogTimerHob.h>\r
-\r
-//\r
-// General Purpose Constants\r
-//\r
-#define ICH_INSTAFLUSH_GPIO BIT16 // BIT 16 in GPIO Level 2 is GPIO 48.\r
-#define B_INSTAFLUSH BIT4\r
-//\r
-// Other Watchdog timer values\r
-//\r
-#define WDT_COUNTDOWN_VALUE 0x14\r
-#define BDS_WDT_COUNTDOWN_VALUE 0x35\r
-\r
-\r
-//\r
-// Prototypes for the Watchdog Timer Driver Protocol\r
-//\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_WATCHDOG_START_TIMER) (\r
- VOID\r
- );\r
-/*++\r
-\r
- Routine Description:\r
- This service begins the Watchdog Timer countdown. If the countdown completes prior to\r
- Stop Timer or Restart Timer the system will reset.\r
-\r
- Arguments:\r
- None\r
-\r
- Returns:\r
- EFI_SUCCESS - Operation completed successfully\r
- EFI_DEVICE_ERROR - The command was unsuccessful\r
-\r
---*/\r
-\r
-\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *PEI_WATCHDOG_RESET_TIMER) (\r
- VOID\r
- );\r
-/*++\r
-\r
- Routine Description:\r
- This service resets the Watchdog Timer countdown and should only be called after the\r
- Start Timer function.\r
-\r
- Arguments:\r
- None\r
-\r
- Returns:\r
- EFI_SUCCESS - Operation completed successfully\r
- EFI_DEVICE_ERROR - The command was unsuccessful\r
-\r
---*/\r
-\r
-\r
-\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_WATCHDOG_RESTART_TIMER) (\r
- VOID\r
- );\r
-/*++\r
-\r
- Routine Description:\r
- This service restarts the Watchdog Timer countdown and should only be called after the\r
- Start Timer function.\r
-\r
- Arguments:\r
- None\r
-\r
- Returns:\r
- EFI_SUCCESS - Operation completed successfully\r
- EFI_DEVICE_ERROR - The command was unsuccessful\r
-\r
---*/\r
-\r
-\r
-\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_WATCHDOG_STOP_TIMER) (\r
- VOID\r
- );\r
-/*++\r
-\r
- Routine Description:\r
- This service disables the Watchdog Timer countdown.\r
-\r
- Arguments:\r
- None\r
-\r
- Returns:\r
- EFI_SUCCESS - Operation completed successfully\r
- EFI_DEVICE_ERROR - The command was unsuccessful\r
-\r
---*/\r
-\r
-\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_WATCHDOG_CHECK_TIMEOUT) (\r
- OUT HW_WATCHDOG_TIMEOUT *WatchdogTimeout\r
- );\r
-/*++\r
-\r
- Routine Description:\r
- This service disables the Watchdog Timer countdown.\r
-\r
- Arguments:\r
- None\r
-\r
- Returns:\r
- EFI_SUCCESS - Operation completed successfully\r
- EFI_DEVICE_ERROR - The command was unsuccessful\r
-\r
---*/\r
-\r
-\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_WATCHDOG_FORCE_REBOOT) (\r
- IN BOOLEAN ForceTimeout,\r
- IN UINT8 ResetType\r
- );\r
-/*++\r
-\r
- Routine Description:\r
- This service forces a reboot of the system due to a reset of the POWERGOOD_PS,\r
- POWERGOOD_CLK, and the BSEL Override\r
-\r
- Arguments:\r
- None\r
-\r
- Returns:\r
- This function should not return!\r
-\r
- EFI_DEVICE_ERROR - The command was unsuccessful and a reboot did not occur\r
-\r
---*/\r
-\r
-\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_WATCHDOG_KNOWN_RESET) (\r
- IN BOOLEAN AllowReset\r
- );\r
-/*++\r
-\r
- Routine Description:\r
- This service notifies the Watchdog Timer of the fact that a known reset is occuring.\r
-\r
- Arguments:\r
- AllowReset - TRUE if a Reset is currently expected\r
- FALSE if a Reset is not currently expected\r
-\r
- Returns:\r
- This function should not return!\r
-\r
- EFI_DEVICE_ERROR - The command was unsuccessful and a reboot did not occur\r
-\r
---*/\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_GET_TIMER_COUNT_DOWN_PERIOD)(\r
- OUT UINT32 *CountdownValue\r
- );\r
-/*++\r
-\r
- Routine Description:\r
- This service reads the current Watchdog Timer countdown reload value.\r
-\r
- Arguments:\r
- CountdownValue - pointer to UINT32 to return the value of the reload register.\r
-\r
- Returns:\r
- EFI_SUCCESS - Operation completed successfully\r
- EFI_DEVICE_ERROR - The command was unsuccessful\r
-\r
---*/\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SET_TIMER_COUNT_DOWN_PERIOD)(\r
- OUT UINT32 CountdownValue\r
- );\r
-/*++\r
-\r
- Routine Description:\r
- This service reads the current Watchdog Timer countdown reload value.\r
-\r
- Arguments:\r
- CountdownValue - Value to set the reload register.\r
-\r
- Returns:\r
- EFI_SUCCESS - Operation completed successfully\r
- EFI_DEVICE_ERROR - The command was unsuccessful\r
-\r
---*/\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *PEI_WATCHDOG_CLEAR_TIMER_STATE) (\r
- );\r
-/*++\r
-\r
- Routine Description:\r
- This service clears the state that indicates the Watchdog Timer fired.\r
-\r
- Arguments:\r
-\r
- Returns:\r
- EFI_SUCCESS - Operation completed successfully\r
- EFI_DEVICE_ERROR - The command was unsuccessful\r
-\r
---*/\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_STALL_WATCHDOG_COUNTDOWN) (\r
- IN BOOLEAN Stall\r
- );\r
-/*++\r
-\r
- Routine Description:\r
- This service disables the Watchdog Timer countdown. It also closes the recurring restart event\r
- if the event exists.\r
-\r
- Arguments:\r
- Stall - TRUE = Stop the timer countdown\r
- FALSE = Start the timer countdown\r
-\r
- Returns:\r
- EFI_SUCCESS - Operation completed successfully\r
- EFI_DEVICE_ERROR - The command was unsuccessful\r
-\r
---*/\r
-\r
-typedef struct _EFI_WATCHDOG_TIMER_DRIVER_PROTOCOL {\r
- EFI_WATCHDOG_START_TIMER StartWatchdogTimer;\r
- PEI_WATCHDOG_RESET_TIMER ResetWatchdogTimeout;\r
- EFI_WATCHDOG_RESTART_TIMER RestartWatchdogTimer;\r
- EFI_WATCHDOG_STOP_TIMER StopWatchdogTimer;\r
- EFI_WATCHDOG_CHECK_TIMEOUT CheckWatchdogTimeout;\r
- EFI_WATCHDOG_FORCE_REBOOT ForceReboot;\r
- EFI_WATCHDOG_KNOWN_RESET AllowKnownReset;\r
- EFI_GET_TIMER_COUNT_DOWN_PERIOD GetCountdownPeriod;\r
- EFI_SET_TIMER_COUNT_DOWN_PERIOD SetCountdownPeriod;\r
- PEI_WATCHDOG_CLEAR_TIMER_STATE ClearTimerState;\r
- EFI_STALL_WATCHDOG_COUNTDOWN StallWatchdogCountdown;\r
-} EFI_WATCHDOG_TIMER_DRIVER_PROTOCOL;\r
-\r
-extern EFI_GUID gEfiWatchdogTimerDriverProtocolGuid;\r
-extern EFI_GUID gEfiWatchdogTimerNotSupportedProtocolGuid;\r
-\r
-#endif\r