]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/IndustryStandard/WatchdogActionTable.h
MdePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / WatchdogActionTable.h
CommitLineData
9095d37b 1/** @file\r
4135253b 2 ACPI Watchdog Action Table (WADT) as defined at\r
427987f5 3 Microsoft Hardware Watchdog Timers Design Specification.\r
c8c92c8d 4\r
9095d37b 5 Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>\r
9344f092 6 SPDX-License-Identifier: BSD-2-Clause-Patent\r
c8c92c8d 7**/\r
8\r
9\r
10#ifndef _WATCHDOG_ACTION_TABLE_H_\r
11#define _WATCHDOG_ACTION_TABLE_H_\r
12\r
13#include <IndustryStandard/Acpi.h>\r
14\r
766f4bc1 15//\r
16// Ensure proper structure formats\r
17//\r
18#pragma pack(1)\r
1bc5d021 19///\r
20/// Watchdog Action Table definition.\r
21///\r
c8c92c8d 22typedef struct {\r
23 EFI_ACPI_DESCRIPTION_HEADER Header;\r
24 UINT32 WatchdogHeaderLength;\r
25 UINT16 PCISegment;\r
26 UINT8 PCIBusNumber;\r
27 UINT8 PCIDeviceNumber;\r
28 UINT8 PCIFunctionNumber;\r
29 UINT8 Reserved_45[3];\r
30 UINT32 TimerPeriod;\r
31 UINT32 MaxCount;\r
32 UINT32 MinCount;\r
9095d37b
LG
33 UINT8 WatchdogFlags;\r
34 UINT8 Reserved_61[3];\r
c8c92c8d 35 UINT32 NumberWatchdogInstructionEntries;\r
36} EFI_ACPI_WATCHDOG_ACTION_1_0_TABLE;\r
37\r
4135253b 38///\r
39/// Watchdog Instruction Entries\r
40///\r
c8c92c8d 41typedef struct {\r
42 UINT8 WatchdogAction;\r
43 UINT8 InstructionFlags;\r
44 UINT8 Reserved_2[2];\r
45 EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion;\r
46 UINT32 Value;\r
47 UINT32 Mask;\r
48} EFI_ACPI_WATCHDOG_ACTION_1_0_WATCHDOG_ACTION_INSTRUCTION_ENTRY;\r
49\r
766f4bc1 50#pragma pack()\r
51\r
1bc5d021 52///\r
53/// WDAT Revision (defined in spec)\r
54///\r
373b5cf9 55#define EFI_ACPI_WATCHDOG_ACTION_1_0_TABLE_REVISION 0x01\r
c8c92c8d 56\r
4135253b 57//\r
58// WDAT 1.0 Flags\r
59//\r
c8c92c8d 60#define EFI_ACPI_WDAT_1_0_WATCHDOG_ENABLED 0x1\r
61#define EFI_ACPI_WDAT_1_0_WATCHDOG_STOPPED_IN_SLEEP_STATE 0x80\r
62\r
63//\r
64// WDAT 1.0 Watchdog Actions\r
65//\r
66#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_RESET 0x1\r
67#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_QUERY_CURRENT_COUNTDOWN_PERIOD 0x4\r
68#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_QUERY_COUNTDOWN_PERIOD 0x5\r
69#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_SET_COUNTDOWN_PERIOD 0x6\r
70#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_QUERY_RUNNING_STATE 0x8\r
71#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_SET_RUNNING_STATE 0x9\r
72#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_QUERY_STOPPED_STATE 0xA\r
73#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_SET_STOPPED_STATE 0xB\r
74#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_QUERY_REBOOT 0x10\r
75#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_SET_REBOOT 0x11\r
76#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_QUERY_SHUTDOWN 0x12\r
77#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_SET_SHUTDOWN 0x13\r
78#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_QUERY_WATCHDOG_STATUS 0x20\r
79#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_SET_WATCHDOG_STATUS 0x21\r
80\r
81//\r
82// WDAT 1.0 Watchdog Action Entry Instruction Flags\r
83//\r
84#define EFI_ACPI_WDAT_1_0_WATCHDOG_INSTRUCTION_READ_VALUE 0x0\r
85#define EFI_ACPI_WDAT_1_0_WATCHDOG_INSTRUCTION_READ_COUNTDOWN 0x1\r
86#define EFI_ACPI_WDAT_1_0_WATCHDOG_INSTRUCTION_WRITE_VALUE 0x2\r
87#define EFI_ACPI_WDAT_1_0_WATCHDOG_INSTRUCTION_WRITE_COUNTDOWN 0x3\r
88#define EFI_ACPI_WDAT_1_0_WATCHDOG_INSTRUCTION_PRESERVE_REGISTER 0x80\r
89\r
90#endif\r