]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/IndustryStandard/WatchdogResourceTable.h
Check in definition for various ACPI tables and the header files for ACPI spec ranged...
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / WatchdogResourceTable.h
diff --git a/MdePkg/Include/IndustryStandard/WatchdogResourceTable.h b/MdePkg/Include/IndustryStandard/WatchdogResourceTable.h
new file mode 100644 (file)
index 0000000..7570cf4
--- /dev/null
@@ -0,0 +1,118 @@
+/** \r
+       @file   \r
+  ACPI Watchdog Resource Table as defined at\r
+  Microsoft Hardware Watchdog Timer Specification.\r
+\r
+  Copyright (c) 2006 - 2007, Intel Corporation\r
+  All rights reserved. This program and the accompanying materials                          \r
+  are licensed and made available under the terms and conditions of the BSD License         \r
+  which accompanies this distribution.  The full text of the license may be found at        \r
+  http://opensource.org/licenses/bsd-license.php                                            \r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+**/\r
+\r
+#ifndef _WATCHDOG_RESOURCE_TABLE_H_\r
+#define _WATCHDOG_RESOURCE_TABLE_H_\r
+\r
+//\r
+// Include files\r
+//\r
+#include "Acpi2_0.h"\r
+\r
+//\r
+// Ensure proper structure formats\r
+//\r
+#pragma pack(1)\r
+//\r
+// Watchdog Resource Table definition.\r
+//\r
+typedef struct {\r
+  EFI_ACPI_DESCRIPTION_HEADER             Header;\r
+  EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  ControlRegisterAddress;\r
+  EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  CountRegisterAddress;\r
+  UINT16                                  PCIDeviceID;\r
+  UINT16                                  PCIVendorID;\r
+  UINT8                                   PCIBusNumber;\r
+  UINT8                                   PCIDeviceNumber;\r
+  UINT8                                   PCIFunctionNumber;\r
+  UINT8                                   PCISegment;\r
+  UINT16                                  MaxCount;\r
+  UINT8                                   Units;\r
+} EFI_ACPI_WATCHDOG_RESOURCE_1_0_TABLE;\r
+\r
+typedef struct {\r
+  EFI_ACPI_DESCRIPTION_HEADER             Header;\r
+  UINT32                                  WatchdogHeaderLength;\r
+  UINT8                                   PCISegment;\r
+  UINT8                                   PCIBusNumber;\r
+  UINT8                                   PCIDeviceNumber;\r
+  UINT8                                   PCIFunctionNumber;\r
+  UINT32                                  TimerPeriod;\r
+  UINT32                                  MaxCount;\r
+  UINT32                                  MinCount;\r
+  UINT8                                   WatchdogFlags;  \r
+  UINT8                                   Reserved_57[3];  \r
+  UINT32                                  NumberWatchdogInstructionEntries;\r
+} EFI_ACPI_WATCHDOG_RESOURCE_2_0_TABLE;\r
+\r
+typedef struct {\r
+  UINT8                                   WatchdogAction;\r
+  UINT8                                   InstructionFlags;\r
+  UINT8                                   Reserved_2;\r
+  UINT8                                   RegisterSize;\r
+  EFI_ACPI_2_0_GENERIC_ADDRESS_STRUCTURE  RegisterRegion;\r
+  UINT32                                  Value;\r
+  UINT32                                  Mask;\r
+} EFI_ACPI_WATCHDOG_RESOURCE_2_0_WATCHDOG_ACTION_INSTRUCTION_ENTRY;\r
+\r
+#pragma pack()\r
+\r
+//\r
+// WDRT Revision (defined in spec)\r
+//\r
+#define EFI_ACPI_WATCHDOG_RESOURCE_1_0_TABLE_REVISION  0x01\r
+#define EFI_ACPI_WATCHDOG_RESOURCE_2_0_TABLE_REVISION  0x02\r
+\r
+//\r
+// WDRT 1.0 Count Unit\r
+//\r
+#define EFI_ACPI_WDRT_1_0_COUNT_UNIT_1_SEC_PER_COUNT        1\r
+#define EFI_ACPI_WDRT_1_0_COUNT_UNIT_100_MILLISEC_PER_COUNT 2\r
+#define EFI_ACPI_WDRT_1_0_COUNT_UNIT_10_MILLISEC_PER_COUNT  3\r
+\r
+//\r
+// WDRT 2.0 Flags\r
+//\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_ENABLED                0x1\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_STOPPED_IN_SLEEP_STATE 0x80\r
+\r
+//\r
+// WDRT 2.0 Watchdog Actions\r
+//\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_ACTION_RESET                          0x1\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_ACTION_QUERY_CURRENT_COUNTDOWN_PERIOD 0x4\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_ACTION_QUERY_COUNTDOWN_PERIOD         0x5\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_ACTION_SET_COUNTDOWN_PERIOD           0x6\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_ACTION_QUERY_RUNNING_STATE            0x8\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_ACTION_SET_RUNNING_STATE              0x9\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_ACTION_QUERY_STOPPED_STATE            0xA\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_ACTION_SET_STOPPED_STATE              0xB\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_ACTION_QUERY_ REBOOT                  0x10\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_ACTION_SET_REBOOT                     0x11\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_ACTION_QUERY_SHUTDOWN                 0x12\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_ACTION_SET_SHUTDOWN                   0x13\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_ACTION_QUERY_WATCHDOG_STATUS          0x20\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_ACTION_SET_WATCHDOG_STATUS            0x21\r
+\r
+//\r
+// WDRT 2.0 Watchdog Action Entry Instruction Flags\r
+//\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_INSTRUCTION_READ_VALUE        0x0\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_INSTRUCTION_READ_COUNTDOWN    0x1\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_INSTRUCTION_WRITE_VALUE       0x2\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_INSTRUCTION_WRITE_COUNTDOWN   0x3\r
+#define EFI_ACPI_WDRT_2_0_WATCHDOG_INSTRUCTION_PRESERVE_REGISTER 0x80\r
+\r
+#endif\r