From nobody Thu Jan 2 22:34:45 2025 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+108562+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+108562+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1694579233; cv=none; d=zohomail.com; s=zohoarc; b=RJPvmlY3xhN+ULf2LOV9dZy6pp0vBVaRRbfyIFPrLGQClf3V6+KghiZOds/YwqbHk5ln4dYaxAXS4U96sCvUg1dLfsOgaBvZAGBV/zhLmEJk9tRZCBAuh58quaJ/YoEiVZGTQqLssY5mzMfaq7GG0l+i6i/TjX6fRP6CHF3vke4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1694579233; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:References:Sender:Subject:To; bh=l1cPBIolUfIJUcHfIECwcXjZCBubm/MQ1YnesPBjAio=; b=Duy+cCm9AtghDzcRoTSS+/TxNvqOB8tIPr+Wizd2QYVtnX7kzkWXrz5cUYjsI0EEiLCX+1tVPqmt9Xqc7mzh5hbgnszUOLAXU7Y3FPb/1HiJO4oCAIIEjc4AWVBBEk6iI56fDvIAKqjf6Zb0oGZwR9chyrBC7ADJHz12W4fINig= 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+108562+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 1694579233916880.7613973959319; Tue, 12 Sep 2023 21:27:13 -0700 (PDT) Return-Path: DKIM-Signature: a=rsa-sha256; bh=CZHmby+H25/lIjUXQYd/J6Z6hcc+0zY7DJp4A1Ig0ms=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: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=1694579233; v=1; b=YesUM3J9sugJoFSpSnubW0I2Wd/Hrmoyxi+dqSEbHogvR0n9XxD+/ZebG8zZxcH89BbBU6Q0 5W5aD080QlVVpQzipVnLfwxt5mjEP8eabJifRkaw16Rp2UW4eGG+vfKxT9cFkDG6hdtORRr9l07 X7PiKBP7gS4p6csgj0tQCs1w= X-Received: by 127.0.0.2 with SMTP id aoKCYY1788612xc8J1wx5m2N; Tue, 12 Sep 2023 21:27:13 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web11.4645.1694579216558329653 for ; Tue, 12 Sep 2023 21:27:13 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10831"; a="363595434" X-IronPort-AV: E=Sophos;i="6.02,142,1688454000"; d="scan'208";a="363595434" X-Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Sep 2023 21:27:12 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10831"; a="859093636" X-IronPort-AV: E=Sophos;i="6.02,142,1688454000"; d="scan'208";a="859093636" X-Received: from shwdeopenlab705.ccr.corp.intel.com ([10.239.55.100]) by fmsmga002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Sep 2023 21:27:10 -0700 From: "Yuanhao Xie" To: devel@edk2.groups.io Cc: Ray Ni , Yuanhao Xie , Eric Dong , Rahul Kumar , Gerd Hoffmann Subject: [edk2-devel] [PATCH 06/16] UefiCpuPkg/MtrrLib: Fix MtrrGetAllMtrrs to return correct MTRR setting. Date: Wed, 13 Sep 2023 12:26:29 +0800 Message-Id: <20230913042639.2066-7-yuanhao.xie@intel.com> In-Reply-To: <20230913042639.2066-1-yuanhao.xie@intel.com> References: <20230913042639.2066-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: DOyTrU4rjSa6cdN5poB9vwPsx1787277AA= Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1694579235946100011 Content-Type: text/plain; charset="utf-8" From: Ray Ni The patch fixes the following issues in the original implementation: 1. MtrrSetting contains random value if MTRR is not supported. 2. Unconditionally access fixed MTRR on CPU that may not support fixed MTRR. 3. The maximum number of Variable MTRR entries are initialized, while the portion exceeding the maximum number remains uninitialized. Signed-off-by: Ray Ni Signed-off-by: Yuanhao Xie Cc: Eric Dong Cc: Rahul Kumar Cc: Gerd Hoffmann --- UefiCpuPkg/Library/MtrrLib/MtrrLib.c | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/UefiCpuPkg/Library/MtrrLib/MtrrLib.c b/UefiCpuPkg/Library/Mtrr= Lib/MtrrLib.c index bd61ffc240..c9440f01ef 100644 --- a/UefiCpuPkg/Library/MtrrLib/MtrrLib.c +++ b/UefiCpuPkg/Library/MtrrLib/MtrrLib.c @@ -2824,29 +2824,43 @@ MtrrGetAllMtrrs ( OUT MTRR_SETTINGS *MtrrSetting ) { - if (!IsMtrrSupported ()) { + BOOLEAN FixedMtrrSupported; + UINT32 VariableMtrrCount; + MSR_IA32_MTRR_DEF_TYPE_REGISTER *MtrrDefType; + + ZeroMem (MtrrSetting, sizeof (*MtrrSetting)); + + MtrrDefType =3D (MSR_IA32_MTRR_DEF_TYPE_REGISTER *)&MtrrSetting->MtrrDef= Type; + if (!MtrrLibIsMtrrSupported (&FixedMtrrSupported, &VariableMtrrCount)) { return MtrrSetting; } =20 + // + // Get MTRR_DEF_TYPE value + // + MtrrDefType->Uint64 =3D AsmReadMsr64 (MSR_IA32_MTRR_DEF_TYPE); + + // + // Enabling the Fixed MTRR bit when unsupported is not allowed. + // + ASSERT (FixedMtrrSupported || (MtrrDefType->Bits.FE =3D=3D 0)); + // // Get fixed MTRRs // - MtrrGetFixedMtrrWorker (&MtrrSetting->Fixed); + if (MtrrDefType->Bits.FE =3D=3D 1) { + MtrrGetFixedMtrrWorker (&MtrrSetting->Fixed); + } =20 // // Get variable MTRRs // MtrrGetVariableMtrrWorker ( NULL, - GetVariableMtrrCountWorker (), + VariableMtrrCount, &MtrrSetting->Variables ); =20 - // - // Get MTRR_DEF_TYPE value - // - MtrrSetting->MtrrDefType =3D AsmReadMsr64 (MSR_IA32_MTRR_DEF_TYPE); - return MtrrSetting; } =20 --=20 2.36.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 (#108562): https://edk2.groups.io/g/devel/message/108562 Mute This Topic: https://groups.io/mt/101331024/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-