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