/** @file | |
* Fixed ACPI Description Table (FADT) | |
* | |
* Copyright (c) 2012 - 2014, ARM Limited. All rights reserved. | |
* | |
* This program and the accompanying materials | |
* are licensed and made available under the terms and conditions of the BSD License | |
* which accompanies this distribution. The full text of the license may be found at | |
* http://opensource.org/licenses/bsd-license.php | |
* | |
* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
* | |
**/ | |
#include "ArmPlatform.h" | |
#include <Library/AcpiLib.h> | |
#include <IndustryStandard/Acpi.h> | |
#ifdef ARM_JUNO_ACPI_5_0 | |
EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt = { | |
ARM_ACPI_HEADER ( | |
EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, | |
EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE, | |
EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION | |
), | |
#else | |
EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE Fadt = { | |
ARM_ACPI_HEADER ( | |
EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, | |
EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE, | |
EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE_REVISION | |
), | |
#endif | |
0, // UINT32 FirmwareCtrl | |
0, // UINT32 Dsdt | |
EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved0 | |
EFI_ACPI_5_0_PM_PROFILE_UNSPECIFIED, // UINT8 PreferredPmProfile | |
0, // UINT16 SciInt | |
0, // UINT32 SmiCmd | |
0, // UINT8 AcpiEnable | |
0, // UINT8 AcpiDisable | |
0, // UINT8 S4BiosReq | |
0, // UINT8 PstateCnt | |
0, // UINT32 Pm1aEvtBlk | |
0, // UINT32 Pm1bEvtBlk | |
0, // UINT32 Pm1aCntBlk | |
0, // UINT32 Pm1bCntBlk | |
0, // UINT32 Pm2CntBlk | |
0, // UINT32 PmTmrBlk | |
0, // UINT32 Gpe0Blk | |
0, // UINT32 Gpe1Blk | |
0, // UINT8 Pm1EvtLen | |
0, // UINT8 Pm1CntLen | |
0, // UINT8 Pm2CntLen | |
0, // UINT8 PmTmrLen | |
0, // UINT8 Gpe0BlkLen | |
0, // UINT8 Gpe1BlkLen | |
0, // UINT8 Gpe1Base | |
0, // UINT8 CstCnt | |
0, // UINT16 PLvl2Lat | |
0, // UINT16 PLvl3Lat | |
0, // UINT16 FlushSize | |
0, // UINT16 FlushStride | |
0, // UINT8 DutyOffset | |
0, // UINT8 DutyWidth | |
0, // UINT8 DayAlrm | |
0, // UINT8 MonAlrm | |
0, // UINT8 Century | |
0, // UINT16 IaPcBootArch | |
0, // UINT8 Reserved1 | |
EFI_ACPI_5_0_HW_REDUCED_ACPI | EFI_ACPI_5_0_LOW_POWER_S0_IDLE_CAPABLE, // UINT32 Flags | |
NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE ResetReg | |
0, // UINT8 ResetValue | |
#if ARM_JUNO_ACPI_5_0 | |
{EFI_ACPI_RESERVED_BYTE,EFI_ACPI_RESERVED_BYTE,EFI_ACPI_RESERVED_BYTE}, // UINT8 Reserved2[3] | |
#else | |
EFI_ACPI_5_1_ARM_PSCI_COMPLIANT, // UINT16 ArmBootArchFlags | |
EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION, // UINT8 MinorRevision | |
#endif | |
0, // UINT64 XFirmwareCtrl | |
0, // UINT64 XDsdt | |
NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk | |
NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk | |
NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk | |
NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk | |
NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk | |
NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk | |
NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk | |
NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk | |
NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE SleepControlReg | |
NULL_GAS // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE SleepStatusReg | |
}; | |
VOID* | |
ReferenceAcpiTable ( | |
VOID | |
) | |
{ | |
// | |
// Reference the table being generated to prevent the optimizer from removing the | |
// data structure from the executable | |
// | |
return (VOID*)&Fadt; | |
} |