• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*++
2 
3 Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution.  The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8 
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11 
12 Module Name:
13 
14     AcpiDescription.h
15 
16 Abstract:
17 
18 
19    GUIDs used for ACPI Description
20 
21 --*/
22 
23 #ifndef _EFI_ACPI_DESCRIPTION_H_
24 #define _EFI_ACPI_DESCRIPTION_H_
25 
26 #define EFI_ACPI_DESCRIPTION_GUID \
27   { \
28     0x3c699197, 0x93c, 0x4c69, {0xb0, 0x6b, 0x12, 0x8a, 0xe3, 0x48, 0x1d, 0xc9} \
29   }
30 
31 #pragma pack(1)
32 typedef struct {
33   UINT8   AddressSpaceId;
34   UINT8   RegisterBitWidth;
35   UINT8   RegisterBitOffset;
36   UINT8   AccessSize;
37   UINT64  Address;
38 } EFI_ACPI_GENERIC_ADDRESS_STRUCTURE;
39 
40 #define ACPI_ADDRESS_ID_MEMORY    0
41 #define ACPI_ADDRESS_ID_IO        1
42 #define ACPI_ADDRESS_ID_PCI       2
43 #define ACPI_ADDRESS_ID_EC        3
44 #define ACPI_ADDRESS_ID_SMBUS     4
45 
46 #define ACPI_ADDRESS_ACCESS_ANY   0
47 #define ACPI_ADDRESS_ACCESS_BYTE  1
48 #define ACPI_ADDRESS_ACCESS_WORD  2
49 #define ACPI_ADDRESS_ACCESS_DWORD 3
50 #define ACPI_ADDRESS_ACCESS_QWORD 4
51 
52 //
53 // Following structure defines ACPI Description information.
54 // This information is platform specific, may be consumed by DXE generic driver.
55 //
56 typedef struct _EFI_ACPI_DESCRIPTION {
57   //
58   // For Timer
59   //
60   EFI_ACPI_GENERIC_ADDRESS_STRUCTURE       PM_TMR_BLK;
61   UINT8                                    PM_TMR_LEN;
62   UINT8                                    TMR_VAL_EXT;
63 
64   //
65   // For RTC
66   //
67   UINT8                                    DAY_ALRM;
68   UINT8                                    MON_ALRM;
69   UINT8                                    CENTURY;
70 
71   //
72   // For Reset
73   //
74   EFI_ACPI_GENERIC_ADDRESS_STRUCTURE       RESET_REG;
75   UINT8                                    RESET_VALUE;
76 
77   //
78   // For Shutdown
79   //
80   EFI_ACPI_GENERIC_ADDRESS_STRUCTURE       PM1a_EVT_BLK;
81   EFI_ACPI_GENERIC_ADDRESS_STRUCTURE       PM1b_EVT_BLK;
82   EFI_ACPI_GENERIC_ADDRESS_STRUCTURE       PM1a_CNT_BLK;
83   EFI_ACPI_GENERIC_ADDRESS_STRUCTURE       PM1b_CNT_BLK;
84   EFI_ACPI_GENERIC_ADDRESS_STRUCTURE       PM2_CNT_BLK;
85   UINT8                                    PM1_EVT_LEN;
86   UINT8                                    PM1_CNT_LEN;
87   UINT8                                    PM2_CNT_LEN;
88   UINT8                                    SLP_TYPa;
89   UINT8                                    SLP_TYPb;
90 
91   //
92   // For sleep
93   //
94   UINT8                                    SLP1_TYPa;
95   UINT8                                    SLP1_TYPb;
96   UINT8                                    SLP2_TYPa;
97   UINT8                                    SLP2_TYPb;
98   UINT8                                    SLP3_TYPa;
99   UINT8                                    SLP3_TYPb;
100   UINT8                                    SLP4_TYPa;
101   UINT8                                    SLP4_TYPb;
102 
103   //
104   // GPE
105   //
106   EFI_ACPI_GENERIC_ADDRESS_STRUCTURE       GPE0_BLK;
107   EFI_ACPI_GENERIC_ADDRESS_STRUCTURE       GPE1_BLK;
108   UINT8                                    GPE0_BLK_LEN;
109   UINT8                                    GPE1_BLK_LEN;
110   UINT8                                    GPE1_BASE;
111 
112   //
113   // IAPC Boot Arch
114   //
115   UINT16                                   IAPC_BOOT_ARCH;
116 
117   //
118   // Flags
119   //
120   UINT32                                   Flags;
121 
122 } EFI_ACPI_DESCRIPTION;
123 #pragma pack()
124 
125 extern EFI_GUID gEfiAcpiDescriptionGuid;
126 
127 #endif
128