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