mirror of https://github.com/acidanthera/audk.git
125 lines
4.3 KiB
C
125 lines
4.3 KiB
C
/** @file
|
|
|
|
Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved.<BR>
|
|
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
**/
|
|
|
|
#ifndef AML_CPC_INFO_H_
|
|
#define AML_CPC_INFO_H_
|
|
|
|
#include <IndustryStandard/Acpi.h>
|
|
|
|
#pragma pack(1)
|
|
|
|
/** A structure that describes the Cpc information.
|
|
|
|
Continuous Performance Control is described in DSDT/SSDT and associated
|
|
to cpus/clusters in the cpu topology.
|
|
|
|
Unsupported Optional registers should be encoded with NULL resource
|
|
Register {(SystemMemory, 0, 0, 0, 0)}
|
|
|
|
For values that support Integer or Buffer, integer will be used
|
|
if buffer is NULL resource.
|
|
If resource is not NULL then Integer must be 0
|
|
|
|
Cf. ACPI 6.4, s8.4.7.1 _CPC (Continuous Performance Control)
|
|
|
|
**/
|
|
|
|
typedef struct AmlCpcInfo {
|
|
/// The revision number of the _CPC package format.
|
|
UINT32 Revision;
|
|
|
|
/// Indicates the highest level of performance the processor
|
|
/// is theoretically capable of achieving.
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE HighestPerformanceBuffer;
|
|
UINT32 HighestPerformanceInteger;
|
|
|
|
/// Indicates the highest sustained performance level of the processor.
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE NominalPerformanceBuffer;
|
|
UINT32 NominalPerformanceInteger;
|
|
|
|
/// Indicates the lowest performance level of the processor with non-linear power savings.
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE LowestNonlinearPerformanceBuffer;
|
|
UINT32 LowestNonlinearPerformanceInteger;
|
|
|
|
/// Indicates the lowest performance level of the processor..
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE LowestPerformanceBuffer;
|
|
UINT32 LowestPerformanceInteger;
|
|
|
|
/// Guaranteed Performance Register Buffer.
|
|
/// Optional
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE GuaranteedPerformanceRegister;
|
|
|
|
/// Desired Performance Register Buffer.
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE DesiredPerformanceRegister;
|
|
|
|
/// Minimum Performance Register Buffer.
|
|
/// Optional
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE MinimumPerformanceRegister;
|
|
|
|
/// Maximum Performance Register Buffer.
|
|
/// Optional
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE MaximumPerformanceRegister;
|
|
|
|
/// Performance Reduction Tolerance Register.
|
|
/// Optional
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE PerformanceReductionToleranceRegister;
|
|
|
|
/// Time Window Register.
|
|
/// Optional
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE TimeWindowRegister;
|
|
|
|
/// Counter Wraparound Time
|
|
/// Optional
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE CounterWraparoundTimeBuffer;
|
|
UINT32 CounterWraparoundTimeInteger;
|
|
|
|
/// Reference Performance Counter Register
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE ReferencePerformanceCounterRegister;
|
|
|
|
/// Delivered Performance Counter Register
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE DeliveredPerformanceCounterRegister;
|
|
|
|
/// Performance Limited Register
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE PerformanceLimitedRegister;
|
|
|
|
/// CPPC EnableRegister
|
|
/// Optional
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE CPPCEnableRegister;
|
|
|
|
/// Autonomous Selection Enable
|
|
/// Optional
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE AutonomousSelectionEnableBuffer;
|
|
UINT32 AutonomousSelectionEnableInteger;
|
|
|
|
/// AutonomousActivity-WindowRegister
|
|
/// Optional
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE AutonomousActivityWindowRegister;
|
|
|
|
/// EnergyPerformance-PreferenceRegister
|
|
/// Optional
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE EnergyPerformancePreferenceRegister;
|
|
|
|
/// Reference Performance
|
|
/// Optional
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE ReferencePerformanceBuffer;
|
|
UINT32 ReferencePerformanceInteger;
|
|
|
|
/// Lowest Frequency
|
|
/// Optional
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE LowestFrequencyBuffer;
|
|
UINT32 LowestFrequencyInteger;
|
|
|
|
/// Nominal Frequency
|
|
/// Optional
|
|
EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE NominalFrequencyBuffer;
|
|
UINT32 NominalFrequencyInteger;
|
|
} AML_CPC_INFO;
|
|
|
|
#pragma pack()
|
|
|
|
#endif //AML_CPC_INFO_H_
|