[Fw_Os_Forum] Support for EFI MP Services
Aaron.Pop at congatec.com
Aaron.Pop at congatec.com
Fri Jul 15 12:28:18 EDT 2016
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/24201606.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 <brettstahlman at gmail.com>
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: <http://lists.mailman.uefi.org/pipermail/fw_os_forum/attachments/20160715/bf1cff8a/attachment.html>
More information about the Fw_os_forum
mailing list