From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web12.7362.1663229044258126512 for ; Thu, 15 Sep 2022 01:04:04 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: pierre.gondois@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 478401CE2; Thu, 15 Sep 2022 01:04:10 -0700 (PDT) Received: from [10.34.100.114] (pierre123.nice.arm.com [10.34.100.114]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id EFEA63F73B; Thu, 15 Sep 2022 01:04:02 -0700 (PDT) Message-ID: <145fd2d9-330a-7e52-386f-70a9c0eba34e@arm.com> Date: Thu, 15 Sep 2022 10:03:55 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [PATCH v2 3/3] DynamicTablesPkg: SSDT CPU _CPC generator To: Jeff Brasen , devel@edk2.groups.io Cc: ardb+tianocore@kernel.org, Sami.Mujawar@arm.com, Alexei.Fedorov@arm.com References: <5cb1dcf9ca892c00c03dfc69b74306b45305b05f.1663191097.git.jbrasen@nvidia.com> From: "PierreGondois" In-Reply-To: <5cb1dcf9ca892c00c03dfc69b74306b45305b05f.1663191097.git.jbrasen@nvidia.com> Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hello Jeff, Just one remark: On 9/14/22 23:34, Jeff Brasen wrote: > Add code to use a token attached to GICC to generate _CPC object on cpus. > > Signed-off-by: Jeff Brasen > --- > .../SsdtCpuTopologyGenerator.c | 223 +++++++++++++++++- > 1 file changed, 217 insertions(+), 6 deletions(-) > > diff --git a/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c b/DynamicTablesPkg/Library/Acpi/Arm/AcpiSsdtCpuTopologyLibArm/SsdtCpuTopologyGenerator.c > index 8561f48e1f..56741e7b58 100644 [snip] > @@ -934,10 +1134,11 @@ CreateTopologyFromGicC ( > IN AML_OBJECT_NODE_HANDLE ScopeNode > ) > { > - EFI_STATUS Status; > - CM_ARM_GICC_INFO *GicCInfo; > - UINT32 GicCInfoCount; > - UINT32 Index; > + EFI_STATUS Status; > + CM_ARM_GICC_INFO *GicCInfo; > + UINT32 GicCInfoCount; > + UINT32 Index; > + AML_OBJECT_NODE_HANDLE CpuNode; > > ASSERT (Generator != NULL); > ASSERT (CfgMgrProtocol != NULL); > @@ -961,12 +1162,22 @@ CreateTopologyFromGicC ( > ScopeNode, > &GicCInfo[Index], > Index, > - NULL > + &CpuNode > ); > if (EFI_ERROR (Status)) { > ASSERT (0); > break; > } > + > + // If a CPC info is associated with the > + // GicCinfo, create an _CPC method returning them. > + if (GicCInfo->CpcToken != CM_NULL_TOKEN) { > + Status = CreateAmlCpcNode (Generator, CfgMgrProtocol, &GicCInfo[Index], CpuNode); > + if (EFI_ERROR (Status)) { > + ASSERT_EFI_ERROR (Status); > + return Status; Could it be replaced with a 'break' just to be consistent in the loop ? > + } > + } > } // for > > return Status;