]> git.proxmox.com Git - mirror_edk2.git/blame - BaseTools/Source/C/Include/IndustryStandard/Acpi.h
License header updated to match correct format.
[mirror_edk2.git] / BaseTools / Source / C / Include / IndustryStandard / Acpi.h
CommitLineData
30fdf114
LG
1/** @file\r
2 This file contains some basic ACPI definitions that are consumed by drivers\r
3 that do not care about ACPI versions.\r
4\r
97fa0ee9 5 Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>\r
30fdf114
LG
6\r
7 This program and the accompanying materials are licensed and made available\r
8 under the terms and conditions of the BSD License which accompanies this\r
97fa0ee9 9 distribution. The full text of the license may be found at\r
30fdf114
LG
10 http://opensource.org/licenses/bsd-license.php\r
11\r
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
14\r
30fdf114
LG
15**/\r
16\r
17#ifndef _ACPI_H_\r
18#define _ACPI_H_\r
19\r
20//\r
21// Common table header, this prefaces all ACPI tables, including FACS, but\r
22// excluding the RSD PTR structure\r
23//\r
24typedef struct {\r
25 UINT32 Signature;\r
26 UINT32 Length;\r
27} EFI_ACPI_COMMON_HEADER;\r
28\r
29//\r
30// Common ACPI description table header. This structure prefaces most ACPI tables.\r
31//\r
32#pragma pack(1)\r
33\r
34typedef struct {\r
35 UINT32 Signature;\r
36 UINT32 Length;\r
37 UINT8 Revision;\r
38 UINT8 Checksum;\r
39 UINT8 OemId[6];\r
40 UINT64 OemTableId;\r
41 UINT32 OemRevision;\r
42 UINT32 CreatorId;\r
43 UINT32 CreatorRevision;\r
44} EFI_ACPI_DESCRIPTION_HEADER;\r
45\r
46#pragma pack()\r
47//\r
48// Define for Pci Host Bridge Resource Allocation\r
49//\r
50#define ACPI_ADDRESS_SPACE_DESCRIPTOR 0x8A\r
51#define ACPI_END_TAG_DESCRIPTOR 0x79\r
52\r
53#define ACPI_ADDRESS_SPACE_TYPE_MEM 0x00\r
54#define ACPI_ADDRESS_SPACE_TYPE_IO 0x01\r
55#define ACPI_ADDRESS_SPACE_TYPE_BUS 0x02\r
56\r
57//\r
58// Power Management Timer frequency is fixed at 3.579545MHz\r
59//\r
60#define ACPI_TIMER_FREQUENCY 3579545\r
61\r
62//\r
63// Make sure structures match spec\r
64//\r
65#pragma pack(1)\r
66\r
67typedef struct {\r
68 UINT8 Desc;\r
69 UINT16 Len;\r
70 UINT8 ResType;\r
71 UINT8 GenFlag;\r
72 UINT8 SpecificFlag;\r
73 UINT64 AddrSpaceGranularity;\r
74 UINT64 AddrRangeMin;\r
75 UINT64 AddrRangeMax;\r
76 UINT64 AddrTranslationOffset;\r
77 UINT64 AddrLen;\r
78} EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR;\r
79\r
80typedef struct {\r
81 UINT8 Desc;\r
82 UINT8 Checksum;\r
83} EFI_ACPI_END_TAG_DESCRIPTOR;\r
84\r
85//\r
86// General use definitions\r
87//\r
88#define EFI_ACPI_RESERVED_BYTE 0x00\r
89#define EFI_ACPI_RESERVED_WORD 0x0000\r
90#define EFI_ACPI_RESERVED_DWORD 0x00000000\r
91#define EFI_ACPI_RESERVED_QWORD 0x0000000000000000\r
92\r
93//\r
94// Resource Type Specific Flags\r
95// Ref ACPI specification 6.4.3.5.5\r
96//\r
97// Bit [0] : Write Status, _RW\r
98//\r
99#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_READ_WRITE (1 << 0)\r
100#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_READ_ONLY (0 << 0)\r
101//\r
102// Bit [2:1] : Memory Attributes, _MEM\r
103//\r
104#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_NON_CACHEABLE (0 << 1)\r
105#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE (1 << 1)\r
106#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_WRITE_COMBINING (2 << 1)\r
107#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_PREFETCHABLE (3 << 1)\r
108//\r
109// Bit [4:3] : Memory Attributes, _MTP\r
110//\r
111#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_MEMORY (0 << 3)\r
112#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_RESERVED (1 << 3)\r
113#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_ACPI (2 << 3)\r
114#define EFI_APCI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_NVS (3 << 3)\r
115//\r
116// Bit [5] : Memory to I/O Translation, _TTP\r
117//\r
118#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_TYPE_TRANSLATION (1 << 5)\r
119#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_TYPE_STATIC (0 << 5)\r
120\r
121#pragma pack()\r
122\r
123#endif\r