From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by ml01.01.org (Postfix) with ESMTP id ACC4B1A1E13 for ; Tue, 2 Aug 2016 11:56:15 -0700 (PDT) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga101.fm.intel.com with ESMTP; 02 Aug 2016 11:56:14 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,461,1464678000"; d="scan'208";a="1033832224" Received: from orsmsx106.amr.corp.intel.com ([10.22.225.133]) by fmsmga002.fm.intel.com with ESMTP; 02 Aug 2016 11:56:01 -0700 Received: from orsmsx154.amr.corp.intel.com (10.22.226.12) by ORSMSX106.amr.corp.intel.com (10.22.225.133) with Microsoft SMTP Server (TLS) id 14.3.248.2; Tue, 2 Aug 2016 11:56:00 -0700 Received: from orsmsx113.amr.corp.intel.com ([169.254.9.118]) by ORSMSX154.amr.corp.intel.com ([169.254.11.220]) with mapi id 14.03.0248.002; Tue, 2 Aug 2016 11:56:00 -0700 From: "Kinney, Michael D" To: "Fan, Jeff" , "edk2-devel@lists.01.org" , "Kinney, Michael D" Thread-Topic: [edk2] [Patch v5 00/48] MP Initialize Library Thread-Index: AQHR7Jxy+z29/jecZkuewnOv0PtgA6A16ljQ Date: Tue, 2 Aug 2016 18:55:59 +0000 Message-ID: References: <1470128388-17960-1-git-send-email-jeff.fan@intel.com> In-Reply-To: <1470128388-17960-1-git-send-email-jeff.fan@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_IC x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMWU2YTI1NWUtZjZkNi00NjY2LThkNTYtYjU4ODA2OTEyNWNmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IjBkS2xSblV6eFhcL1hMZ0dkRGxSdktsb29waWplcWo5bHlOSVB5QnlPK2ZRPSJ9 x-originating-ip: [10.22.254.140] MIME-Version: 1.0 Subject: Re: [Patch v5 00/48] MP Initialize Library X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Aug 2016 18:56:15 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Jeff, All the updates look good to me. There are 2 copyright date updates=20 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 Best regards, Mike > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Je= ff Fan > Sent: Tuesday, August 2, 2016 1:59 AM > To: edk2-devel@lists.01.org > Subject: [edk2] [Patch v5 00/48] MP Initialize Library >=20 > We add MP Initialize Library defined in UefiCpuPkg/Include/Library/MpInit= Lib.h. > It will provide basic functionalities of MP services and could be consume= d 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. >=20 > PeiMpInitLib and DxeMpInitLib are added to make the CpuMpPei and CpuDxe m= ore > simply. >=20 > I also updated the Ovmf Platform and Quark platform to consume MP Initial= ize > library. >=20 > Thanks Laszlo to verify on OVMF and Mike to verify on Quark. >=20 > 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) >=20 > 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 on Patches #1, #2. > (Please see the patches commit log for more details) >=20 > 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 CheckAndUpdateApsSta= tus(). > 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 t= o > patch #39. > 5. Update Patch #1, #3 - #8, #16 to > a. Add Reviewed-by: Giri P Mudusuru >=20 > I fork the whole tree with the updated v3 patches > at https://github.com/vanjeff/edk2/tree/MpInitLibV5 for review. >=20 >=20 > 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 >=20 > 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 =3D> Library/MpInitLib}/Ia32/MpEqu.inc | 4 +- > .../MpInitLib}/Ia32/MpFuncs.nasm | 66 +- > .../{CpuMpPei =3D> 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 =3D> 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 =3D> Library/MpInitLib/DxeMpInitL= ib.inf} (52%) > copy UefiCpuPkg/{CpuDxe/CpuDxeExtra.uni =3D> Library/MpInitLib/DxeMpInit= Lib.uni} (53%) > create mode 100644 UefiCpuPkg/Library/MpInitLib/DxeMpLib.c > rename UefiCpuPkg/{CpuMpPei =3D> Library/MpInitLib}/Ia32/MpEqu.inc (88%) > rename UefiCpuPkg/{CpuMpPei =3D> Library/MpInitLib}/Ia32/MpFuncs.nasm (7= 7%) > rename UefiCpuPkg/{CpuMpPei =3D> 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 =3D> Library/MpInitLib/PeiMpInitL= ib.inf} (58%) > copy UefiCpuPkg/{CpuDxe/CpuDxeExtra.uni =3D> Library/MpInitLib/PeiMpInit= Lib.uni} (53%) > create mode 100644 UefiCpuPkg/Library/MpInitLib/PeiMpLib.c > rename UefiCpuPkg/{CpuMpPei =3D> Library/MpInitLib}/X64/MpEqu.inc (88%) > rename UefiCpuPkg/{CpuMpPei =3D> Library/MpInitLib}/X64/MpFuncs.nasm (73= %) >=20 > -- > 2.7.4.windows.1 >=20 > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel