From nobody Wed May 15 15:54:22 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) client-ip=66.175.222.108; envelope-from=bounce+27952+111443+1787277+3901457@groups.io; helo=mail02.groups.io; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+111443+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1700451956; cv=none; d=zohomail.com; s=zohoarc; b=AGWbD9lpLNCz+b7WvE+oZdwUlOg4SjObRAk2HWMBaDEK+TQ3k3vP0Pc6j6rNtxVov1QDwjwQVyi4OIh8Z7MewBoes4k9EnMtEfY9cMx8bt+oPzfFeyftfzh5XLj5i2071eMmTB2AQP/slXETvQu3oKBcDGv++I4OzOAQ9Li+3BA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1700451956; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:Sender:Subject:Subject:To:To:Message-Id; bh=lMVOtq1h1ix4I+L7XFmj2saB2HzutRNYVbvP5DpquAA=; b=Y5vrU8RbxWIaHyw4gwUa4enfZkjMmqkXqM0Vo/Fy4KXyP9JHLrB5cZfGJR0F1iwLjUSlW+RU4bjm8X4aSIRA9JfHkQ9AgEeSS29WY9PJVcLvNM4vnNx/54g0AUN2luwjP/lWoSZYKbeoCIPZdGN5ADdgym2OAifu6i1IcQt0mvQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce+27952+111443+1787277+3901457@groups.io; dmarc=fail header.from= (p=none dis=none) Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by mx.zohomail.com with SMTPS id 1700451955944957.7451743473849; Sun, 19 Nov 2023 19:45:55 -0800 (PST) Return-Path: DKIM-Signature: a=rsa-sha256; bh=lq0d3AlYfy0pGSkVaVuZLGoC45FjRYKLDtfC3qS1MM8=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding; s=20140610; t=1700451955; v=1; b=siH1YVcj3z2tsND/yflc0kG7A24Jvbjg4m/cu+nltVZjN9jYmElNADg6sdAccNm5/p2PgpV1 dLPXGTD2TlctgbGlC8ynct0Md7zy/PGuEY8MNYbI55W1P+R/t70QGujKIeEmRy0YckIjfGKmkpF zJP/QRtQj+whbPbvSk/H/yko= X-Received: by 127.0.0.2 with SMTP id 7n4IYY1788612x2CBEwT1G13; Sun, 19 Nov 2023 19:45:55 -0800 X-Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) by mx.groups.io with SMTP id smtpd.web10.43559.1700451954140239620 for ; Sun, 19 Nov 2023 19:45:54 -0800 X-IronPort-AV: E=McAfee;i="6600,9927,10899"; a="10210653" X-IronPort-AV: E=Sophos;i="6.04,212,1695711600"; d="scan'208";a="10210653" X-Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Nov 2023 19:45:54 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10899"; a="742603353" X-IronPort-AV: E=Sophos;i="6.04,212,1695711600"; d="scan'208";a="742603353" X-Received: from shwdeopenlab813.ccr.corp.intel.com ([10.239.55.230]) by orsmga006.jf.intel.com with ESMTP; 19 Nov 2023 19:45:52 -0800 From: "Yuanhao Xie" To: devel@edk2.groups.io Cc: xieyuanh Subject: [edk2-devel] [PATCH] UefiCpuPkg/MpInitLib: Remove the duplicate loading of microcode in DXE. Date: Mon, 20 Nov 2023 11:45:51 +0800 Message-Id: <20231120034551.2018-1-yuanhao.xie@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Reply-To: devel@edk2.groups.io,yuanhao.xie@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: g4WHMGLWNmuj8gb7bkTomXH4x1787277AA= Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1700451957821100001 Content-Type: text/plain; charset="utf-8" The microcode loading during Mp initialization of the DXE stage can be removed regardless of bit mode. Cc: Ray Ni ray.ni@intel.com Cc: Eric Dong eric.dong@intel.com Cc: Rahul Kumar rahul1.kumar@intel.com Cc: Tom Lendacky thomas.lendacky@amd.com Cc: Laszlo Ersek lersek@redhat.com Signed-off-by: Yuanhao Xie yuanhao.xie@intel.com --- UefiCpuPkg/Library/MpInitLib/MpLib.c | 57 +++++++++++++++++++--------- 1 file changed, 40 insertions(+), 17 deletions(-) diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c b/UefiCpuPkg/Library/MpIn= itLib/MpLib.c index 9a6ec5db5c..1c68c803d9 100644 --- a/UefiCpuPkg/Library/MpInitLib/MpLib.c +++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c @@ -433,6 +433,26 @@ ApFuncEnableX2Apic ( SetApicMode (LOCAL_APIC_MODE_X2APIC); } =20 +/** + Sync BSP's MTRR table to AP during waking upAp + @param[in, out] Buffer Pointer to private data buffer. +**/ +VOID +EFIAPI +ApMtrrSync ( + IN OUT VOID *Buffer + ) +{ + CPU_MP_DATA *CpuMpData; + + CpuMpData =3D (CPU_MP_DATA *)Buffer; + + // + // Sync BSP's MTRR table to AP + // + MtrrSetAllMtrrs (&CpuMpData->MtrrTable); +} + /** Do sync on APs. =20 @@ -2162,6 +2182,23 @@ MpInitLibInitialize ( // CollectProcessorCount (CpuMpData); } + + if (!GetMicrocodePatchInfoFromHob ( + &CpuMpData->MicrocodePatchAddress, + &CpuMpData->MicrocodePatchRegionSize + )) + { + // + // The microcode patch information cache HOB does not exist, which m= eans + // the microcode patches data has not been loaded into memory yet + // + ShadowMicrocodeUpdatePatch (CpuMpData); + } + + // + // Detect and apply Microcode on BSP + // + MicrocodeDetect (CpuMpData, CpuMpData->BspNumber); } else { // // APs have been wakeup before, just get the CPU Information @@ -2224,22 +2261,6 @@ MpInitLibInitialize ( } } =20 - if (!GetMicrocodePatchInfoFromHob ( - &CpuMpData->MicrocodePatchAddress, - &CpuMpData->MicrocodePatchRegionSize - )) - { - // - // The microcode patch information cache HOB does not exist, which mea= ns - // the microcode patches data has not been loaded into memory yet - // - ShadowMicrocodeUpdatePatch (CpuMpData); - } - - // - // Detect and apply Microcode on BSP - // - MicrocodeDetect (CpuMpData, CpuMpData->BspNumber); // // Store BSP's MTRR setting // @@ -2256,9 +2277,11 @@ MpInitLibInitialize ( // in DXE. // CpuMpData->InitFlag =3D ApInitReconfig; + WakeUpAP (CpuMpData, TRUE, 0, ApMtrrSync, CpuMpData, TRUE); + } else { + WakeUpAP (CpuMpData, TRUE, 0, ApInitializeSync, CpuMpData, TRUE); } =20 - WakeUpAP (CpuMpData, TRUE, 0, ApInitializeSync, CpuMpData, TRUE); // // Wait for all APs finished initialization // --=20 2.39.1.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#111443): https://edk2.groups.io/g/devel/message/111443 Mute This Topic: https://groups.io/mt/102701619/1787277 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-