]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/IndustryStandard/WatchdogActionTable.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[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
c8c92c8d 9#ifndef _WATCHDOG_ACTION_TABLE_H_\r
10#define _WATCHDOG_ACTION_TABLE_H_\r
11\r
12#include <IndustryStandard/Acpi.h>\r
13\r
766f4bc1 14//\r
15// Ensure proper structure formats\r
16//\r
17#pragma pack(1)\r
1bc5d021 18///\r
19/// Watchdog Action Table definition.\r
20///\r
c8c92c8d 21typedef struct {\r
2f88bd3a
MK
22 EFI_ACPI_DESCRIPTION_HEADER Header;\r
23 UINT32 WatchdogHeaderLength;\r
24 UINT16 PCISegment;\r
25 UINT8 PCIBusNumber;\r
26 UINT8 PCIDeviceNumber;\r
27 UINT8 PCIFunctionNumber;\r
28 UINT8 Reserved_45[3];\r
29 UINT32 TimerPeriod;\r
30 UINT32 MaxCount;\r
31 UINT32 MinCount;\r
32 UINT8 WatchdogFlags;\r
33 UINT8 Reserved_61[3];\r
34 UINT32 NumberWatchdogInstructionEntries;\r
c8c92c8d 35} EFI_ACPI_WATCHDOG_ACTION_1_0_TABLE;\r
36\r
4135253b 37///\r
38/// Watchdog Instruction Entries\r
39///\r
c8c92c8d 40typedef struct {\r
2f88bd3a
MK
41 UINT8 WatchdogAction;\r
42 UINT8 InstructionFlags;\r
43 UINT8 Reserved_2[2];\r
44 EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE RegisterRegion;\r
45 UINT32 Value;\r
46 UINT32 Mask;\r
c8c92c8d 47} EFI_ACPI_WATCHDOG_ACTION_1_0_WATCHDOG_ACTION_INSTRUCTION_ENTRY;\r
48\r
766f4bc1 49#pragma pack()\r
50\r
1bc5d021 51///\r
52/// WDAT Revision (defined in spec)\r
53///\r
2f88bd3a 54#define EFI_ACPI_WATCHDOG_ACTION_1_0_TABLE_REVISION 0x01\r
c8c92c8d 55\r
4135253b 56//\r
57// WDAT 1.0 Flags\r
58//\r
2f88bd3a
MK
59#define EFI_ACPI_WDAT_1_0_WATCHDOG_ENABLED 0x1\r
60#define EFI_ACPI_WDAT_1_0_WATCHDOG_STOPPED_IN_SLEEP_STATE 0x80\r
c8c92c8d 61\r
62//\r
63// WDAT 1.0 Watchdog Actions\r
64//\r
2f88bd3a
MK
65#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_RESET 0x1\r
66#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_QUERY_CURRENT_COUNTDOWN_PERIOD 0x4\r
67#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_QUERY_COUNTDOWN_PERIOD 0x5\r
68#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_SET_COUNTDOWN_PERIOD 0x6\r
69#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_QUERY_RUNNING_STATE 0x8\r
70#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_SET_RUNNING_STATE 0x9\r
71#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_QUERY_STOPPED_STATE 0xA\r
72#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_SET_STOPPED_STATE 0xB\r
73#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_QUERY_REBOOT 0x10\r
74#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_SET_REBOOT 0x11\r
75#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_QUERY_SHUTDOWN 0x12\r
76#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_SET_SHUTDOWN 0x13\r
77#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_QUERY_WATCHDOG_STATUS 0x20\r
78#define EFI_ACPI_WDAT_1_0_WATCHDOG_ACTION_SET_WATCHDOG_STATUS 0x21\r
c8c92c8d 79\r
80//\r
81// WDAT 1.0 Watchdog Action Entry Instruction Flags\r
82//\r
2f88bd3a
MK
83#define EFI_ACPI_WDAT_1_0_WATCHDOG_INSTRUCTION_READ_VALUE 0x0\r
84#define EFI_ACPI_WDAT_1_0_WATCHDOG_INSTRUCTION_READ_COUNTDOWN 0x1\r
85#define EFI_ACPI_WDAT_1_0_WATCHDOG_INSTRUCTION_WRITE_VALUE 0x2\r
86#define EFI_ACPI_WDAT_1_0_WATCHDOG_INSTRUCTION_WRITE_COUNTDOWN 0x3\r
87#define EFI_ACPI_WDAT_1_0_WATCHDOG_INSTRUCTION_PRESERVE_REGISTER 0x80\r
c8c92c8d 88\r
89#endif\r