]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/IndustryStandard/Acpi.h
added ACPI_TIMER_FREQUENCY definition
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / Acpi.h
CommitLineData
878ddf1f 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
148ac238 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
878ddf1f 10\r
148ac238 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
878ddf1f 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
148ac238 58//\r
59// Power Management Timer frequency is fixed at 3.579545MHz\r
60//\r
61#define ACPI_TIMER_FREQUENCY 3579545\r
62\r
878ddf1f 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
ebfe209e 94//\r
95// Resource Type Specific Flags\r
148ac238 96// Ref ACPI specification 6.4.3.5.5\r
97//\r
ebfe209e 98// Bit [0] : Write Status, _RW\r
148ac238 99//\r
ebfe209e 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
148ac238 104//\r
ebfe209e 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
148ac238 111//\r
ebfe209e 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
148ac238 118//\r
ebfe209e 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
878ddf1f 122#pragma pack()\r
123\r
124#endif\r