From: "PierreGondois" <pierre.gondois@arm.com>
To: Jeff Brasen <jbrasen@nvidia.com>, devel@edk2.groups.io
Cc: ardb+tianocore@kernel.org, Sami.Mujawar@arm.com, Alexei.Fedorov@arm.com
Subject: Re: [PATCH v2 1/3] DynamicTablesPkg: Add CM_ARM_CPC_INFO object
Date: Thu, 15 Sep 2022 10:02:02 +0200 [thread overview]
Message-ID: <0418ad2a-ad92-722d-30fd-4a3e0c8301b3@arm.com> (raw)
In-Reply-To: <562f833e95d7bbb6769094f17bd980cb9e8909ba.1663191097.git.jbrasen@nvidia.com>
Hello Jeff,
Just one remark:
On 9/14/22 23:34, Jeff Brasen wrote:
> Introduce the CM_ARM_CPC_INFO CmObj in the ArmNameSpaceObjects.
> This allows to describe CPC information, as described in ACPI 6.4,
> s8.4.7.1 "_CPC (Continuous Performance Control)".
>
> Signed-off-by: Jeff Brasen <jbrasen@nvidia.com>
> ---
> .../Include/ArmNameSpaceObjects.h | 148 ++++++++++++++++--
> .../ConfigurationManagerObjectParser.c | 79 ++++++++++
> 2 files changed, 210 insertions(+), 17 deletions(-)
>
[snip]
> diff --git a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
> index c1b21d24a4..e2c608443b 100644
> --- a/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
> +++ b/DynamicTablesPkg/Library/Common/TableHelperLib/ConfigurationManagerObjectParser.c
> @@ -423,6 +423,83 @@ STATIC CONST CM_OBJ_PARSER CmPciInterruptMapInfoParser[] = {
> ARRAY_SIZE (CmArmGenericInterruptParser) },
> };
>
> +/** A parser for EArmObjCpcInfo.
> +*/
> +STATIC CONST CM_OBJ_PARSER CmArmCpcInfoParser[] = {
> + { "HighestPerformanceBuffer", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
Could it be move to 6_4 aswell ?
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "HighestPerformanceInteger", 4, "0x%llx", NULL },
> + { "NominalPerformanceBuffer", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "NominalPerformanceInteger", 4, "0x%llx", NULL },
> + { "LowestNonlinearPerformanceBuffer", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "LowestNonlinearPerformanceInteger", 4, "0x%llx", NULL },
> + { "LowestPerformanceBuffer", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "LowestPerformanceInteger", 4, "0x%llx", NULL },
> + { "GuaranteedPerformanceRegister", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "DesiredPerformanceRegister", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "MinimumPerformanceRegister", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "MaximumPerformanceRegister", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "PerformanceReductionToleranceRegister", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "TimeWindowRegister", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "CounterWraparoundTimeBuffer", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "CounterWraparoundTimeInteger", 4, "0x%llx", NULL },
> + { "ReferencePerformanceCounterRegister", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "DeliveredPerformanceCounterRegister", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "PerformanceLimitedRegister", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "CPPCEnableRegister", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "AutonomousSelectionEnableBuffer", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "AutonomousSelectionEnableInteger", 4, "0x%llx", NULL },
> + { "AutonomousActivityWindowRegister", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "EnergyPerformancePreferenceRegister", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "ReferencePerformanceBuffer", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "ReferencePerformanceInteger", 4, "0x%llx", NULL },
> + { "LowestFrequencyBuffer", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "LowestFrequencyInteger", 4, "0x%llx", NULL },
> + { "NominalFrequencyBuffer", sizeof (EFI_ACPI_6_3_GENERIC_ADDRESS_STRUCTURE),
> + NULL, NULL, AcpiGenericAddressParser,
> + ARRAY_SIZE (AcpiGenericAddressParser) },
> + { "NominalFrequencyInteger", 4, "0x%llx", NULL },
> +};
> +
> /** A parser for Arm namespace objects.
> */
> STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = {
> @@ -501,6 +578,8 @@ STATIC CONST CM_OBJ_PARSER_ARRAY ArmNamespaceObjectParser[] = {
> ARRAY_SIZE (CmArmPciAddressMapInfoParser) },
> { "EArmObjPciInterruptMapInfo", CmPciInterruptMapInfoParser,
> ARRAY_SIZE (CmPciInterruptMapInfoParser) },
> + { "EArmObjCpcInfo", CmArmCpcInfoParser,
> + ARRAY_SIZE (CmArmCpcInfoParser) },
> { "EArmObjMax", NULL, 0 },
> };
>
next prev parent reply other threads:[~2022-09-15 8:02 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-14 21:34 [PATCH v2 0/3] DynamicTablesPkg: _CPC support Jeff Brasen
2022-09-14 21:34 ` [PATCH v2 1/3] DynamicTablesPkg: Add CM_ARM_CPC_INFO object Jeff Brasen
2022-09-15 8:02 ` PierreGondois [this message]
2022-09-15 14:00 ` Sami Mujawar
2022-09-14 21:34 ` [PATCH v2 2/3] DynamicTablesPkg: AML Code generation to add _CPC entries Jeff Brasen
2022-09-15 8:04 ` PierreGondois
2022-09-14 21:34 ` [PATCH v2 3/3] DynamicTablesPkg: SSDT CPU _CPC generator Jeff Brasen
2022-09-15 8:03 ` PierreGondois
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0418ad2a-ad92-722d-30fd-4a3e0c8301b3@arm.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox