1/** @file 2* Fixed ACPI Description Table (FADT) 3* 4* Copyright (c) 2012 - 2014, ARM Limited. All rights reserved. 5* 6* This program and the accompanying materials 7* are licensed and made available under the terms and conditions of the BSD License 8* which accompanies this distribution. The full text of the license may be found at 9* http://opensource.org/licenses/bsd-license.php 10* 11* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13* 14**/ 15 16#include "ArmPlatform.h" 17#include <Library/AcpiLib.h> 18#include <IndustryStandard/Acpi.h> 19 20#ifdef ARM_JUNO_ACPI_5_0 21EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE Fadt = { 22 ARM_ACPI_HEADER ( 23 EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, 24 EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE, 25 EFI_ACPI_5_0_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 26 ), 27#else 28EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE Fadt = { 29 ARM_ACPI_HEADER ( 30 EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE, 31 EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE, 32 EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE_REVISION 33 ), 34#endif 35 0, // UINT32 FirmwareCtrl 36 0, // UINT32 Dsdt 37 EFI_ACPI_RESERVED_BYTE, // UINT8 Reserved0 38 EFI_ACPI_5_0_PM_PROFILE_UNSPECIFIED, // UINT8 PreferredPmProfile 39 0, // UINT16 SciInt 40 0, // UINT32 SmiCmd 41 0, // UINT8 AcpiEnable 42 0, // UINT8 AcpiDisable 43 0, // UINT8 S4BiosReq 44 0, // UINT8 PstateCnt 45 0, // UINT32 Pm1aEvtBlk 46 0, // UINT32 Pm1bEvtBlk 47 0, // UINT32 Pm1aCntBlk 48 0, // UINT32 Pm1bCntBlk 49 0, // UINT32 Pm2CntBlk 50 0, // UINT32 PmTmrBlk 51 0, // UINT32 Gpe0Blk 52 0, // UINT32 Gpe1Blk 53 0, // UINT8 Pm1EvtLen 54 0, // UINT8 Pm1CntLen 55 0, // UINT8 Pm2CntLen 56 0, // UINT8 PmTmrLen 57 0, // UINT8 Gpe0BlkLen 58 0, // UINT8 Gpe1BlkLen 59 0, // UINT8 Gpe1Base 60 0, // UINT8 CstCnt 61 0, // UINT16 PLvl2Lat 62 0, // UINT16 PLvl3Lat 63 0, // UINT16 FlushSize 64 0, // UINT16 FlushStride 65 0, // UINT8 DutyOffset 66 0, // UINT8 DutyWidth 67 0, // UINT8 DayAlrm 68 0, // UINT8 MonAlrm 69 0, // UINT8 Century 70 0, // UINT16 IaPcBootArch 71 0, // UINT8 Reserved1 72 EFI_ACPI_5_0_HW_REDUCED_ACPI | EFI_ACPI_5_0_LOW_POWER_S0_IDLE_CAPABLE, // UINT32 Flags 73 NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE ResetReg 74 0, // UINT8 ResetValue 75#if ARM_JUNO_ACPI_5_0 76 {EFI_ACPI_RESERVED_BYTE,EFI_ACPI_RESERVED_BYTE,EFI_ACPI_RESERVED_BYTE}, // UINT8 Reserved2[3] 77#else 78 EFI_ACPI_5_1_ARM_PSCI_COMPLIANT, // UINT16 ArmBootArchFlags 79 EFI_ACPI_5_1_FIXED_ACPI_DESCRIPTION_TABLE_MINOR_REVISION, // UINT8 MinorRevision 80#endif 81 0, // UINT64 XFirmwareCtrl 82 0, // UINT64 XDsdt 83 NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1aEvtBlk 84 NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1bEvtBlk 85 NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1aCntBlk 86 NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm1bCntBlk 87 NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPm2CntBlk 88 NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XPmTmrBlk 89 NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XGpe0Blk 90 NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE XGpe1Blk 91 NULL_GAS, // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE SleepControlReg 92 NULL_GAS // EFI_ACPI_5_0_GENERIC_ADDRESS_STRUCTURE SleepStatusReg 93}; 94 95// 96// Reference the table being generated to prevent the optimizer from removing the 97// data structure from the executable 98// 99VOID* CONST ReferenceAcpiTable = &Fadt; 100