1 /** @file 2 This file describes the contents of the ACPI Fixed ACPI Description Table 3 (FADT). Some additional ACPI values are defined in Acpi1_0.h and Acpi2_0.h. 4 All changes to the FADT contents should be done in this file. 5 6 Copyright (c) 2013-2015 Intel Corporation. 7 8 This program and the accompanying materials 9 are licensed and made available under the terms and conditions of the BSD License 10 which accompanies this distribution. The full text of the license may be found at 11 http://opensource.org/licenses/bsd-license.php 12 13 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 14 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 15 16 **/ 17 18 #include "Fadt.h" 19 20 EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE FADT = { 21 { 22 EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, 23 sizeof (EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE), 24 EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION, 25 0, // to make sum of entire table == 0 26 {EFI_ACPI_OEM_ID}, // OEMID is a 6 bytes long field 27 EFI_ACPI_OEM_TABLE_ID,// OEM table identification(8 bytes long) 28 EFI_ACPI_OEM_REVISION,// OEM revision number 29 EFI_ACPI_CREATOR_ID, // ASL compiler vendor ID 30 EFI_ACPI_CREATOR_REVISION // ASL compiler revision number 31 }, 32 0, // Physical addesss of FACS 33 0, // Physical address of DSDT 34 RESERVED, // reserved 35 PM_PROFILE, // Preferred powermanagement profile 36 SCI_INT_VECTOR, // System vector of SCI interrupt 37 ACPI_RUNTIME_UPDATE, // Port address of SMI command port 38 ACPI_ENABLE, // value to write to port smi_cmd to enable ACPI 39 ACPI_DISABLE, // value to write to port smi_cmd to disable ACPI 40 S4BIOS_REQ, // Value to write to SMI CMD port to enter the S4BIOS state 41 RESERVED, // reserved - must be zero 42 ACPI_RUNTIME_UPDATE, // Port address of Power Mgt 1a Event Reg Blk 43 PM1b_EVT_BLK_ADDRESS, // Port address of Power Mgt 1b Event Reg Blk 44 ACPI_RUNTIME_UPDATE, // Port address of Power Mgt 1a Ctrl Reg Blk 45 PM1b_CNT_BLK_ADDRESS, // Port address of Power Mgt 1b Ctrl Reg Blk 46 ACPI_RUNTIME_UPDATE, // Port address of Power Mgt 2 Ctrl Reg Blk 47 ACPI_RUNTIME_UPDATE, // Port address of Power Mgt Timer Ctrl Reg Blk 48 ACPI_RUNTIME_UPDATE, // Port addr of General Purpose Event 0 Reg Blk 49 GPE1_BLK_ADDRESS, // Port addr of General Purpose Event 1 Reg Blk 50 PM1_EVT_LEN, // Byte Length of ports at pm1X_evt_blk 51 PM1_CNT_LEN, // Byte Length of ports at pm1X_cnt_blk 52 PM2_CNT_LEN, // Byte Length of ports at pm2_cnt_blk 53 PM_TM_LEN, // Byte Length of ports at pm_tm_blk 54 GPE0_BLK_LEN, // Byte Length of ports at gpe0_blk 55 GPE1_BLK_LEN, // Byte Length of ports at gpe1_blk 56 GPE1_BASE, // offset in gpe model where gpe1 events start 57 RESERVED, // reserved 58 P_LVL2_LAT, // worst case HW latency to enter/exit C2 state 59 P_LVL3_LAT, // worst case HW latency to enter/exit C3 state 60 FLUSH_SIZE, // Size of area read to flush caches 61 FLUSH_STRIDE, // Stride used in flushing caches 62 DUTY_OFFSET, // bit location of duty cycle field in p_cnt reg 63 DUTY_WIDTH, // bit width of duty cycle field in p_cnt reg 64 DAY_ALRM, // index to day-of-month alarm in RTC CMOS RAM 65 MON_ALRM, // index to month-of-year alarm in RTC CMOS RAM 66 CENTURY, // index to century in RTC CMOS RAM 67 IAPC_BOOT_ARCH, // IA-PC Boot Architecture Flags 68 RESERVED, // reserved 69 FLAG2, // Fixed feature flags 70 71 { 72 RESET_REG_ADDRESS_SPACE_ID, // Address of the reset register 73 RESET_REG_BIT_WIDTH, 74 RESET_REG_BIT_OFFSET, 75 RESERVED, 76 RESET_REG_ADDRESS 77 }, 78 RESET_VALUE, // Value to write to the RESET_REG port 79 { 80 RESERVED, 81 RESERVED, 82 RESERVED 83 }, 84 0, // 64Bit physical addesss of FACS 85 0, // 64Bit physical address of DSDT 86 87 { 88 PM1a_EVT_BLK_ADDRESS_SPACE_ID, // Extended Port address of Power Mgt 1a Event Reg Blk 89 PM1a_EVT_BLK_BIT_WIDTH, 90 PM1a_EVT_BLK_BIT_OFFSET, 91 RESERVED, 92 ACPI_RUNTIME_UPDATE 93 }, 94 95 { 96 PM1b_EVT_BLK_ADDRESS_SPACE_ID, // Extended Port address of Power Mgt 1b Event Reg Blk 97 PM1b_EVT_BLK_BIT_WIDTH, 98 PM1b_EVT_BLK_BIT_OFFSET, 99 RESERVED, 100 PM1b_EVT_BLK_ADDRESS 101 }, 102 103 { 104 PM1a_CNT_BLK_ADDRESS_SPACE_ID, // Extended Port address of Power Mgt 1a Ctrl Reg Blk 105 PM1a_CNT_BLK_BIT_WIDTH, 106 PM1a_CNT_BLK_BIT_OFFSET, 107 RESERVED, 108 ACPI_RUNTIME_UPDATE 109 }, 110 111 { 112 PM1b_CNT_BLK_ADDRESS_SPACE_ID, // Extended Port address of Power Mgt 1b Ctrl Reg Blk 113 PM1b_CNT_BLK_BIT_WIDTH, 114 PM1b_CNT_BLK_BIT_OFFSET, 115 RESERVED, 116 PM1b_CNT_BLK_ADDRESS 117 }, 118 119 { 120 PM2_CNT_BLK_ADDRESS_SPACE_ID, // Extended Port address of Power Mgt 2 Ctrl Reg Blk 121 PM2_CNT_BLK_BIT_WIDTH, 122 PM2_CNT_BLK_BIT_OFFSET, 123 RESERVED, 124 ACPI_RUNTIME_UPDATE 125 }, 126 127 { 128 PM_TMR_BLK_ADDRESS_SPACE_ID, // Extended Port address of Power Mgt Timer Ctrl Reg Blk 129 PM_TMR_BLK_BIT_WIDTH, 130 PM_TMR_BLK_BIT_OFFSET, 131 RESERVED, 132 ACPI_RUNTIME_UPDATE 133 }, 134 135 { 136 GPE0_BLK_ADDRESS_SPACE_ID, // Extended Port address of General Purpose Event 0 Reg Blk 137 GPE0_BLK_BIT_WIDTH, 138 GPE0_BLK_BIT_OFFSET, 139 RESERVED, 140 ACPI_RUNTIME_UPDATE 141 }, 142 143 { 144 GPE1_BLK_ADDRESS_SPACE_ID, // Extended Port address of General Purpose Event 1 Reg Blk 145 GPE1_BLK_BIT_WIDTH, 146 GPE1_BLK_BIT_OFFSET, 147 RESERVED, 148 GPE1_BLK_ADDRESS 149 } 150 }; 151 152 VOID* 153 ReferenceAcpiTable ( 154 VOID 155 ) 156 157 { 158 // 159 // Reference the table being generated to prevent the optimizer from removing the 160 // data structure from the exeutable 161 // 162 return (VOID*)&FADT; 163 } 164