On Mon, 2014-10-27 at 17:29 +0800, Chen Fan wrote: 
> This series patchset try to implement Mp Service protocol in UefiCpuPkg,
> Jordan had implemented the startup APs code, and I try to add more
> initialization code to let all APs work up, this Mp Service protocol's
> implementation used EmulatorPkg/MpService for reference.
> this patches works on my github:
>   https://github.com/ChenFanFnst/edk2/tree/cpu-mp-service
> 
> and made StartCorePkg app for testing Mp Service Protocol on:
>   https://github.com/ChenFanFnst/edk2/tree/startcore
> 
> I had test Mp protocol, all passed.

I had added more test cases in StartCore App, and fixed some trivial
bugs, and updated my MP and StartCore github. please use the latest
code for test.

Thanks,
Chen


> 
> v5-v6:
>   1. using only one timer to check all APs status instead of timers for each 
> AP.
>   2. cancel timer each time avoid timer handler reentrancy.
>   2. some bug fix.
> 
> v4-v5:
>   1. introduce PcdCpuMaxLogicalProcessorNumber to pre-allocate
>      stack buffer before starting the APs.
>   2. implement the function that if procedure routine timeout,
>      reset AP by sending init ipi.
>   3. some bug fix.
> 
> v3-v4:
>   1. change the order of the patches.
>   2. update some minor format suggested by Jeff.
>   3. add a PCD value to configure StackSize.
>   4. the last patch add assembly code for MSFT, but didn't
>      test.
> 
> V3-V3.1:
>   1. use AcquireSpinLockOrFail() intead of AcquireSpinLock()
>      to avoid ASSERT sugguested by Jeff.
> 
> V2-V3:
>   1. rebase codes due to Jordan'tree updated:
>      https://github.com/jljusten/edk2/tree/ap-startup-example
>   2. add supported on Ia32 arch
>   3. add a new Lock to replace present SpinLock mechanisms in mutilple
>      processors, maybe the SpinLock mechanisms is not MP safe.
>   4. add function header
>   5. add StartupAllAPs() supported
>   6. add SwitchBSP() function, which is unsupported.
> 
> V1-V2:
>   1. do not call anything EFI API from APs.
>   2. add AP busy-wait for task assignment from BSP and get rid of
>      IPI sent mechanism.
> 
> 
> Chen Fan (22):
>   UefiCpuPkg/CpuDxe: introduce two PCD value
>   UefiCpuPkg/CpuDxe: Switch Ap Stack to NewStack
>   UefiCpuPkg/CpuDxe: introduce EFI_MP_SERVICES_PROTOCOL
>   UefiCpuPkg/CpuDxe: introduce MP_SYSTEM_DATA for Mp Service Protocol
>   UefiCpuPkg/CpuDxe: implement Mp Protocol: WhoAmI()
>   UefiCpuPkg/CpuDxe: implement Mp Protocol:GetNumberOfProcessors()
>   UefiCpuPkg/CpuDxe: implement Mp Services:GetProcessorInfo()
>   UefiCpuPkg/CpuDxe: implement Mp Protocol:EnableDisableAP()
>   UefiCpuPkg/CpuDxe: implement Mp Protocol:StartupThisAP()
>   UefiCpuPkg/CpuDxe: implement Mp Services:StartupAllAPs()
>   UefiCpuPkg/CpuDxe: implement Mp Services:SwitchBSP()
>   UefiCpuPkg/CpuDxe: Ap do loop routine to execute procedure
>   UefiCpuPkg/MpService: move settimer out to InitMpSystemData
>   UefiCpuPkg/MpService: Simply Lock usage
>   UefiCpuPkg/MpService: avoid next timer getting into
>     CheckAllAPsStatus()
>   UefiCpuPkg/CpuDxe: split out StartupCode from StartApsStackless()
>   UefiCpuPkg/CpuDxe: introduce ResetApStackless()
>   UefiCpuPkg/MpService: avoid reset AP still hold a lock
>   UefiCpuPkg/MpService: avoid dead lock caused by CheckAllAPsStatus
>   UefiCpuPkg/CpuDxe: Startup APs
>   UefiCpuPkg/CpuDxe: install Mp Service protocol
>   UefiCpuPkg/CpuDxe: add Mp Service TestCase (!upstream)
> 
> Jordan Justen (5):
>   UefiCpuPkg/CpuDxe: Add no-op InitializeMpSupport
>   UefiCpuPkg/CpuDxe: Add ApEntryPointInC
>   UefiCpuPkg/CpuDxe: Add stackless assembly AP entry points
>   UefiCpuPkg/CpuDxe: Move GDT structures into CpuGdt.h
>   UefiCpuPkg/CpuDxe: Add StartApsStackless routine
> 
>  UefiCpuPkg/CpuDxe/ApStartup.asm   |  111 +++
>  UefiCpuPkg/CpuDxe/ApStartup.c     |  252 +++++++
>  UefiCpuPkg/CpuDxe/CpuDxe.c        |    5 +
>  UefiCpuPkg/CpuDxe/CpuDxe.h        |    1 +
>  UefiCpuPkg/CpuDxe/CpuDxe.inf      |   18 +
>  UefiCpuPkg/CpuDxe/CpuGdt.c        |   52 +-
>  UefiCpuPkg/CpuDxe/CpuGdt.h        |   72 ++
>  UefiCpuPkg/CpuDxe/CpuMp.c         | 1504 
> +++++++++++++++++++++++++++++++++++++
>  UefiCpuPkg/CpuDxe/CpuMp.h         |  650 ++++++++++++++++
>  UefiCpuPkg/CpuDxe/CpuMpTest.c     |   97 +++
>  UefiCpuPkg/CpuDxe/Ia32/MpAsm.asm  |   75 ++
>  UefiCpuPkg/CpuDxe/Ia32/MpAsm.nasm |   68 ++
>  UefiCpuPkg/CpuDxe/X64/MpAsm.asm   |   76 ++
>  UefiCpuPkg/CpuDxe/X64/MpAsm.nasm  |   70 ++
>  UefiCpuPkg/UefiCpuPkg.dec         |    6 +
>  UefiCpuPkg/UefiCpuPkg.dsc         |    1 +
>  16 files changed, 3007 insertions(+), 51 deletions(-)
>  create mode 100644 UefiCpuPkg/CpuDxe/ApStartup.asm
>  create mode 100644 UefiCpuPkg/CpuDxe/ApStartup.c
>  create mode 100644 UefiCpuPkg/CpuDxe/CpuGdt.h
>  create mode 100644 UefiCpuPkg/CpuDxe/CpuMp.c
>  create mode 100644 UefiCpuPkg/CpuDxe/CpuMp.h
>  create mode 100644 UefiCpuPkg/CpuDxe/CpuMpTest.c
>  create mode 100644 UefiCpuPkg/CpuDxe/Ia32/MpAsm.asm
>  create mode 100644 UefiCpuPkg/CpuDxe/Ia32/MpAsm.nasm
>  create mode 100644 UefiCpuPkg/CpuDxe/X64/MpAsm.asm
>  create mode 100644 UefiCpuPkg/CpuDxe/X64/MpAsm.nasm
> 

------------------------------------------------------------------------------
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to