]> git.proxmox.com Git - mirror_edk2.git/blob - DynamicTablesPkg/Include/AmlCpcInfo.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / DynamicTablesPkg / Include / AmlCpcInfo.h
1 /** @file
2
3 Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved.<BR>
4
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6 **/
7
8 #ifndef AML_CPC_INFO_H_
9 #define AML_CPC_INFO_H_
10
11 #include <IndustryStandard/Acpi.h>
12
13 #pragma pack(1)
14
15 /** A structure that describes the Cpc information.
16
17 Continuous Performance Control is described in DSDT/SSDT and associated
18 to cpus/clusters in the cpu topology.
19
20 Unsupported Optional registers should be encoded with NULL resource
21 Register {(SystemMemory, 0, 0, 0, 0)}
22
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
26
27 Cf. ACPI 6.4, s8.4.7.1 _CPC (Continuous Performance Control)
28
29 **/
30
31 typedef struct AmlCpcInfo {
32 /// The revision number of the _CPC package format.
33 UINT32 Revision;
34
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;
39
40 /// Indicates the highest sustained performance level of the processor.
41 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE NominalPerformanceBuffer;
42 UINT32 NominalPerformanceInteger;
43
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;
47
48 /// Indicates the lowest performance level of the processor..
49 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE LowestPerformanceBuffer;
50 UINT32 LowestPerformanceInteger;
51
52 /// Guaranteed Performance Register Buffer.
53 /// Optional
54 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE GuaranteedPerformanceRegister;
55
56 /// Desired Performance Register Buffer.
57 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE DesiredPerformanceRegister;
58
59 /// Minimum Performance Register Buffer.
60 /// Optional
61 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE MinimumPerformanceRegister;
62
63 /// Maximum Performance Register Buffer.
64 /// Optional
65 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE MaximumPerformanceRegister;
66
67 /// Performance Reduction Tolerance Register.
68 /// Optional
69 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE PerformanceReductionToleranceRegister;
70
71 /// Time Window Register.
72 /// Optional
73 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE TimeWindowRegister;
74
75 /// Counter Wraparound Time
76 /// Optional
77 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE CounterWraparoundTimeBuffer;
78 UINT32 CounterWraparoundTimeInteger;
79
80 /// Reference Performance Counter Register
81 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE ReferencePerformanceCounterRegister;
82
83 /// Delivered Performance Counter Register
84 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE DeliveredPerformanceCounterRegister;
85
86 /// Performance Limited Register
87 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE PerformanceLimitedRegister;
88
89 /// CPPC EnableRegister
90 /// Optional
91 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE CPPCEnableRegister;
92
93 /// Autonomous Selection Enable
94 /// Optional
95 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE AutonomousSelectionEnableBuffer;
96 UINT32 AutonomousSelectionEnableInteger;
97
98 /// AutonomousActivity-WindowRegister
99 /// Optional
100 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE AutonomousActivityWindowRegister;
101
102 /// EnergyPerformance-PreferenceRegister
103 /// Optional
104 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE EnergyPerformancePreferenceRegister;
105
106 /// Reference Performance
107 /// Optional
108 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE ReferencePerformanceBuffer;
109 UINT32 ReferencePerformanceInteger;
110
111 /// Lowest Frequency
112 /// Optional
113 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE LowestFrequencyBuffer;
114 UINT32 LowestFrequencyInteger;
115
116 /// Nominal Frequency
117 /// Optional
118 EFI_ACPI_6_4_GENERIC_ADDRESS_STRUCTURE NominalFrequencyBuffer;
119 UINT32 NominalFrequencyInteger;
120 } AML_CPC_INFO;
121
122 #pragma pack()
123
124 #endif //AML_CPC_INFO_H_