From brettstahlman at gmail.com Mon Jul 18 09:57:36 2016 From: brettstahlman at gmail.com (Brett Stahlman) Date: Mon, 18 Jul 2016 08:57:36 -0500 Subject: [Fw_Os_Forum] Support for EFI MP Services In-Reply-To: References: Message-ID: Acan, No. I was not aware there was a non-PI protocol. I will check to see whether it's supported by my firmware. Thanks, Brett S. On Jul 17, 2016 8:34 PM, "Chen, Ming (Acan, DTD-SH)" wrote: > Hi Brett, > > Just mention that there are two MP Service protocols: Framework MP Service > Protocol, and (PI) MP Service Protocol. > Note sure if you have tried both when you BS->LocateProtocol()? > > > Thanks, > Acan > > -----Original Message----- > From: fw_os_forum-bounces at mailman.uefi.org [mailto: > fw_os_forum-bounces at mailman.uefi.org] On Behalf Of Brett Stahlman > Sent: Saturday, July 16, 2016 3:27 AM > To: fw_os_forum at mailman.uefi.org > Subject: Re: [Fw_Os_Forum] Support for EFI MP Services > > Aaron, > So methods like GetNumberOfProcessors and StartupAllAPs (documented here > http://www.uefi.org/sites/default/files/resources/Plugfest_Multiprocessing-with_UEFI-McDaniel.pdf > ) > are not meant to be called from a boot loader using Boot Services? > > I will have a look at the other references. Hopefully the firmware's AP > initialization obviates the need for some of the tedious, low-level real > mode trampoline code I've seen in the kernel and other loader code > performing AP bring up... If UEFI simplifies only the BSP side of things, > it doesn't seem a very complete solution... > > Thanks, > Brett S. > > On Fri, Jul 15, 2016 at 11:28 AM, wrote: > > Hi Brett, > > > >>>1. Is there a way to add support for MP Services to firmware that > >>>doesn't have it natively? Is there a list somewhere documenting > >>>which firmware supports? > > If you platform doesn't support the MP services protocol, chances are > > that your platform is not compliant with the Platform Initialization > > specification. Additionally, the PI specification defines protocols > > that are intended for use by the firmware, not by boot loaders or the > > OS. I would highly recommend that your boot loader only use protocols > > that are defined in the UEFI specification. > > > > > >>>2. What is the best way to bring up the APs in an environment that > >>>doesn't support the MP Services Protocol? I've read something that > >>>suggests it might be easier with UEFI than with BIOS because the PI > >>>firmware does some pre-initialization of the APs even before handoff > >>>to the BSP - but I haven't found much documentation on this... > > X86/X86_64 operating systems follow intel's multi processor > > specification for waking APs when they are given control. > > (http://download.intel.com/design/archives/processors/pro/docs/2420160 > > 6.pdf) All firmware (even legacy BIOSes) would initialize all > > processors in the system, and then would either halt the APs, or put > > the APs into a spin loop and only leave the BSP (boot strap processor) > > running when giving control to a bootloader. > > > > For more information, you can refer to > > http://wiki.osdev.org/Symmetric_Multiprocessing, or you can check out > > how the linux kernel performs multi processor bring up. > > > > -Aaron > > > > > > > > > > > > > > From: Brett Stahlman > > To: fw_os_forum at mailman.uefi.org > > Date: 07/15/2016 09:11 AM > > Subject: [Fw_Os_Forum] Support for EFI MP Services > > Sent by: fw_os_forum-bounces at mailman.uefi.org > > ________________________________ > > > > > > > > I'm working on an x86_64 UEFI boot loader that runs on the BSP in > > 64-bit long mode, and must bring up APs (secondary processors) after > > some preliminary initialization. I've seen some documentation on EFI > > MP (multi-processor) Service Protocol, but the headers in gnu-efi > > don't appear to support it, and BS->LocateProtocol() reports status 14 > > (EFI_NOT_FOUND). My questions are... > > > > 1. Is there a way to add support for MP Services to firmware that > > doesn't have it natively? Is there a list somewhere documenting which > > firmware supports? > > 2. What is the best way to bring up the APs in an environment that > > doesn't support the MP Services Protocol? I've read something that > > suggests it might be easier with UEFI than with BIOS because the PI > > firmware does some pre-initialization of the APs even before handoff > > to the BSP - but I haven't found much documentation on this... > > > > Any help would be greatly appreciated. > > Thanks, > > Brett S. > _______________________________________________ > Fw_os_forum mailing list > Fw_os_forum at mailman.uefi.org > http://lists.mailman.uefi.org/mailman/listinfo/fw_os_forum > -------------- next part -------------- An HTML attachment was scrubbed... URL: From brettstahlman at gmail.com Mon Jul 18 10:16:26 2016 From: brettstahlman at gmail.com (Brett Stahlman) Date: Mon, 18 Jul 2016 09:16:26 -0500 Subject: [Fw_Os_Forum] Support for EFI MP Services In-Reply-To: References: Message-ID: Acan, Can you point me to the GUID for the Framework MP Service Protocol? So far, I've seen only this one: #define EFI_MP_SERVICES_PPI_GUID \ {0xee16160a, 0xe8be, 0x47a6,\ {0x82, 0xa, 0xc6, 0x90, 0xd, 0xb0, 0x25, 0xa } } Thanks, Brett S. On Sun, Jul 17, 2016 at 8:34 PM, Chen, Ming (Acan, DTD-SH) wrote: > Hi Brett, > > Just mention that there are two MP Service protocols: Framework MP Service Protocol, and (PI) MP Service Protocol. > Note sure if you have tried both when you BS->LocateProtocol()? > > > Thanks, > Acan > > -----Original Message----- > From: fw_os_forum-bounces at mailman.uefi.org [mailto:fw_os_forum-bounces at mailman.uefi.org] On Behalf Of Brett Stahlman > Sent: Saturday, July 16, 2016 3:27 AM > To: fw_os_forum at mailman.uefi.org > Subject: Re: [Fw_Os_Forum] Support for EFI MP Services > > Aaron, > So methods like GetNumberOfProcessors and StartupAllAPs (documented here http://www.uefi.org/sites/default/files/resources/Plugfest_Multiprocessing-with_UEFI-McDaniel.pdf) > are not meant to be called from a boot loader using Boot Services? > > I will have a look at the other references. Hopefully the firmware's AP initialization obviates the need for some of the tedious, low-level real mode trampoline code I've seen in the kernel and other loader code performing AP bring up... If UEFI simplifies only the BSP side of things, it doesn't seem a very complete solution... > > Thanks, > Brett S. > > On Fri, Jul 15, 2016 at 11:28 AM, wrote: >> Hi Brett, >> >>>>1. Is there a way to add support for MP Services to firmware that >>>>doesn't have it natively? Is there a list somewhere documenting >>>>which firmware supports? >> If you platform doesn't support the MP services protocol, chances are >> that your platform is not compliant with the Platform Initialization >> specification. Additionally, the PI specification defines protocols >> that are intended for use by the firmware, not by boot loaders or the >> OS. I would highly recommend that your boot loader only use protocols >> that are defined in the UEFI specification. > > >> >>>>2. What is the best way to bring up the APs in an environment that >>>>doesn't support the MP Services Protocol? I've read something that >>>>suggests it might be easier with UEFI than with BIOS because the PI >>>>firmware does some pre-initialization of the APs even before handoff >>>>to the BSP - but I haven't found much documentation on this... >> X86/X86_64 operating systems follow intel's multi processor >> specification for waking APs when they are given control. >> (http://download.intel.com/design/archives/processors/pro/docs/2420160 >> 6.pdf) All firmware (even legacy BIOSes) would initialize all >> processors in the system, and then would either halt the APs, or put >> the APs into a spin loop and only leave the BSP (boot strap processor) >> running when giving control to a bootloader. >> >> For more information, you can refer to >> http://wiki.osdev.org/Symmetric_Multiprocessing, or you can check out >> how the linux kernel performs multi processor bring up. >> >> -Aaron >> >> >> >> >> >> >> From: Brett Stahlman >> To: fw_os_forum at mailman.uefi.org >> Date: 07/15/2016 09:11 AM >> Subject: [Fw_Os_Forum] Support for EFI MP Services >> Sent by: fw_os_forum-bounces at mailman.uefi.org >> ________________________________ >> >> >> >> I'm working on an x86_64 UEFI boot loader that runs on the BSP in >> 64-bit long mode, and must bring up APs (secondary processors) after >> some preliminary initialization. I've seen some documentation on EFI >> MP (multi-processor) Service Protocol, but the headers in gnu-efi >> don't appear to support it, and BS->LocateProtocol() reports status 14 >> (EFI_NOT_FOUND). My questions are... >> >> 1. Is there a way to add support for MP Services to firmware that >> doesn't have it natively? Is there a list somewhere documenting which >> firmware supports? >> 2. What is the best way to bring up the APs in an environment that >> doesn't support the MP Services Protocol? I've read something that >> suggests it might be easier with UEFI than with BIOS because the PI >> firmware does some pre-initialization of the APs even before handoff >> to the BSP - but I haven't found much documentation on this... >> >> Any help would be greatly appreciated. >> Thanks, >> Brett S. > _______________________________________________ > Fw_os_forum mailing list > Fw_os_forum at mailman.uefi.org > http://lists.mailman.uefi.org/mailman/listinfo/fw_os_forum From ming.chen at hp.com Mon Jul 18 22:31:55 2016 From: ming.chen at hp.com (Chen, Ming (Acan, DTD-SH)) Date: Tue, 19 Jul 2016 02:31:55 +0000 Subject: [Fw_Os_Forum] Support for EFI MP Services In-Reply-To: References: Message-ID: Hi Brett, So the MP Service Protocol you have tried to locate is the (PI) MP Service Protocol, {0x3fdda605, 0xa76e, 0x4f46, {0xad, 0x29, 0x12, 0xf4, 0x53, 0x1b, 0x3d, 0x08}? From my understanding, the Framework MP Service Protocol should only exist in old systems. Below wiki have the GUID and interface definitions: http://wiki.phoenix.com/wiki/index.php/EFI_MP_SERVICES_PROTOCOL Thanks, Acan -----Original Message----- From: Brett Stahlman [mailto:brettstahlman at gmail.com] Sent: Monday, July 18, 2016 10:16 PM To: Chen, Ming (Acan, DTD-SH) Cc: fw_os_forum at mailman.uefi.org Subject: Re: [Fw_Os_Forum] Support for EFI MP Services Acan, Can you point me to the GUID for the Framework MP Service Protocol? So far, I've seen only this one: #define EFI_MP_SERVICES_PPI_GUID \ {0xee16160a, 0xe8be, 0x47a6,\ {0x82, 0xa, 0xc6, 0x90, 0xd, 0xb0, 0x25, 0xa } } Thanks, Brett S. On Sun, Jul 17, 2016 at 8:34 PM, Chen, Ming (Acan, DTD-SH) wrote: > Hi Brett, > > Just mention that there are two MP Service protocols: Framework MP Service Protocol, and (PI) MP Service Protocol. > Note sure if you have tried both when you BS->LocateProtocol()? > > > Thanks, > Acan > > -----Original Message----- > From: fw_os_forum-bounces at mailman.uefi.org > [mailto:fw_os_forum-bounces at mailman.uefi.org] On Behalf Of Brett > Stahlman > Sent: Saturday, July 16, 2016 3:27 AM > To: fw_os_forum at mailman.uefi.org > Subject: Re: [Fw_Os_Forum] Support for EFI MP Services > > Aaron, > So methods like GetNumberOfProcessors and StartupAllAPs (documented > here > http://www.uefi.org/sites/default/files/resources/Plugfest_Multiproces > sing-with_UEFI-McDaniel.pdf) are not meant to be called from a boot > loader using Boot Services? > > I will have a look at the other references. Hopefully the firmware's AP initialization obviates the need for some of the tedious, low-level real mode trampoline code I've seen in the kernel and other loader code performing AP bring up... If UEFI simplifies only the BSP side of things, it doesn't seem a very complete solution... > > Thanks, > Brett S. > > On Fri, Jul 15, 2016 at 11:28 AM, wrote: >> Hi Brett, >> >>>>1. Is there a way to add support for MP Services to firmware that >>>>doesn't have it natively? Is there a list somewhere documenting >>>>which firmware supports? >> If you platform doesn't support the MP services protocol, chances are >> that your platform is not compliant with the Platform Initialization >> specification. Additionally, the PI specification defines protocols >> that are intended for use by the firmware, not by boot loaders or the >> OS. I would highly recommend that your boot loader only use protocols >> that are defined in the UEFI specification. > > >> >>>>2. What is the best way to bring up the APs in an environment that >>>>doesn't support the MP Services Protocol? I've read something that >>>>suggests it might be easier with UEFI than with BIOS because the PI >>>>firmware does some pre-initialization of the APs even before >>>>handoff to the BSP - but I haven't found much documentation on this... >> X86/X86_64 operating systems follow intel's multi processor >> specification for waking APs when they are given control. >> (http://download.intel.com/design/archives/processors/pro/docs/242016 >> 0 >> 6.pdf) All firmware (even legacy BIOSes) would initialize all >> processors in the system, and then would either halt the APs, or put >> the APs into a spin loop and only leave the BSP (boot strap >> processor) running when giving control to a bootloader. >> >> For more information, you can refer to >> http://wiki.osdev.org/Symmetric_Multiprocessing, or you can check out >> how the linux kernel performs multi processor bring up. >> >> -Aaron >> >> >> >> >> >> >> From: Brett Stahlman >> To: fw_os_forum at mailman.uefi.org >> Date: 07/15/2016 09:11 AM >> Subject: [Fw_Os_Forum] Support for EFI MP Services >> Sent by: fw_os_forum-bounces at mailman.uefi.org >> ________________________________ >> >> >> >> I'm working on an x86_64 UEFI boot loader that runs on the BSP in >> 64-bit long mode, and must bring up APs (secondary processors) after >> some preliminary initialization. I've seen some documentation on EFI >> MP (multi-processor) Service Protocol, but the headers in gnu-efi >> don't appear to support it, and BS->LocateProtocol() reports status >> 14 (EFI_NOT_FOUND). My questions are... >> >> 1. Is there a way to add support for MP Services to firmware that >> doesn't have it natively? Is there a list somewhere documenting which >> firmware supports? >> 2. What is the best way to bring up the APs in an environment that >> doesn't support the MP Services Protocol? I've read something that >> suggests it might be easier with UEFI than with BIOS because the PI >> firmware does some pre-initialization of the APs even before handoff >> to the BSP - but I haven't found much documentation on this... >> >> Any help would be greatly appreciated. >> Thanks, >> Brett S. > _______________________________________________ > Fw_os_forum mailing list > Fw_os_forum at mailman.uefi.org > http://lists.mailman.uefi.org/mailman/listinfo/fw_os_forum