DynamicTablesPkg: AML Code generation to add _CPC entries
_CPC entries can describe CPU performance information. The object is described in ACPI 6.4 s8.4.7.1. "_CPC (Continuous Performance Control)". Add AmlCreateCpcNode() helper function to add _CPC entries to an existing CPU object. Signed-off-by: Jeff Brasen <jbrasen@nvidia.com> Reviewed-by: Pierre Gondois <pierre.gondois@arm.com> Reviewed-by: Sami Mujawar <sami.mujawar@arm.com>
This commit is contained in:
committed by
mergify[bot]
parent
09c90532e7
commit
58350c0055
@@ -36,6 +36,7 @@
|
||||
@}
|
||||
*/
|
||||
|
||||
#include <AmlCpcInfo.h>
|
||||
#include <IndustryStandard/Acpi.h>
|
||||
|
||||
#ifndef AML_HANDLE
|
||||
@@ -1336,6 +1337,59 @@ AmlAddNameIntegerPackage (
|
||||
IN AML_OBJECT_NODE_HANDLE PackageNode
|
||||
);
|
||||
|
||||
/** Create a _CPC node.
|
||||
|
||||
Creates and optionally adds the following node
|
||||
Name(_CPC, Package()
|
||||
{
|
||||
NumEntries, // Integer
|
||||
Revision, // Integer
|
||||
HighestPerformance, // Integer or Buffer (Resource Descriptor)
|
||||
NominalPerformance, // Integer or Buffer (Resource Descriptor)
|
||||
LowestNonlinearPerformance, // Integer or Buffer (Resource Descriptor)
|
||||
LowestPerformance, // Integer or Buffer (Resource Descriptor)
|
||||
GuaranteedPerformanceRegister, // Buffer (Resource Descriptor)
|
||||
DesiredPerformanceRegister , // Buffer (Resource Descriptor)
|
||||
MinimumPerformanceRegister , // Buffer (Resource Descriptor)
|
||||
MaximumPerformanceRegister , // Buffer (Resource Descriptor)
|
||||
PerformanceReductionToleranceRegister, // Buffer (Resource Descriptor)
|
||||
TimeWindowRegister, // Buffer (Resource Descriptor)
|
||||
CounterWraparoundTime, // Integer or Buffer (Resource Descriptor)
|
||||
ReferencePerformanceCounterRegister, // Buffer (Resource Descriptor)
|
||||
DeliveredPerformanceCounterRegister, // Buffer (Resource Descriptor)
|
||||
PerformanceLimitedRegister, // Buffer (Resource Descriptor)
|
||||
CPPCEnableRegister // Buffer (Resource Descriptor)
|
||||
AutonomousSelectionEnable, // Integer or Buffer (Resource Descriptor)
|
||||
AutonomousActivityWindowRegister, // Buffer (Resource Descriptor)
|
||||
EnergyPerformancePreferenceRegister, // Buffer (Resource Descriptor)
|
||||
ReferencePerformance // Integer or Buffer (Resource Descriptor)
|
||||
LowestFrequency, // Integer or Buffer (Resource Descriptor)
|
||||
NominalFrequency // Integer or Buffer (Resource Descriptor)
|
||||
})
|
||||
|
||||
If resource buffer is NULL then integer will be used.
|
||||
|
||||
Cf. ACPI 6.4, s8.4.7.1 _CPC (Continuous Performance Control)
|
||||
|
||||
@ingroup CodeGenApis
|
||||
|
||||
@param [in] CpcInfo CpcInfo object
|
||||
@param [in] ParentNode If provided, set ParentNode as the parent
|
||||
of the node created.
|
||||
@param [out] NewCpcNode If success and provided, contains the created node.
|
||||
|
||||
@retval EFI_SUCCESS The function completed successfully.
|
||||
@retval EFI_INVALID_PARAMETER Invalid parameter.
|
||||
@retval EFI_OUT_OF_RESOURCES Failed to allocate memory.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
AmlCreateCpcNode (
|
||||
IN AML_CPC_INFO *CpcInfo,
|
||||
IN AML_NODE_HANDLE ParentNode OPTIONAL,
|
||||
OUT AML_OBJECT_NODE_HANDLE *NewCpcNode OPTIONAL
|
||||
);
|
||||
|
||||
// DEPRECATED APIS
|
||||
#ifndef DISABLE_NEW_DEPRECATED_INTERFACES
|
||||
|
||||
|
Reference in New Issue
Block a user