Change pushed: 1b461403ee723dab01d5828714cca0b9396a6b3c
Thanks, Chasel > -----Original Message----- > From: Ni, Ray <ray...@intel.com> > Sent: Monday, September 14, 2020 11:46 AM > To: Chiu, Chasel <chasel.c...@intel.com>; devel@edk2.groups.io > Cc: Chiu, Chasel <chasel.c...@intel.com>; Dong, Eric <eric.d...@intel.com>; > Laszlo Ersek <ler...@redhat.com>; Kumar, Rahul1 > <rahul1.ku...@intel.com>; Desimone, Nathaniel L > <nathaniel.l.desim...@intel.com> > Subject: RE: [PATCH v2] UefiCpuPkg/RegisterCpuFeaturesLib: Support > MpServices2 only case. > > Reviewed-by: Ray Ni <ray...@intel.com> > > > -----Original Message----- > > From: Chasel Chiu <chasel.c...@intel.com> > > Sent: Monday, September 14, 2020 9:48 AM > > To: devel@edk2.groups.io > > Cc: Chiu, Chasel <chasel.c...@intel.com>; Dong, Eric > > <eric.d...@intel.com>; Ni, Ray <ray...@intel.com>; Laszlo Ersek > > <ler...@redhat.com>; Kumar, Rahul1 <rahul1.ku...@intel.com>; > Desimone, > > Nathaniel L <nathaniel.l.desim...@intel.com> > > Subject: [PATCH v2] UefiCpuPkg/RegisterCpuFeaturesLib: Support > > MpServices2 only case. > > > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2883 > > > > 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 <eric.d...@intel.com> > > Cc: Ray Ni <ray...@intel.com> > > Cc: Laszlo Ersek <ler...@redhat.com> > > Cc: Rahul Kumar <rahul1.ku...@intel.com> > > Cc: Nate DeSimone <nathaniel.l.desim...@intel.com> > > Signed-off-by: Chasel Chiu <chasel.c...@intel.com> > > --- > > UefiCpuPkg/Library/RegisterCpuFeaturesLib/PeiRegisterCpuFeaturesLib.c > | > > 61 +++++++++++++++++++++++-------------------------------------- > > > > UefiCpuPkg/Library/RegisterCpuFeaturesLib/PeiRegisterCpuFeaturesLib.in > > f | 5 > > ++--- > > UefiCpuPkg/Library/RegisterCpuFeaturesLib/RegisterCpuFeatures.h > | 6 > > +++--- > > 3 files changed, 28 insertions(+), 44 deletions(-) > > > > diff --git > > a/UefiCpuPkg/Library/RegisterCpuFeaturesLib/PeiRegisterCpuFeaturesLib. > > c > > b/UefiCpuPkg/Library/RegisterCpuFeaturesLib/PeiRegisterCpuFeaturesLib. > > 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. > > > > - Copyright (c) 2016 - 2019, Intel Corporation. All rights > > reserved.<BR> > > + Copyright (c) 2016 - 2020, Intel Corporation. All rights > > + reserved.<BR> > > SPDX-License-Identifier: BSD-2-Clause-Patent > > > > **/ > > @@ -11,7 +11,6 @@ > > #include <Library/HobLib.h> > > #include <Library/PeiServicesLib.h> > > #include <Library/PeiServicesTablePointerLib.h> > > -#include <Ppi/MpServices.h> > > #include <Ppi/MpServices2.h> > > > > #include "RegisterCpuFeatures.h" > > @@ -75,10 +74,10 @@ GetMpService ( > > MP_SERVICES MpService; > > > > // > > - // Get MP Services Protocol > > + // Get MP Services2 Ppi > > // > > Status = 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; > > > > - CpuMpPpi = CpuFeaturesData->MpService.Ppi; > > + CpuMp2Ppi = CpuFeaturesData->MpService.Ppi; > > > > // > > // For two reasons which use NULL for WhoAmI: > > // 1. This function will be called by APs and AP should not use > > PeiServices Table > > // 2. Check WhoAmI implementation, this parameter will not be used. > > // > > - Status = CpuMpPpi->WhoAmI(NULL, CpuMpPpi, &ProcessorIndex); > > + Status = 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; > > > > CpuFeaturesData = GetCpuFeaturesData (); > > - CpuMpPpi = CpuFeaturesData->MpService.Ppi; > > + CpuMp2Ppi = CpuFeaturesData->MpService.Ppi; > > > > - Status = CpuMpPpi->GetProcessorInfo ( > > - GetPeiServicesTablePointer(), > > - CpuMpPpi, > > + Status = 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; > > > > CpuFeaturesData = GetCpuFeaturesData (); > > - CpuMpPpi = CpuFeaturesData->MpService.Ppi; > > + CpuMp2Ppi = CpuFeaturesData->MpService.Ppi; > > > > // > > // Wakeup all APs for data collection. > > // > > - Status = CpuMpPpi->StartupAllAPs ( > > - GetPeiServicesTablePointer (), > > - CpuMpPpi, > > + Status = CpuMp2Ppi->StartupAllAPs ( > > + CpuMp2Ppi, > > Procedure, > > FALSE, > > 0, > > @@ -203,17 +200,7 @@ StartupAllCPUsWorker ( > > // > > // Get MP Services2 Ppi > > // > > - Status = PeiServicesLocatePpi ( > > - &gEdkiiPeiMpServices2PpiGuid, > > - 0, > > - NULL, > > - (VOID **)&CpuMp2Ppi > > - ); > > - ASSERT_EFI_ERROR (Status); > > - > > - // > > - // Wakeup all APs for data collection. > > - // > > + CpuMp2Ppi = CpuFeaturesData->MpService.Ppi; > > Status = 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; > > > > CpuFeaturesData = GetCpuFeaturesData (); > > - CpuMpPpi = CpuFeaturesData->MpService.Ppi; > > + CpuMp2Ppi = CpuFeaturesData->MpService.Ppi; > > > > // > > // Wakeup all APs for data collection. > > // > > - Status = CpuMpPpi->SwitchBSP ( > > - GetPeiServicesTablePointer (), > > - CpuMpPpi, > > + Status = 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; > > > > CpuFeaturesData = GetCpuFeaturesData (); > > - CpuMpPpi = CpuFeaturesData->MpService.Ppi; > > + CpuMp2Ppi = CpuFeaturesData->MpService.Ppi; > > > > // > > // Get the number of CPUs > > // > > - Status = CpuMpPpi->GetNumberOfProcessors ( > > - GetPeiServicesTablePointer (), > > - CpuMpPpi, > > + Status = CpuMp2Ppi->GetNumberOfProcessors ( > > + CpuMp2Ppi, > > NumberOfCpus, > > NumberOfEnabledProcessors > > ); > > diff --git > > a/UefiCpuPkg/Library/RegisterCpuFeaturesLib/PeiRegisterCpuFeaturesLib. > > inf > > b/UefiCpuPkg/Library/RegisterCpuFeaturesLib/PeiRegisterCpuFeaturesLib. > > inf > > index 61f922bf63..196c72eb85 100644 > > --- > > a/UefiCpuPkg/Library/RegisterCpuFeaturesLib/PeiRegisterCpuFeaturesLib. > > inf > > +++ > > b/UefiCpuPkg/Library/RegisterCpuFeaturesLib/PeiRegisterCpuFeaturesLib. > > inf > > @@ -1,7 +1,7 @@ > > ## @file > > # Register CPU Features Library PEI instance. > > # > > -# Copyright (c) 2017 - 2019, Intel Corporation. All rights > > reserved.<BR> > > +# Copyright (c) 2017 - 2020, Intel Corporation. All rights > > +reserved.<BR> > > # SPDX-License-Identifier: BSD-2-Clause-Patent # ## @@ -45,7 +45,6 > > @@ > > IoLib > > > > [Ppis] > > - gEfiPeiMpServicesPpiGuid > ## CONSUMES > > gEdkiiPeiMpServices2PpiGuid > ## CONSUMES > > > > [Pcd] > > @@ -55,4 +54,4 @@ > > gUefiCpuPkgTokenSpaceGuid.PcdCpuFeaturesSetting > ## > > CONSUMES ## PRODUCES > > > > [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 <PiPei.h> > > #include <PiDxe.h> > > -#include <Ppi/MpServices.h> > > +#include <Ppi/MpServices2.h> > > #include <Protocol/MpService.h> > > > > #include <Library/BaseLib.h> > > @@ -64,8 +64,8 @@ typedef struct { > > } PROGRAM_CPU_REGISTER_FLAGS; > > > > 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; > > > > typedef struct { > > -- > > 2.13.3.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#65222): https://edk2.groups.io/g/devel/message/65222 Mute This Topic: https://groups.io/mt/76833733/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-