> -----Original Message----- > From: edk2-devel <edk2-devel-boun...@lists.01.org> On Behalf Of Ard > Biesheuvel > Sent: Wednesday, March 6, 2019 3:38 PM > To: Ni, Ray <ray...@intel.com> > Cc: edk2-devel@lists.01.org > Subject: Re: [edk2] Does ARM platform produce MP protocol? > > On Wed, 6 Mar 2019 at 06:44, Ni, Ray <ray...@intel.com> wrote: > > > > Ard, Leif, > > I am a bit interested in how ARM platform supports the MP? > > PI Spec defines below protocol but I failed to find a driver in ARM platform > producing this protocol. > > Or did I miss anything? > > > > No you are right. We don't expose that on ARM, since UEFI only runs on a > single core. Bringing up and taking down cores is done via a protocol called > PSCI, which is implemented by firmware running at a higher privilege level. > > So while it would be possible to implement the MP protocol on top of PSCI, > we haven't identified a use case for it yet. (The OS calls PSCI directly to > boot > the secondary cores)
Is below EFI_MM_MP_PROTOCOL (added in PI spec 1.6) implemented in ARM? Or will it be implemented by an ARM module? I am asking this because MP_SERVICES protocol exposes CPU location information (Package/Core/Thread) through *GetProcessorInfo*, but MM_MP protocol doesn't have a way to expose that information. If such location information isn't exposed by MM_MP, is that because ARM doesn't care about the location information? Or because ARM cares but forgot to add similar *GetProcessorInfo* interface to MM_MP when changing the PI spec? Or ARM doesn't use the MM_MP at all? typedef struct _EFI_MM_MP_PROTOCOL { UINT32 Revision, UINT32 Attributes, EFI_MM_ GET_NUMBER_OF_PROCESSORS GetNumberOfProcessors, EFI_MM_DISPATCH_PROCEDURE DispatchProcedure, EFI_MM_BROADCAST_PROCEDURE BroadcastProcedure, EFI_MM_SET_STARTUP_PROCEDURE SetStartupProcedure, EFI_CHECK_FOR_PROCEDURE CheckOnProcedure, EFI_WAIT_FOR_PROCEDURE WaitForProcedure, }EFI_MM_MP_PROTOCOL; > > > typedef struct _EFI_MP_SERVICES_PROTOCOL { > > EFI_MP_SERVICES_GET_NUMBER_OF_PROCESSORS > GetNumberOfProcessors; > > EFI_MP_SERVICES_GET_PROCESSOR_INFO GetProcessorInfo; > > EFI_MP_SERVICES_STARTUP_ALL_APS StartupAllAPs; > > EFI_MP_SERVICES_STARTUP_THIS_AP StartupThisAP; > > EFI_MP_SERVICES_SWITCH_BSP SwitchBSP; > EFI_MP_SERVICES_ENABLEDISABLEAP > > EnableDisableAP; EFI_MP_SERVICES_WHOAMI WhoAmI; } > > EFI_MP_SERVICES_PROTOCOL; > > > > Thanks, > > Ray > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel