On Mar 6, 2014, at 4:40 PM, Jordan Justen <jljus...@gmail.com> wrote:

> On Wed, Mar 5, 2014 at 2:21 PM, Rafael Machado
> <rafaelrodrigues.mach...@gmail.com> wrote:
>> Hi Everyone
>> 
>> I'm currently doing my MSc in Computer Science and my idea is to do this
>> task as my final work:
>> 
>> http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Tasks/UefiCpuPkg/CpuDxe_MP_support
>> 
>> I still have some time (two years) to finish the course, but I'l already
>> talking with a teacher to help me. During our last meeting, the teacher
>> asked me:
>> 
>> "What are the goals of doing this ?"
>> 
>> On my point of view, one of the goals is to be able to use all processors
>> during the boot process, so the main processor can delegate taks to the
>> other processors.
>> 
>> Is this really the idea of this task ?
> 
> Roughly speak, I think the answer is yes. This task is to implement
> the MpServices protocol.
> https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2/MdePkg/Include/Protocol/MpService.h
> 
> This protocol is an interface that allows UEFI code to run code on the
> other processors in a system.
> 
> So, yes, code on the main processor will use it to run code on the
> other processors.
> 
>> As is described on the details of this taks, the Intel material has all
>> information needed to do this and I'm already reding it, but Is there any
>> other kind of material that I can read to understand better the boot of
>> multiprocessor ? I already have some books, but maybe some other source of
>> information can help even more.
> 
> I think the best reference in the Intel® 64 and IA-32 Architectures
> Software Developer's Manual Volume 3A: System Programming Guide, Part
> 1, which is linked on that wiki page.
> 
> But, I also think there are some helpful resources available to use
> while working on the task. I updated the wiki page to add a link to
> the initial code that I have for this task. I also added a link to the
> StartCore tianocore project, which provides a consumer of the
> MpServices protocol.
> 
> I also added to the wiki page that our #edk2 IRC is another place
> where you might be able to discuss the project.
> 

The EmulatorPkg (Linux/Mach OS X) current supports AP emulation via pthreads.

https://svn.code.sf.net/p/edk2/code/trunk/edk2/EmulatorPkg/CpuRuntimeDxe/MpService.c

You also have to watch out if PI firmware has already initialized the APs. The 
don’t have to be in the OS ready defined state until some later point in the 
boot. They could be in a sate defined by a Tiano/PI CPU driver. 

To initialize a real CPU from reset there is a lot of non IA Architecture init 
magic that has to be performed, so I assume that is not the goal of this 
project. 

Thanks,

Andrew Fish

> -Jordan
> 
> ------------------------------------------------------------------------------
> Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
> With Perforce, you get hassle-free workflows. Merge that actually works. 
> Faster operations. Version large binaries.  Built-in WAN optimization and the
> freedom to use Git, Perforce or both. Make the move to Perforce.
> http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works. 
Faster operations. Version large binaries.  Built-in WAN optimization and the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to