--- /dev/null
+/** \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