]> git.proxmox.com Git - mirror_edk2.git/blame - BaseTools/Source/C/Include/IndustryStandard/Acpi.h
BaseTools: Clear build versions to sync with buildtools/BaseTools
[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
40d841f6 5 Copyright (c) 2006, 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
9 distribution. The full text of the license may be found at:\r
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
15 File Name: Acpi.h\r
16\r
17**/\r
18\r
19#ifndef _ACPI_H_\r
20#define _ACPI_H_\r
21\r
22//\r
23// Common table header, this prefaces all ACPI tables, including FACS, but\r
24// excluding the RSD PTR structure\r
25//\r
26typedef struct {\r
27 UINT32 Signature;\r
28 UINT32 Length;\r
29} EFI_ACPI_COMMON_HEADER;\r
30\r
31//\r
32// Common ACPI description table header. This structure prefaces most ACPI tables.\r
33//\r
34#pragma pack(1)\r
35\r
36typedef struct {\r
37 UINT32 Signature;\r
38 UINT32 Length;\r
39 UINT8 Revision;\r
40 UINT8 Checksum;\r
41 UINT8 OemId[6];\r
42 UINT64 OemTableId;\r
43 UINT32 OemRevision;\r
44 UINT32 CreatorId;\r
45 UINT32 CreatorRevision;\r
46} EFI_ACPI_DESCRIPTION_HEADER;\r
47\r
48#pragma pack()\r
49//\r
50// Define for Pci Host Bridge Resource Allocation\r
51//\r
52#define ACPI_ADDRESS_SPACE_DESCRIPTOR 0x8A\r
53#define ACPI_END_TAG_DESCRIPTOR 0x79\r
54\r
55#define ACPI_ADDRESS_SPACE_TYPE_MEM 0x00\r
56#define ACPI_ADDRESS_SPACE_TYPE_IO 0x01\r
57#define ACPI_ADDRESS_SPACE_TYPE_BUS 0x02\r
58\r
59//\r
60// Power Management Timer frequency is fixed at 3.579545MHz\r
61//\r
62#define ACPI_TIMER_FREQUENCY 3579545\r
63\r
64//\r
65// Make sure structures match spec\r
66//\r
67#pragma pack(1)\r
68\r
69typedef struct {\r
70 UINT8 Desc;\r
71 UINT16 Len;\r
72 UINT8 ResType;\r
73 UINT8 GenFlag;\r
74 UINT8 SpecificFlag;\r
75 UINT64 AddrSpaceGranularity;\r
76 UINT64 AddrRangeMin;\r
77 UINT64 AddrRangeMax;\r
78 UINT64 AddrTranslationOffset;\r
79 UINT64 AddrLen;\r
80} EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR;\r
81\r
82typedef struct {\r
83 UINT8 Desc;\r
84 UINT8 Checksum;\r
85} EFI_ACPI_END_TAG_DESCRIPTOR;\r
86\r
87//\r
88// General use definitions\r
89//\r
90#define EFI_ACPI_RESERVED_BYTE 0x00\r
91#define EFI_ACPI_RESERVED_WORD 0x0000\r
92#define EFI_ACPI_RESERVED_DWORD 0x00000000\r
93#define EFI_ACPI_RESERVED_QWORD 0x0000000000000000\r
94\r
95//\r
96// Resource Type Specific Flags\r
97// Ref ACPI specification 6.4.3.5.5\r
98//\r
99// Bit [0] : Write Status, _RW\r
100//\r
101#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_READ_WRITE (1 << 0)\r
102#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_READ_ONLY (0 << 0)\r
103//\r
104// Bit [2:1] : Memory Attributes, _MEM\r
105//\r
106#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_NON_CACHEABLE (0 << 1)\r
107#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE (1 << 1)\r
108#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_WRITE_COMBINING (2 << 1)\r
109#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_PREFETCHABLE (3 << 1)\r
110//\r
111// Bit [4:3] : Memory Attributes, _MTP\r
112//\r
113#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_MEMORY (0 << 3)\r
114#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_RESERVED (1 << 3)\r
115#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_ACPI (2 << 3)\r
116#define EFI_APCI_MEMORY_RESOURCE_SPECIFIC_FLAG_ADDRESS_RANGE_NVS (3 << 3)\r
117//\r
118// Bit [5] : Memory to I/O Translation, _TTP\r
119//\r
120#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_TYPE_TRANSLATION (1 << 5)\r
121#define EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_TYPE_STATIC (0 << 5)\r
122\r
123#pragma pack()\r
124\r
125#endif\r