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