CC: Jordan Justen <[email protected]> On Wed, 2014-10-15 at 18:11 +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 > > v4-v5: > 1. introduce PcdCpuMaxLogicalProcessorNumber to pre-allocate > stack buffer before starting the APs. > 2. reset AP by sending init ipi when StartupThisAP()/StartupAllAPs() > timeout. but when BSP called CheckEvent/WaitForEvent, there will > be caused BSP blocked. I made it in the last test patch, but I > can't find it out. > 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 (17): > 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/CpuDxe: split out StartupCode from StartApsStackless() > UefiCpuPkg/CpuDxe: introduce ResetApStackless() > 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 | 1446 > +++++++++++++++++++++++++++++++++++++ > UefiCpuPkg/CpuDxe/CpuMp.h | 649 +++++++++++++++++ > 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, 2948 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 >
------------------------------------------------------------------------------ Comprehensive Server Monitoring with Site24x7. Monitor 10 servers for $9/Month. Get alerted through email, SMS, voice calls or mobile push notifications. Take corrective actions from your mobile device. http://p.sf.net/sfu/Zoho _______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
