| /** @file | |
| ACPI Low Power Idle Table (LPIT) definitions | |
| Copyright (c) 2016, Intel Corporation. All rights reserved.<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| @par Revision Reference: | |
| - ACPI Low Power Idle Table (LPIT) Revision 001, dated July 2014 | |
| http://www.uefi.org/sites/default/files/resources/ACPI_Low_Power_Idle_Table.pdf | |
| @par Glossary: | |
| - GAS - Generic Address Structure | |
| - LPI - Low Power Idle | |
| **/ | |
| #ifndef _LOW_POWER_IDLE_TABLE_H_ | |
| #define _LOW_POWER_IDLE_TABLE_H_ | |
| #include <IndustryStandard/Acpi.h> | |
| #pragma pack(1) | |
| /// | |
| /// LPI Structure Types | |
| /// | |
| #define ACPI_LPI_STRUCTURE_TYPE_NATIVE_CSTATE 0x00 | |
| /// | |
| /// Low Power Idle (LPI) State Flags | |
| /// | |
| typedef union { | |
| struct { | |
| UINT32 Disabled : 1; ///< If set, LPI state is not used | |
| /** | |
| If set, Residency counter is not available for this LPI state and | |
| Residency Counter Frequency is invalid | |
| **/ | |
| UINT32 CounterUnavailable : 1; | |
| UINT32 Reserved : 30; ///< Reserved for future use. Must be zero | |
| } Bits; | |
| UINT32 Data32; | |
| } ACPI_LPI_STATE_FLAGS; | |
| /// | |
| /// Low Power Idle (LPI) structure with Native C-state instruction entry trigger descriptor | |
| /// | |
| typedef struct { | |
| UINT32 Type; ///< LPI State descriptor Type 0 | |
| UINT32 Length; ///< Length of LPI state Descriptor Structure | |
| /// | |
| /// Unique LPI state identifier: zero based, monotonically increasing identifier | |
| /// | |
| UINT16 UniqueId; | |
| UINT8 Reserved[2]; ///< Must be Zero | |
| ACPI_LPI_STATE_FLAGS Flags; ///< LPI state flags | |
| /** | |
| The LPI entry trigger, matching an existing _CST.Register object, represented as a | |
| Generic Address Structure. All processors must request this state or deeper to trigger. | |
| **/ | |
| EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE EntryTrigger; | |
| UINT32 Residency; ///< Minimum residency or break-even in uSec | |
| UINT32 Latency; ///< Worst case exit latency in uSec | |
| /** | |
| [optional] Residency counter, represented as a Generic Address Structure. | |
| If not present, Flags[1] bit should be set. | |
| **/ | |
| EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE ResidencyCounter; | |
| /** | |
| [optional] Residency counter frequency in cycles per second. Value 0 indicates that | |
| counter runs at TSC frequency. Valid only if Residency Counter is present. | |
| **/ | |
| UINT64 ResidencyCounterFrequency; | |
| } ACPI_LPI_NATIVE_CSTATE_DESCRIPTOR; | |
| #pragma pack() | |
| #endif |