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