Jeff, All the updates look good to me. There are 2 copyright date updates missing in the SourceLevelDebugPkg that I replied to separately.
I have tested this on Galileo Gen 2 with SOURCE_DEBUG_ENABLE on and off and also tested OS boot and ACPI S3. Series Reviewed-By: Michael Kinney <michael.d.kin...@intel.com> Best regards, Mike > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Jeff > Fan > Sent: Tuesday, August 2, 2016 1:59 AM > To: edk2-devel@lists.01.org > Subject: [edk2] [Patch v5 00/48] MP Initialize Library > > We add MP Initialize Library defined in > UefiCpuPkg/Include/Library/MpInitLib.h. > It will provide basic functionalities of MP services and could be consumed by > CPU MP PEI and CPU MP DXE to produce CPU MP PPI and CPU MP Protocol. Then most > of code could be shared between PEI and DXE modules. > > PeiMpInitLib and DxeMpInitLib are added to make the CpuMpPei and CpuDxe more > simply. > > I also updated the Ovmf Platform and Quark platform to consume MP Initialize > library. > > Thanks Laszlo to verify on OVMF and Mike to verify on Quark. > > v5: > 1. Update Patches #1, #5, #10 - #12, #14, #16 - #18, #20, #21, #28, #29, > #37, > #43. > 2. Add Patches #44, #48 > (Please see the patches commit log for more details) > > v4: > 1. Update Patches #2 - #6, #10, #15, #28, #30, #31, #33, #34, #38, #41, #43. > 2. Add Patches #7, #8, #42, #44 - #46. > 3. Add Reviewed-by: Laszlo Ersek <ler...@redhat.com> on Patches #1, #2. > (Please see the patches commit log for more details) > > v3: > 1. Update Patch #2, #4 - #8, #28, #33, #36, #38 per Giri's comments to > a. Update SDM date to June, 2016 > b. Mention BCD format in CPU_MICROCODE_DATE > c. Rename ProcessorChecksum to Checksum to match SDM. > d. Add whitespace after MpInitLibInitialize > e. Rename MpInitLibSwitchBsp to MpInitLibSwitchBSP to match PI spec. > f. Rename NumApsExecutingLoction to NumApsExecutingLocation > g. Add whitespace after ; in .nasm file > h. Rename *RellocateAp* to *RelocateAp* > 2. Update Patch #16, #17, #29-#32 to > a. Use CamelCase for mStopCheckAllApsStatus and > CheckAndUpdateApsStatus(). > 3. Update Patch #36 and #39 to > a. Add PeiMpInitLib instance in UefiCpuPkg.dsc > b. Add DxeMpInitLib instance in UefiCpuPkg.dsc > 4. Update Patch #39 and #40 to > a. move the code of consuming MP Initialize library from patch #40 to > patch #39. > 5. Update Patch #1, #3 - #8, #16 to > a. Add Reviewed-by: Giri P Mudusuru <giri.p.mudus...@intel.com> > > I fork the whole tree with the updated v3 patches > at https://github.com/vanjeff/edk2/tree/MpInitLibV5 for review. > > > Jeff Fan (48): > UefiCpuPkg/LocalApic.h: Remove duplicated/conflicted definitions > UefiCpuPkg/MpInitLib: Add microcode definitions defined in IA32 SDM > UefiCpuPkg/CpuS3DataDxe: Move StartupVector allocation to EndOfDxe() > UefiCpuPkg/MpInitLib: Add MP Initialize library class definition > UefiCpuPkg/MpInitLib: Add two instances PeiMpInitLib and DxeMpInitLib > UefiCpuPkg/MpInitLib: Add AP assembly code and MP_CPU_EXCHANGE_INFO > UefiCpuPkg/MpInitLib: Fix typo and clean up the code > UefiCpuPkg/MpInitLib: Add EnableExecuteDisable in MP_CPU_EXCHANGE_INFO > UefiCpuPkg/MpInitLib: Add AsmRelocateApLoop() assembly code > UefiCpuPkg/MpInitLib: Add MP_ASSEMBLY_ADDRESS_MAP > UefiCpuPkg/MpInitLib: Get ApLoopMode and MointorFilter size > UefiCpuPkg/MpInitLib: Allocate and initialize memory of MP Data buffer > UefiCpuPkg/MpInitLib: Initialize CPU_AP_DATA for CPU APs > UefiCpuPkg/MpInitLib: Add CPU_VOLATILE_REGISTERS & worker functions > UefiCpuPkg/MpInitLib: Add MicrocodeDetect() and load microcode on BSP > UefiCpuPkg/MpInitLib: Save CPU MP Data pointer > UefiCpuPkg/MpInitLib: Register one End of PEI callback function > UefiCpuPkg/MpInitLib: Register one period event to check APs status > UefiCpuPkg/MpInitLib: Allocate AP reset vector buffer under 1MB > UefiCpuPkg/MpInitLib: Add ApWakeupFunction() executed by assembly code > UefiCpuPkg/MpInitLib: Fill MP_CPU_EXCHANGE_INFO fields > UefiCpuPkg/MpInitLib: Add WakeUpAP() > UefiCpuPkg/MpInitLib: Send INIT-SIPI-SIPI to get processor count > UefiCpuPkg/MpInitLib: Enable x2APIC mode on BSP/APs > UefiCpuPkg/MpInitLib: Sort processor by ascending order of APIC ID > UefiCpuPkg/MpInitLib: Skip collect processor count if GUIDed HOB exist > UefiCpuPkg/MpInitLib: Implementation of > MpInitLibGetNumberOfProcessors() > UefiCpuPkg/MpInitLib: Implementation of MpInitLibGetProcessorInfo() > UefiCpuPkg/MpInitLib: Implementation of MpInitLibWhoAmI() > UefiCpuPkg/MpInitLib: Implementation of MpInitLibSwitchBSP() > UefiCpuPkg/MpInitLib: Implementation of MpInitLibEnableDisableAP() > UefiCpuPkg/MpInitLib: Check APs Status and update APs status > UefiCpuPkg/MpInitLib: Implementation of MpInitLibStartupThisAP() > UefiCpuPkg/MpInitLib: Implementation of MpInitLibStartupAllAPs() > UefiCpuPkg/MpInitLib: Place APs in safe loop before hand-off to OS > OvmfPkg: Add MpInitLib reference in DSC files. > QuarkPlatformPkg: Add MpInitLib reference in DSC files. > UefiCpuPkg/CpuMpPei: Consume MpInitLib to produce CPU MP PPI services > UefiCpuPkg/CpuMpPei: Remove unused files and codes > UefiCpuPkg/CpuMpPei: Delete PeiMpServices.c and PeiMpServices.h > UefiCpuPkg/CpuDxe: Consume MpInitLib to produce CPU MP Protocol > services > UefiCpuPkg/CpuDxe: Move SetMtrrsFromBuffer() location. > UefiCpuPkg/CpuDxe: Remove unused codes and files > UefiCpuPkg/CpuDxe: Remove PcdCpuMaxLogicalProcessorNumber consuming > MdePkg/MpService.h: Fixed typo in function header to match PI spec > MdePkg/MpService.h: Trim whitespace at end of line > UefiCpuPkg/CpuDxe: Fixed typo in function header to match PI spec > UefiCpuPkg/PiSmmCpuDxeSmm: Add gEfiVariableArchProtocolGuid dependency > > MdePkg/Include/Protocol/MpService.h | 490 ++--- > OvmfPkg/OvmfPkgIa32.dsc | 2 + > OvmfPkg/OvmfPkgIa32X64.dsc | 2 + > OvmfPkg/OvmfPkgX64.dsc | 2 + > QuarkPlatformPkg/Quark.dsc | 2 + > QuarkPlatformPkg/QuarkMin.dsc | 4 +- > .../DebugAgent/DebugAgentCommon/DebugAgent.h | 1 + > .../Library/DebugAgent/DebugAgentCommon/DebugMp.c | 5 +- > UefiCpuPkg/CpuDxe/ApStartup.c | 478 ----- > UefiCpuPkg/CpuDxe/CpuDxe.c | 17 +- > UefiCpuPkg/CpuDxe/CpuDxe.h | 13 +- > UefiCpuPkg/CpuDxe/CpuDxe.inf | 17 +- > UefiCpuPkg/CpuDxe/CpuDxe.uni | 10 +- > UefiCpuPkg/CpuDxe/CpuDxeExtra.uni | 4 +- > UefiCpuPkg/CpuDxe/CpuMp.c | 1306 +------------ > UefiCpuPkg/CpuDxe/CpuMp.h | 186 +- > UefiCpuPkg/CpuDxe/Ia32/MpAsm.asm | 76 - > UefiCpuPkg/CpuDxe/Ia32/MpAsm.nasm | 68 - > UefiCpuPkg/CpuDxe/X64/MpAsm.asm | 76 - > UefiCpuPkg/CpuDxe/X64/MpAsm.nasm | 70 - > UefiCpuPkg/CpuMpPei/CpuBist.c | 53 +- > UefiCpuPkg/CpuMpPei/CpuMpPei.c | 1118 ++++------- > UefiCpuPkg/CpuMpPei/CpuMpPei.h | 515 ++--- > UefiCpuPkg/CpuMpPei/CpuMpPei.inf | 32 +- > UefiCpuPkg/CpuMpPei/Ia32/MpFuncs.asm | 250 --- > UefiCpuPkg/CpuMpPei/Microcode.h | 58 - > UefiCpuPkg/CpuMpPei/PeiMpServices.c | 956 ---------- > UefiCpuPkg/CpuMpPei/PeiMpServices.h | 377 ---- > UefiCpuPkg/CpuMpPei/X64/MpFuncs.asm | 290 --- > UefiCpuPkg/CpuS3DataDxe/CpuS3Data.c | 42 +- > UefiCpuPkg/CpuS3DataDxe/CpuS3DataDxe.inf | 2 +- > UefiCpuPkg/Include/Library/MpInitLib.h | 353 ++++ > UefiCpuPkg/Include/Register/LocalApic.h | 20 +- > UefiCpuPkg/Include/Register/Microcode.h | 200 ++ > UefiCpuPkg/Library/BaseXApicLib/BaseXApicLib.c | 29 +- > .../BaseXApicX2ApicLib/BaseXApicX2ApicLib.c | 51 +- > .../MpInitLib/DxeMpInitLib.inf} | 68 +- > .../MpInitLib/DxeMpInitLib.uni} | 12 +- > UefiCpuPkg/Library/MpInitLib/DxeMpLib.c | 649 +++++++ > .../{CpuMpPei => Library/MpInitLib}/Ia32/MpEqu.inc | 4 +- > .../MpInitLib}/Ia32/MpFuncs.nasm | 66 +- > .../{CpuMpPei => Library/MpInitLib}/Microcode.c | 77 +- > UefiCpuPkg/Library/MpInitLib/MpLib.c | 2013 > ++++++++++++++++++++ > UefiCpuPkg/Library/MpInitLib/MpLib.h | 554 ++++++ > .../MpInitLib/PeiMpInitLib.inf} | 60 +- > .../MpInitLib/PeiMpInitLib.uni} | 12 +- > UefiCpuPkg/Library/MpInitLib/PeiMpLib.c | 643 +++++++ > .../{CpuMpPei => Library/MpInitLib}/X64/MpEqu.inc | 6 +- > .../MpInitLib}/X64/MpFuncs.nasm | 84 +- > UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf | 4 +- > UefiCpuPkg/UefiCpuPkg.dec | 4 + > UefiCpuPkg/UefiCpuPkg.dsc | 4 + > 52 files changed, 5777 insertions(+), 5658 deletions(-) > delete mode 100644 UefiCpuPkg/CpuDxe/ApStartup.c > delete mode 100644 UefiCpuPkg/CpuDxe/Ia32/MpAsm.asm > delete mode 100644 UefiCpuPkg/CpuDxe/Ia32/MpAsm.nasm > delete mode 100644 UefiCpuPkg/CpuDxe/X64/MpAsm.asm > delete mode 100644 UefiCpuPkg/CpuDxe/X64/MpAsm.nasm > delete mode 100644 UefiCpuPkg/CpuMpPei/Ia32/MpFuncs.asm > delete mode 100644 UefiCpuPkg/CpuMpPei/Microcode.h > delete mode 100644 UefiCpuPkg/CpuMpPei/PeiMpServices.c > delete mode 100644 UefiCpuPkg/CpuMpPei/PeiMpServices.h > delete mode 100644 UefiCpuPkg/CpuMpPei/X64/MpFuncs.asm > create mode 100644 UefiCpuPkg/Include/Library/MpInitLib.h > create mode 100644 UefiCpuPkg/Include/Register/Microcode.h > copy UefiCpuPkg/{CpuMpPei/CpuMpPei.inf => > Library/MpInitLib/DxeMpInitLib.inf} (52%) > copy UefiCpuPkg/{CpuDxe/CpuDxeExtra.uni => > Library/MpInitLib/DxeMpInitLib.uni} (53%) > create mode 100644 UefiCpuPkg/Library/MpInitLib/DxeMpLib.c > rename UefiCpuPkg/{CpuMpPei => Library/MpInitLib}/Ia32/MpEqu.inc (88%) > rename UefiCpuPkg/{CpuMpPei => Library/MpInitLib}/Ia32/MpFuncs.nasm (77%) > rename UefiCpuPkg/{CpuMpPei => Library/MpInitLib}/Microcode.c (68%) > create mode 100644 UefiCpuPkg/Library/MpInitLib/MpLib.c > create mode 100644 UefiCpuPkg/Library/MpInitLib/MpLib.h > copy UefiCpuPkg/{CpuMpPei/CpuMpPei.inf => > Library/MpInitLib/PeiMpInitLib.inf} (58%) > copy UefiCpuPkg/{CpuDxe/CpuDxeExtra.uni => > Library/MpInitLib/PeiMpInitLib.uni} (53%) > create mode 100644 UefiCpuPkg/Library/MpInitLib/PeiMpLib.c > rename UefiCpuPkg/{CpuMpPei => Library/MpInitLib}/X64/MpEqu.inc (88%) > rename UefiCpuPkg/{CpuMpPei => Library/MpInitLib}/X64/MpFuncs.nasm (73%) > > -- > 2.7.4.windows.1 > > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel