]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OldMdePkg/Include/IndustryStandard/Acpi.h
Moved the MdePkg to OldMdePkg so that new code in MdePkg does not break existing...
[mirror_edk2.git] / OldMdePkg / Include / IndustryStandard / Acpi.h
diff --git a/OldMdePkg/Include/IndustryStandard/Acpi.h b/OldMdePkg/Include/IndustryStandard/Acpi.h
new file mode 100644 (file)
index 0000000..fc8c498
--- /dev/null
@@ -0,0 +1,124 @@
+/** @file\r
+  This file contains some basic ACPI definitions that are consumed by drivers\r
+  that do not care about ACPI versions.\r
+\r
+  Copyright (c) 2006, 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
+  Module Name:  Acpi.h\r
+\r
+**/\r
+\r
+#ifndef _ACPI_H_\r
+#define _ACPI_H_\r
+\r
+//\r
+// Common table header, this prefaces all ACPI tables, including FACS, but\r
+// excluding the RSD PTR structure\r
+//\r
+typedef struct {\r
+  UINT32  Signature;\r
+  UINT32  Length;\r
+} EFI_ACPI_COMMON_HEADER;\r
+\r
+//\r
+// Common ACPI description table header.  This structure prefaces most ACPI tables.\r
+//\r
+#pragma pack(1)\r
+\r
+typedef struct {\r
+  UINT32  Signature;\r
+  UINT32  Length;\r
+  UINT8   Revision;\r
+  UINT8   Checksum;\r
+  UINT8   OemId[6];\r
+  UINT64  OemTableId;\r
+  UINT32  OemRevision;\r
+  UINT32  CreatorId;\r
+  UINT32  CreatorRevision;\r
+} EFI_ACPI_DESCRIPTION_HEADER;\r
+\r
+#pragma pack()\r
+//\r
+// Define for Pci Host Bridge Resource Allocation\r
+//\r
+#define ACPI_ADDRESS_SPACE_DESCRIPTOR 0x8A\r
+#define ACPI_END_TAG_DESCRIPTOR       0x79\r
+\r
+#define ACPI_ADDRESS_SPACE_TYPE_MEM   0x00\r
+#define ACPI_ADDRESS_SPACE_TYPE_IO    0x01\r
+#define ACPI_ADDRESS_SPACE_TYPE_BUS   0x02\r
+\r
+//\r
+// Power Management Timer frequency is fixed at 3.579545MHz\r
+//\r
+#define ACPI_TIMER_FREQUENCY       3579545\r
+\r
+//\r
+// Make sure structures match spec\r
+//\r
+#pragma pack(1)\r
+\r
+typedef struct {\r
+  UINT8   Desc;\r
+  UINT16  Len;\r
+  UINT8   ResType;\r
+  UINT8   GenFlag;\r
+  UINT8   SpecificFlag;\r
+  UINT64  AddrSpaceGranularity;\r
+  UINT64  AddrRangeMin;\r
+  UINT64  AddrRangeMax;\r
+  UINT64  AddrTranslationOffset;\r
+  UINT64  AddrLen;\r
+} EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR;\r
+\r
+typedef struct {\r
+  UINT8 Desc;\r
+  UINT8 Checksum;\r
+} EFI_ACPI_END_TAG_DESCRIPTOR;\r
+\r
+//\r
+// General use definitions\r
+//\r
+#define EFI_ACPI_RESERVED_BYTE  0x00\r
+#define EFI_ACPI_RESERVED_WORD  0x0000\r
+#define EFI_ACPI_RESERVED_DWORD 0x00000000\r
+#define EFI_ACPI_RESERVED_QWORD 0x0000000000000000\r
+\r
+//\r
+// Resource Type Specific Flags\r
+// Ref ACPI specification 6.4.3.5.5\r
+//\r
+// Bit [0]    : Write Status, _RW\r
+//\r
+#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_READ_WRITE                (1 << 0)\r
+#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_READ_ONLY                 (0 << 0)\r
+//\r
+// Bit [2:1]  : Memory Attributes, _MEM\r
+//\r
+#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_NON_CACHEABLE             (0 << 1)\r
+#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE                 (1 << 1)\r
+#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_WRITE_COMBINING (2 << 1)\r
+#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_PREFETCHABLE    (3 << 1)\r
+//\r
+// Bit [4:3]  : Memory Attributes, _MTP\r
+//\r
+#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_MEMORY      (0 << 3)\r
+#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_RESERVED    (1 << 3)\r
+#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_ACPI        (2 << 3)\r
+#define EFI_APCI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_NVS         (3 << 3)\r
+//\r
+// Bit [5]    : Memory to I/O Translation, _TTP\r
+//\r
+#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_TYPE_TRANSLATION          (1 << 5)\r
+#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_TYPE_STATIC               (0 << 5)\r
+\r
+#pragma pack()\r
+\r
+#endif\r