From nobody Thu Apr 25 10:18:11 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) client-ip=66.175.222.12; envelope-from=bounce+27952+65209+1787277+3901457@groups.io; helo=web01.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+65209+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1600048117; cv=none; d=zohomail.com; s=zohoarc; b=GfQ0JWqelaAuKaHnL78vljTNn2Lg7EniZ4QVUjWBXbryR4ocsQDv9fd8F7sSizQjmeHuNZKKfp2YuT8pX4AD4SfoFQdli52VHr1g55N56J0OBoKms//yFY+H/QRS30uVEGtqeu3OCRJ0wnlQhCeFm1J4J2OTZQtxkLyQmcIWmXI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600048117; h=Cc:Date:From:List-Id:List-Unsubscribe:Message-ID:Reply-To:Sender:Subject:To; bh=EpHPwR8v4m0jD/C9P1l40njVUneFsLvITIV9lQD0zTU=; b=M4sGPzTWbfY47eizpoBJ2c+KAfQspnwsi5RSG3AFRHPZu77s/q0TNOisSEYqLOGvkNw6x54u7X54tAdG4JC9p6GqFT7YR49zoePOMQzmDcCPwdNUM3EjpsOtH8Y6Hjdoc8ERU/TP9N6AMtT7iT3AFLKEnMuZxjn4oxLFRQz6teg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.12 as permitted sender) smtp.mailfrom=bounce+27952+65209+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) header.from= Received: from web01.groups.io (web01.groups.io [66.175.222.12]) by mx.zohomail.com with SMTPS id 1600048117688835.7445353013767; Sun, 13 Sep 2020 18:48:37 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id t7I6YY1788612xAGvnkHT6cx; Sun, 13 Sep 2020 18:48:37 -0700 X-Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web10.51481.1600048116232674129 for ; Sun, 13 Sep 2020 18:48:36 -0700 IronPort-SDR: YXzkzOERF/oYUYbkywl2/yFgOeOsHzvKgYLnfASiP8Wdyah7ZX0ukLi8OKlz+0EyIQoyQzucTS 3r/1BSPgUx5A== X-IronPort-AV: E=McAfee;i="6000,8403,9743"; a="177072850" X-IronPort-AV: E=Sophos;i="5.76,424,1592895600"; d="scan'208";a="177072850" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False X-Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Sep 2020 18:48:35 -0700 IronPort-SDR: D6pjrwWAEMgsYOmugpvTOPdlQqRdNuy9j1xVeovIuwZRO5cGAZMGc/jL69BcnqPNAwPqG6icd8 Ib6VHvXy71bA== X-IronPort-AV: E=Sophos;i="5.76,424,1592895600"; d="scan'208";a="482148811" X-Received: from cchiu4-mobl1.gar.corp.intel.com ([10.252.129.59]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-SHA; 13 Sep 2020 18:48:33 -0700 From: "Chiu, Chasel" To: devel@edk2.groups.io Cc: Chasel Chiu , Eric Dong , Ray Ni , Laszlo Ersek , Rahul Kumar , Nate DeSimone Subject: [edk2-devel] [PATCH v2] UefiCpuPkg/RegisterCpuFeaturesLib: Support MpServices2 only case. Date: Mon, 14 Sep 2020 09:48:27 +0800 Message-Id: <20200914014827.14476-1-chasel.chiu@intel.com> Precedence: Bulk List-Unsubscribe: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,chasel.chiu@intel.com X-Gm-Message-State: 9EJM16Trf0UanWOI63uxk3bax1787277AA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1600048117; bh=uB4OISi2Ry/VJWoygWbwzGj9nUm2Xpq4dfQqANMBK24=; h=Cc:Date:From:Reply-To:Subject:To; b=AcxaoOfF1U3wU7hN4V5KsTFP7wyhwbZGv3f86cAb4mNp6Qk3YWSss0zTQnksA9DI/1D bvjtM7bqBWWaGN7eAj5/c78PKsZV1c/aM6gGjOzxvxhbcDtkxXci2tEVbIWR+s7Y7DemV iClmFN9Y7LLzoqAc++WYGQPCeFHQtes95q0= X-ZohoMail-DKIM: pass (identity @groups.io) Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2883 MpServices Ppi can be replaced by MpServices2 Ppi and MpServices2 Ppi is mandatory for RegisterCpuFeaturesLib functionality, basing on this we can drop MpServices Ppi usage from the library and the constraint that both Ppis must be installed. Cc: Eric Dong Cc: Ray Ni Cc: Laszlo Ersek Cc: Rahul Kumar Cc: Nate DeSimone Signed-off-by: Chasel Chiu Reviewed-by: Ray Ni --- UefiCpuPkg/Library/RegisterCpuFeaturesLib/PeiRegisterCpuFeaturesLib.c | = 61 +++++++++++++++++++++++-------------------------------------- UefiCpuPkg/Library/RegisterCpuFeaturesLib/PeiRegisterCpuFeaturesLib.inf | = 5 ++--- UefiCpuPkg/Library/RegisterCpuFeaturesLib/RegisterCpuFeatures.h | = 6 +++--- 3 files changed, 28 insertions(+), 44 deletions(-) diff --git a/UefiCpuPkg/Library/RegisterCpuFeaturesLib/PeiRegisterCpuFeatur= esLib.c b/UefiCpuPkg/Library/RegisterCpuFeaturesLib/PeiRegisterCpuFeaturesL= ib.c index 64768f7a74..4e558e9fee 100644 --- a/UefiCpuPkg/Library/RegisterCpuFeaturesLib/PeiRegisterCpuFeaturesLib.c +++ b/UefiCpuPkg/Library/RegisterCpuFeaturesLib/PeiRegisterCpuFeaturesLib.c @@ -1,7 +1,7 @@ /** @file CPU Register Table Library functions. =20 - Copyright (c) 2016 - 2019, Intel Corporation. All rights reserved.
+ Copyright (c) 2016 - 2020, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent =20 **/ @@ -11,7 +11,6 @@ #include #include #include -#include #include =20 #include "RegisterCpuFeatures.h" @@ -75,10 +74,10 @@ GetMpService ( MP_SERVICES MpService; =20 // - // Get MP Services Protocol + // Get MP Services2 Ppi // Status =3D PeiServicesLocatePpi ( - &gEfiPeiMpServicesPpiGuid, + &gEdkiiPeiMpServices2PpiGuid, 0, NULL, (VOID **)&MpService.Ppi @@ -100,17 +99,17 @@ GetProcessorIndex ( ) { EFI_STATUS Status; - EFI_PEI_MP_SERVICES_PPI *CpuMpPpi; + EDKII_PEI_MP_SERVICES2_PPI *CpuMp2Ppi; UINTN ProcessorIndex; =20 - CpuMpPpi =3D CpuFeaturesData->MpService.Ppi; + CpuMp2Ppi =3D CpuFeaturesData->MpService.Ppi; =20 // // For two reasons which use NULL for WhoAmI: // 1. This function will be called by APs and AP should not use PeiServi= ces Table // 2. Check WhoAmI implementation, this parameter will not be used. // - Status =3D CpuMpPpi->WhoAmI(NULL, CpuMpPpi, &ProcessorIndex); + Status =3D CpuMp2Ppi->WhoAmI (CpuMp2Ppi, &ProcessorIndex); ASSERT_EFI_ERROR (Status); return ProcessorIndex; } @@ -131,16 +130,15 @@ GetProcessorInformation ( OUT EFI_PROCESSOR_INFORMATION *ProcessorInfoBuffer ) { - EFI_PEI_MP_SERVICES_PPI *CpuMpPpi; + EDKII_PEI_MP_SERVICES2_PPI *CpuMp2Ppi; EFI_STATUS Status; CPU_FEATURES_DATA *CpuFeaturesData; =20 CpuFeaturesData =3D GetCpuFeaturesData (); - CpuMpPpi =3D CpuFeaturesData->MpService.Ppi; + CpuMp2Ppi =3D CpuFeaturesData->MpService.Ppi; =20 - Status =3D CpuMpPpi->GetProcessorInfo ( - GetPeiServicesTablePointer(), - CpuMpPpi, + Status =3D CpuMp2Ppi->GetProcessorInfo ( + CpuMp2Ppi, ProcessorNumber, ProcessorInfoBuffer ); @@ -162,18 +160,17 @@ StartupAllAPsWorker ( ) { EFI_STATUS Status; - EFI_PEI_MP_SERVICES_PPI *CpuMpPpi; + EDKII_PEI_MP_SERVICES2_PPI *CpuMp2Ppi; CPU_FEATURES_DATA *CpuFeaturesData; =20 CpuFeaturesData =3D GetCpuFeaturesData (); - CpuMpPpi =3D CpuFeaturesData->MpService.Ppi; + CpuMp2Ppi =3D CpuFeaturesData->MpService.Ppi; =20 // // Wakeup all APs for data collection. // - Status =3D CpuMpPpi->StartupAllAPs ( - GetPeiServicesTablePointer (), - CpuMpPpi, + Status =3D CpuMp2Ppi->StartupAllAPs ( + CpuMp2Ppi, Procedure, FALSE, 0, @@ -203,17 +200,7 @@ StartupAllCPUsWorker ( // // Get MP Services2 Ppi // - Status =3D PeiServicesLocatePpi ( - &gEdkiiPeiMpServices2PpiGuid, - 0, - NULL, - (VOID **)&CpuMp2Ppi - ); - ASSERT_EFI_ERROR (Status); - - // - // Wakeup all APs for data collection. - // + CpuMp2Ppi =3D CpuFeaturesData->MpService.Ppi; Status =3D CpuMp2Ppi->StartupAllCPUs ( CpuMp2Ppi, Procedure, @@ -234,18 +221,17 @@ SwitchNewBsp ( ) { EFI_STATUS Status; - EFI_PEI_MP_SERVICES_PPI *CpuMpPpi; + EDKII_PEI_MP_SERVICES2_PPI *CpuMp2Ppi; CPU_FEATURES_DATA *CpuFeaturesData; =20 CpuFeaturesData =3D GetCpuFeaturesData (); - CpuMpPpi =3D CpuFeaturesData->MpService.Ppi; + CpuMp2Ppi =3D CpuFeaturesData->MpService.Ppi; =20 // // Wakeup all APs for data collection. // - Status =3D CpuMpPpi->SwitchBSP ( - GetPeiServicesTablePointer (), - CpuMpPpi, + Status =3D CpuMp2Ppi->SwitchBSP ( + CpuMp2Ppi, ProcessorNumber, TRUE ); @@ -269,18 +255,17 @@ GetNumberOfProcessor ( ) { EFI_STATUS Status; - EFI_PEI_MP_SERVICES_PPI *CpuMpPpi; + EDKII_PEI_MP_SERVICES2_PPI *CpuMp2Ppi; CPU_FEATURES_DATA *CpuFeaturesData; =20 CpuFeaturesData =3D GetCpuFeaturesData (); - CpuMpPpi =3D CpuFeaturesData->MpService.Ppi; + CpuMp2Ppi =3D CpuFeaturesData->MpService.Ppi; =20 // // Get the number of CPUs // - Status =3D CpuMpPpi->GetNumberOfProcessors ( - GetPeiServicesTablePointer (), - CpuMpPpi, + Status =3D CpuMp2Ppi->GetNumberOfProcessors ( + CpuMp2Ppi, NumberOfCpus, NumberOfEnabledProcessors ); diff --git a/UefiCpuPkg/Library/RegisterCpuFeaturesLib/PeiRegisterCpuFeatur= esLib.inf b/UefiCpuPkg/Library/RegisterCpuFeaturesLib/PeiRegisterCpuFeature= sLib.inf index 61f922bf63..196c72eb85 100644 --- a/UefiCpuPkg/Library/RegisterCpuFeaturesLib/PeiRegisterCpuFeaturesLib.i= nf +++ b/UefiCpuPkg/Library/RegisterCpuFeaturesLib/PeiRegisterCpuFeaturesLib.i= nf @@ -1,7 +1,7 @@ ## @file # Register CPU Features Library PEI instance. # -# Copyright (c) 2017 - 2019, Intel Corporation. All rights reserved.
+# Copyright (c) 2017 - 2020, Intel Corporation. All rights reserved.
# SPDX-License-Identifier: BSD-2-Clause-Patent # ## @@ -45,7 +45,6 @@ IoLib =20 [Ppis] - gEfiPeiMpServicesPpiGuid ## = CONSUMES gEdkiiPeiMpServices2PpiGuid ## = CONSUMES =20 [Pcd] @@ -55,4 +54,4 @@ gUefiCpuPkgTokenSpaceGuid.PcdCpuFeaturesSetting ## = CONSUMES ## PRODUCES =20 [Depex] - gEfiPeiMpServicesPpiGuid AND gEdkiiCpuFeaturesSetDoneGuid + gEdkiiPeiMpServices2PpiGuid AND gEdkiiCpuFeaturesSetDoneGuid diff --git a/UefiCpuPkg/Library/RegisterCpuFeaturesLib/RegisterCpuFeatures.= h b/UefiCpuPkg/Library/RegisterCpuFeaturesLib/RegisterCpuFeatures.h index 53cb340b4c..e8a4aa644d 100644 --- a/UefiCpuPkg/Library/RegisterCpuFeaturesLib/RegisterCpuFeatures.h +++ b/UefiCpuPkg/Library/RegisterCpuFeaturesLib/RegisterCpuFeatures.h @@ -10,7 +10,7 @@ #define _REGISTER_CPU_FEATURES_H_ #include #include -#include +#include #include =20 #include @@ -64,8 +64,8 @@ typedef struct { } PROGRAM_CPU_REGISTER_FLAGS; =20 typedef union { - EFI_MP_SERVICES_PROTOCOL *Protocol; - EFI_PEI_MP_SERVICES_PPI *Ppi; + EFI_MP_SERVICES_PROTOCOL *Protocol; + EDKII_PEI_MP_SERVICES2_PPI *Ppi; } MP_SERVICES; =20 typedef struct { --=20 2.13.3.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#65209): https://edk2.groups.io/g/devel/message/65209 Mute This Topic: https://groups.io/mt/76833733/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-