3 Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
8 #ifndef AML_CPC_INFO_H_
9 #define AML_CPC_INFO_H_
11 #include <IndustryStandard/Acpi.h>
15 /** A structure that describes the Cpc information.
17 Continuous Performance Control is described in DSDT/SSDT and associated
18 to cpus/clusters in the cpu topology.
20 Unsupported Optional registers should be encoded with NULL resource
21 Register {(SystemMemory, 0, 0, 0, 0)}
23 For values that support Integer or Buffer, integer will be used
24 if buffer is NULL resource.
25 If resource is not NULL then Integer must be 0
27 Cf. ACPI 6.4, s8.4.7.1 _CPC (Continuous Performance Control)
31 typedef struct AmlCpcInfo
{
32 /// The revision number of the _CPC package format.
35 /// Indicates the highest level of performance the processor
36 /// is theoretically capable of achieving.
37 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE HighestPerformanceBuffer
;
38 UINT32 HighestPerformanceInteger
;
40 /// Indicates the highest sustained performance level of the processor.
41 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE NominalPerformanceBuffer
;
42 UINT32 NominalPerformanceInteger
;
44 /// Indicates the lowest performance level of the processor with non-linear power savings.
45 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE LowestNonlinearPerformanceBuffer
;
46 UINT32 LowestNonlinearPerformanceInteger
;
48 /// Indicates the lowest performance level of the processor..
49 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE LowestPerformanceBuffer
;
50 UINT32 LowestPerformanceInteger
;
52 /// Guaranteed Performance Register Buffer.
54 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE GuaranteedPerformanceRegister
;
56 /// Desired Performance Register Buffer.
57 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE DesiredPerformanceRegister
;
59 /// Minimum Performance Register Buffer.
61 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE MinimumPerformanceRegister
;
63 /// Maximum Performance Register Buffer.
65 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE MaximumPerformanceRegister
;
67 /// Performance Reduction Tolerance Register.
69 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE PerformanceReductionToleranceRegister
;
71 /// Time Window Register.
73 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE TimeWindowRegister
;
75 /// Counter Wraparound Time
77 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE CounterWraparoundTimeBuffer
;
78 UINT32 CounterWraparoundTimeInteger
;
80 /// Reference Performance Counter Register
81 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE ReferencePerformanceCounterRegister
;
83 /// Delivered Performance Counter Register
84 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE DeliveredPerformanceCounterRegister
;
86 /// Performance Limited Register
87 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE PerformanceLimitedRegister
;
89 /// CPPC EnableRegister
91 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE CPPCEnableRegister
;
93 /// Autonomous Selection Enable
95 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE AutonomousSelectionEnableBuffer
;
96 UINT32 AutonomousSelectionEnableInteger
;
98 /// AutonomousActivity-WindowRegister
100 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE AutonomousActivityWindowRegister
;
102 /// EnergyPerformance-PreferenceRegister
104 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE EnergyPerformancePreferenceRegister
;
106 /// Reference Performance
108 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE ReferencePerformanceBuffer
;
109 UINT32 ReferencePerformanceInteger
;
113 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE LowestFrequencyBuffer
;
114 UINT32 LowestFrequencyInteger
;
116 /// Nominal Frequency
118 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE NominalFrequencyBuffer
;
119 UINT32 NominalFrequencyInteger
;
124 #endif //AML_CPC_INFO_H_