From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2607:f8b0:4864:20::12e; helo=mail-it1-x12e.google.com; envelope-from=ard.biesheuvel@linaro.org; receiver=edk2-devel@lists.01.org Received: from mail-it1-x12e.google.com (mail-it1-x12e.google.com [IPv6:2607:f8b0:4864:20::12e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 38A51211D56C9 for ; Wed, 6 Mar 2019 01:38:10 -0800 (PST) Received: by mail-it1-x12e.google.com with SMTP id v2so8512250ith.3 for ; Wed, 06 Mar 2019 01:38:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=LTJa6sFJ48uf8veCvU7KOXsCYLKJFVjhiyCYbdtxCKc=; b=w0LXCGW3JpNUAzhxFmislDtPd6D8Odv37jBbT5Gy1PZEdwWiwiK/9mz2IlGrQXyA2a OwkPq9W6HTH4Rj8nDINyiPw8EtCIZ33hSIs4n/GSxwDIN8x/riICnfX7Rqg9RaEf/5QL prjtcyVnw0NB/shqdg8jnnYWqdnEHvy+crqKbS5bEyWJ4yAaIDUT5sJ22QMPAyr6u3XI HRxL2tom3VTTYp5FatHA1oMNArgdJlCt8faGFbYCKBdbMzxbbfHOQupHbNQANg73Kax8 3W/YJmvKIlHb8UvFOVuYQw9mJnCOnghs0Hc/pUgnBfhzPTE0thXkOZFArAYwkTU4Vd4P DlmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=LTJa6sFJ48uf8veCvU7KOXsCYLKJFVjhiyCYbdtxCKc=; b=Or6c35VpMYSTbjcmNBd/AjNNB7byx/EiskovHAo2eUxet2GX5/z51X4ut9U5BPG/On m82XB1adlInLeFPjFCCs9SKcU3EmlvXH3iRvJPLtF4Sin+ll27SO/DwXnlkrxSAQdNAI Og7vwroF3cpLeEk7KA17KHSZ4031Fgd/ARMoMUKbc51A3RXd0sPMJaSMVR+NHtgCnbt8 9lh4AiDjKwBv/WynYunS8Mt4kpmR+LxmAfZJp55Y/nMAxG7ApzKmPBwyxN+LmfxK25EJ mydYi5pgdiX09YhAH0rL2IwU9jPxT8l/2g5dPH1MqZg2rlZrRMhSeEX0hM+dRkzqqHy7 WQTw== X-Gm-Message-State: APjAAAUqjrNRw0JdzSMOHhS4DbMteAWZRSh8Zu+86a/DJbq0uI+XcpZW jLliPSQY7Uyk4VoRzTyMD3AARP063+hne0mIGWRVUA== X-Google-Smtp-Source: APXvYqwzmjm5gZtEbkGgeVaytMSbESCdNYC8O01jgUoD5lYEn/qHib6AF6R36FsVgOqLw5cNNwI99aRm77EXIZkKEOU= X-Received: by 2002:a05:6638:2a1:: with SMTP id d1mr3692863jaq.2.1551865089251; Wed, 06 Mar 2019 01:38:09 -0800 (PST) MIME-Version: 1.0 References: <734D49CCEBEEF84792F5B80ED585239D5C060382@SHSMSX104.ccr.corp.intel.com> <734D49CCEBEEF84792F5B80ED585239D5C060A85@SHSMSX104.ccr.corp.intel.com> In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D5C060A85@SHSMSX104.ccr.corp.intel.com> From: Ard Biesheuvel Date: Wed, 6 Mar 2019 10:37:58 +0100 Message-ID: To: "Ni, Ray" , Achin Gupta , Charles Garcia-Tobin Cc: "edk2-devel@lists.01.org" Subject: Re: Does ARM platform produce MP protocol? X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Mar 2019 09:38:10 -0000 Content-Type: text/plain; charset="UTF-8" (adding Achin and Charles) On Wed, 6 Mar 2019 at 10:16, Ni, Ray wrote: > > > -----Original Message----- > > From: edk2-devel On Behalf Of Ard > > Biesheuvel > > Sent: Wednesday, March 6, 2019 3:38 PM > > To: Ni, Ray > > 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 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? No it is currently not implemented, and I am not aware of any plans to do so. > 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? > I don't know the history of this protocol and who proposed it, but today, we don't have a need for running per-CPU initialization code in the context of MM. Even if MM is a component of the more privileged firmware running on an ARM system, it is running in a sandbox that was primarily designed around exposing MM services to UEFI code running at the same privilege level as the OS (such as the authenticated variable store). Platform initialization code (which is more likely to require dispatch to each core) runs in the secure world as well, but not in the context of MM. I will let Achin chime in here as well. > 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