/** @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 |