From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=helo; client-ip=104.47.42.58; helo=nam03-by2-obe.outbound.protection.outlook.com; envelope-from=leo.duran@amd.com; receiver=edk2-devel@lists.01.org Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0058.outbound.protection.outlook.com [104.47.42.58]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id E6A3F21A00AE6 for ; Tue, 11 Sep 2018 08:41:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=u4HUkC0JFyfADn6rt9T5EuC7xajGzg/UlnLr7oI84X0=; b=Asts/fhTHGr1QsrxE2zMtdMe+0pXfhM4YcBdRc+pBeS7ol9+hVk3eMpZ39b4hKnnHccBr9XMDHq2l/N45HRfbDWKllIT6AlGfW/SgkM0fmrUc3jZ09HHjZY1Bgk2NfcwiYuvybJjnghLb5fcshM3VLIViTepNlQYKVtm1FOZW/E= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=leo.duran@amd.com; Received: from leduran-Precision-WorkStation-T5400.amd.com (165.204.77.1) by DM5PR12MB1817.namprd12.prod.outlook.com (2603:10b6:3:113::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1122.17; Tue, 11 Sep 2018 15:41:54 +0000 From: Leo Duran To: edk2-devel@lists.01.org Cc: Leo Duran , Eric Dong , Laszlo Ersek Date: Tue, 11 Sep 2018 10:41:38 -0500 Message-Id: <1536680498-6554-2-git-send-email-leo.duran@amd.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1536680498-6554-1-git-send-email-leo.duran@amd.com> References: <1536680498-6554-1-git-send-email-leo.duran@amd.com> MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: CY4PR15CA0014.namprd15.prod.outlook.com (2603:10b6:910:14::24) To DM5PR12MB1817.namprd12.prod.outlook.com (2603:10b6:3:113::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: ff0e0fdd-de4f-41c1-80fa-08d617fd19ce X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:DM5PR12MB1817; X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1817; 3:+FIy8ou+PbAccdZ6tohb9gWLcQg3UJQaJoWh41nYJ2TEOwY9uYTLrVBOaV/eVfIKLm4XKHU7GkeZx73fqG39XQSwQhmU2GzsSPhGc0B76cnT4ghjMp71VSJui1d8nj3T8ZmjhzeQjK1kw8CKPzqq8u93PiWQPsYI2rQ+mR4K8bdsyUBCv19KNMkvHzmwTfb10fVCQnPGex15knuJ6L8P2BqkWkz419UKxCbCS1UQ1EW2o80AbGhNgoIDW4zXJ+Bm; 25:ch6uQSO6hkD2d1xGuKu4erVvj30Dg5ieOACekymF4eZNr7uoNjZlWQmFflMgLlE0lrkaiELeFFDkLirYF2eTECWTesVwvHluZVGPZgeTyRHpJFVpolEvnbbBzSsMsCM4p7jZB/T/786torCoGfUGhzFR8XZ5ku6NnnQ0pVw8SSXv/XG6SaajTQBouZ7fPVko8rgf3tvv/LhWR6Ql9WZEoPwNal2rsUuGV8ssqR9qYzwRh6/FtFqkSBoIuoz3gvEpuzk4zmVrSU6k0BGRNuejavkb66mLPQugC84hVLlAwhNkqgZx2K1wQasrJmNUFX2552TNk0IhKKUTpYf0yHr7aA==; 31:3iLfE/abnWBaWzAs1DfreT04BAATR2f+YBF9Wy317Bb+ji9jWdrqyQCVOMYjMu7ddqgs6zGMCtwu+cX6YuhmTKMMhz6D4ywHs/m4HxyKF3f7mTvo+Fbbr9/mx1+iCbVl2pYHIWmIlcva+6GcihyvYgnKIEEM4ziA2SZfA5FgfP3k8aeOQRg23OCZkdjj19UgslBhELFCjfq0SXEbtZBdseFbPOlPQ/jCdvK+Qb4259E= X-MS-TrafficTypeDiagnostic: DM5PR12MB1817: X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1817; 20:gLoQApBh3n58jnihzSLkXpUizL+HieijVy6LPjleENoaMunxgwC9SPYpLfrorsO6mntqUMc3nayaQpl8Fhyj6P40BBK/Misr61knSqodgCZK0i61k4qZEfDDLncHX/uQqx1SqldUziA2CyT5M4Cf8ykcis+WSoGAQjNO5UGgBZwNIovFoAgA7Lc6mVshJ841GGkhAVMpCM3yHYafrmu6FFEmiZK6Qtc2mri5Frqqg4Qqy9Pv0ThgBTXSDQfAokSLP+0eYKm5xrRWmG/eAz8f98n15mZPYTbeZKc3HElKj/syv7YFNbX6ZsCCsxk+6suYig/bJRyO99vOgD/+/Vd4pCKn+Tl5495kiCu65F5dfRq9eLDkFuPQLFTbT3/RCAblmsl4gPN7fKCXcQK4sr8AZxiN+ACF8E/8A06CbSqL9/1Ebs5HU5zyr7SxFtqWeg89KuVVE1IoWrotbv6Op9nNq3lUzy/8iK3bhvWWWNX7TcJO+Xt9pqJtP19Ft98TuHW6; 4:D8mCkYnU6cNHYUZEA4I9V3BOYoWC8iCLKRVSHgH7LYDy2lqzV4z/FtvMMePi2F3W4OSEB5rT78Uf2oFIqViPlnonRky9dc6lXyOWrA68Utlv+dFYTepls1MCTzpEq/Q4oXyY8GNKtAaob3IUA6pFPdjvSotfY8aXXSe3/wUcie+FkDP9/Ng/eIVcQP8n3yLS9Ar9MmsdtAXyfYhPUozVxoXY3cKZ4zkTYK7e4gGvmBRZ5kghkEeYrjT2I6FT0cQX/NxiMrIEqkHoY/lCBark23KA5D7Gotx8nkIMyANJW+YZSOHqMlev90JzMUQhb2opEmKIMJH0reZa7/7aRhr1ASn1S/VWJtW8elj9XENj78ljicVdffq+0aLio73r3sFa X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(767451399110)(163750095850)(228905959029699); X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(93006095)(93001095)(3231311)(944501410)(52105095)(3002001)(10201501046)(6055026)(149027)(150027)(6041310)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123558120)(201708071742011)(7699050); SRVR:DM5PR12MB1817; BCL:0; PCL:0; RULEID:; SRVR:DM5PR12MB1817; X-Forefront-PRVS: 0792DBEAD0 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(376002)(396003)(366004)(136003)(346002)(39860400002)(189003)(199004)(2351001)(316002)(486006)(106356001)(50226002)(16586007)(81166006)(81156014)(8936002)(105586002)(50466002)(44832011)(66066001)(3846002)(53416004)(6116002)(97736004)(47776003)(478600001)(2361001)(5660300001)(54906003)(6916009)(36756003)(6666003)(68736007)(86362001)(25786009)(52116002)(7696005)(446003)(51416003)(76176011)(11346002)(956004)(7736002)(575784001)(48376002)(476003)(2906002)(8676002)(386003)(53936002)(6486002)(16526019)(26005)(1857600001)(4326008)(305945005)(186003)(2616005); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR12MB1817; H:leduran-Precision-WorkStation-T5400.amd.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: amd.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR12MB1817; 23:X3ufb0Jw7M1shmERcAkVrL3sUW5ziaD8LbGToqKn/?= =?us-ascii?Q?0H9X4l6qcl/cGfWPuV64yxv2PBSAi7kFd+07tKRi4ADE1oFR6Op620gKd6Bi?= =?us-ascii?Q?WX/625tMm5DUhgK9qEvt5qw0I2hNMXxWb0LBauS1/oTfXFsSptzXd73CKl39?= =?us-ascii?Q?FO9omIdX7PQSYpfNGnL2IKzbqyJwCfLFEkeecZb1smSsNsZL+CRV2m0fQfJp?= =?us-ascii?Q?hkF5sn8g8TjkMO6ST0XmFvMTKYjY+QH5WbYFuhIBeUCjGTvsbfbU9gV0pIFI?= =?us-ascii?Q?y4X/5LYQOdCyHyK0HZASRwc+CjJ9CCNdA1DdVEAZA4gatZLztK2hEGSYej1D?= =?us-ascii?Q?eWkYeRbW2JZuU5QX/YW2MPZwioK/1MszCbq64weG1Dxg/oPiqye7YGZeyd3d?= =?us-ascii?Q?2mkCbfoe6rzJJ20VoVc4VRvx/PoBL+lSvFOsdUPYBsULXQmcwqaUO/6CUqpo?= =?us-ascii?Q?A4BFJPKHV8rYSD0W7W5lqZu44WjVhW4S4FanweiIVmatDaW3ufIpfiSOfEfS?= =?us-ascii?Q?ht023BeXFIsPq2WF/Q9ihQ50yN15GILu68+/zSvxQBSPHxvCWvZ8UIWpN0T/?= =?us-ascii?Q?y9u6l4rYDHFFPbpRxStZxIEDrA3dqn3YxQarwrg30zpz0kDhjx9cUtZCrwTr?= =?us-ascii?Q?6zxwjh/rJLD5CxJcNCGyzVcOrP7capUMMcs2DjS48hvM5ZfwNi5ouCEUEBkx?= =?us-ascii?Q?mK1MHj2wFKl4+8MF+R8NgOWSpI9ZpVS0nqY764Yb/FtuPSBkCaftE9wCgeqC?= =?us-ascii?Q?OtHMpJ30Na7qHfxkGmz5wdm4odGHCE7E29sD6g+YPONH4RelLnYXg7f/8lpQ?= =?us-ascii?Q?xOANUuER1ZBlw7knNtzI0iv3oOCmF0b2LM093hbLH/l9/dLrPjUNZP/tzWeb?= =?us-ascii?Q?tM8Zte7nUdmOe2x0E8IdFpfi1JQ2QJF32wVMUQ/zJy0pPhvnuml1JQ4WxaYq?= =?us-ascii?Q?ChWU8DnoHDGG2EQ6fz+u9dYzPeRh1+tcfjAZn73L9CBq4sWAotnzg11IxF22?= =?us-ascii?Q?VybYhjpmd22T42InfO/X6ZRlH3f9SO4SxizIu5ZMM1nNNa4qIbD82uLOr6Im?= =?us-ascii?Q?CWU72g8Ym5J9IIBo8gUh9JAlYF2YcbhE5WyXP7CIk5dMIyr6aZpuuu2Mgv48?= =?us-ascii?Q?REBxO9bgZ+BjJl+2x4dobXDjZtlbUz++QPWVWDLh4mcHtoz7jICUdjs3a6Wp?= =?us-ascii?Q?z0bNOaqxtfC2/KvZDMkAnXApqaB0R+45Le1tyu+bE+ZyXNIXvzml9J0cxq03?= =?us-ascii?Q?gX7MZGzPos8SUZUrfmPTnRx6Mp+pxNT2rgTNGhMVk2ZB9JHRvdXVhFW46xeZ?= =?us-ascii?B?dz09?= X-Microsoft-Antispam-Message-Info: rmsuM3FxU01gFkrTL04MDO3jT77YEiL5aAX/zeI8IiFGBSghKGrauwTcqQzHw/o4D4+UqR9d5N2BXqoxhxWgemFbDiDP3HC6NPTMZqxIZOoip/CQ/2RqU7252e5nIwzytfVpMDAXZlUBWICcIox2SCEyouZhQPx8RkrnW9PoEuGS/7CmwYALuZ0DwBTEQp8BHWHOOE8Jp2jseeOrluh0PYYF5e9W5F08bEdq0ZKpfsLgFAnbqf9GCNvVg56W+K+o7ZSozxkgUqFs0DRgvazegEHVcR4Gg9qmJbk1X1oUbDiaRn+pO/wKpJUgSe9OqJ/TqXI/gs81vXoDS2IO5NXyGvQpefpE83X73jYzwJQJcB0= X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1817; 6:KNAxscdjFfMj9UjAFfCsJ80WKnpN/OC2h5/9tbbkQr9BnbBpwk3JqqUQ/Xb4ahQ7veMLUV730WZUGQfj1i6cOuvTfSH1frXBUYNDx5s4yLX+FjoB5YVnNlPEnYv8DR0Sl9i4+IN9ZfO18qEsyrmmkKde3T+7dPXV9sezoTJWcgIZQNddSy6+8T6BwXUt8vrpvxuyUm66EPTvvmgBIkuYYfqGo3qKwYV1WujKV/GsyUYBMStN4INTjWGEdjbjKogaR8PdeXDfqhQch4XTBS4VVzNceGrn7MZwV++a3Yb8X3gmeMTvq/X7P8QVhfpgn2Q89WZphKrE8zoeOrjC3MFqv//DKV1Ci7dwMWoFCZpysRUD5g4Z1h7grYPLzC1Bo5a61L55HTkTUD7SN9+pAAuf0CfMZTtPT5RVT7e3I7yNYlOtHzzUvMRTy12zlxR/EaUvedT9sG8fc4NxQMdVIVCU2w==; 5:gQK34meFfcdZyZS2jjvEjcQE8MFTLbrSNeJAOi7o2in1gA4e8nM9cPzxVVUsPB/NbNhMTVFc3w7CH0c2f3oBvmwzYPM4cf/EOixGSCAt7VKdWtKwGIaCHyfb8ggkrUZMUnNKufxYQfeLGJVzXAzF8Q7DVXNiA7mqytbTX3fjRfk=; 7:74FJ7JG0DdijIifeEMngMh5+vY+zjHdeyC+SJLjDgkpyiuX3jCWWKhsgywgMFu+HNd2TQ2yri+cMg6HAfwOp/ZiRLftt6a0YQ1xiBUYUYo5K7TCdHtEzRfM7zISopIv/atvYY2KzGTXUmyxoRidwnnk2dF+qII7mNbUyalAc43DnQkIOiSophiDsCcWPTU6GzDU6irjcQEdLwKKixBEb3Gy4H6inJ+Ut7UySpTCUELAbyb3JJpVUL0yE3c0nIzig SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR12MB1817; 20:FhzMNwyk6/Lj3CGZFuAlWoGg5D4iTbTbs3e28pZ86siRT1WehCrm4vURlltGGkfChGW3D1OgTw8lrzqUkrhVm8AbBm9GRX5nl7sz6f/w8+qE5KgED0J2a+2BCalqMVIELnaPxxMn3fYRzanJyeMkhemg+GoztVCQS1M75cy6xPW1BeGu8fmaiFILLOh9dhaPEdbNkWl8y5jSIhJf4EryGAw6VcBDoLD6vWf+xGWglOG2bu5WN0708hiPhJysAWX1 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Sep 2018 15:41:54.3229 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ff0e0fdd-de4f-41c1-80fa-08d617fd19ce X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1817 Subject: [PATCH] UefiCpuPkg/MtrrLib: Add flag to skip disabling MTRRs prior to MTRR change. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Sep 2018 15:41:56 -0000 Content-Type: text/plain The default behavior is to disable MTRRs prior to an MTRR change. However, on SMT platforms with shared CPU resources it may be desirable to skip the default behavior, and leave the current state of the Enable bit. Cc: Eric Dong Cc: Laszlo Ersek Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Leo Duran --- UefiCpuPkg/Library/MtrrLib/MtrrLib.c | 10 +++++++--- UefiCpuPkg/Library/MtrrLib/MtrrLib.inf | 3 +++ UefiCpuPkg/UefiCpuPkg.dec | 7 +++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/UefiCpuPkg/Library/MtrrLib/MtrrLib.c b/UefiCpuPkg/Library/MtrrLib/MtrrLib.c index dfce9a9..baf9a0f 100644 --- a/UefiCpuPkg/Library/MtrrLib/MtrrLib.c +++ b/UefiCpuPkg/Library/MtrrLib/MtrrLib.c @@ -6,6 +6,8 @@ except for MtrrSetAllMtrrs() which is used to sync BSP's MTRR setting to APs. Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.
+ Copyright (c) 2018, AMD Inc. All rights reserved.
+ This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at @@ -310,9 +312,11 @@ MtrrLibPreMtrrChange ( // // Disable MTRRs // - DefType.Uint64 = AsmReadMsr64 (MSR_IA32_MTRR_DEF_TYPE); - DefType.Bits.E = 0; - AsmWriteMsr64 (MSR_IA32_MTRR_DEF_TYPE, DefType.Uint64); + if (!PcdGetBool (PcdSkipDisableMtrrsOnPreMtrrChange)) { + DefType.Uint64 = AsmReadMsr64 (MSR_IA32_MTRR_DEF_TYPE); + DefType.Bits.E = 0; + AsmWriteMsr64 (MSR_IA32_MTRR_DEF_TYPE, DefType.Uint64); + } } /** diff --git a/UefiCpuPkg/Library/MtrrLib/MtrrLib.inf b/UefiCpuPkg/Library/MtrrLib/MtrrLib.inf index a97cc61..06f33e8 100644 --- a/UefiCpuPkg/Library/MtrrLib/MtrrLib.inf +++ b/UefiCpuPkg/Library/MtrrLib/MtrrLib.inf @@ -2,6 +2,8 @@ # MTRR library provides APIs for MTRR operation. # # Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
+# Copyright (c) 2018, AMD Inc. All rights reserved.
+# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License # which accompanies this distribution. The full text of the license may be found at @@ -43,4 +45,5 @@ [Pcd] gUefiCpuPkgTokenSpaceGuid.PcdCpuNumberOfReservedVariableMtrrs ## SOMETIMES_CONSUMES + gUefiCpuPkgTokenSpaceGuid.PcdSkipDisableMtrrsOnPreMtrrChange ## CONSUMES diff --git a/UefiCpuPkg/UefiCpuPkg.dec b/UefiCpuPkg/UefiCpuPkg.dec index 69d777a..64ec763 100644 --- a/UefiCpuPkg/UefiCpuPkg.dec +++ b/UefiCpuPkg/UefiCpuPkg.dec @@ -2,6 +2,7 @@ # This Package provides UEFI compatible CPU modules and libraries. # # Copyright (c) 2007 - 2017, Intel Corporation. All rights reserved.
+# Copyright (c) 2018, AMD Inc. All rights reserved.
# # This program and the accompanying materials are licensed and made available under # the terms and conditions of the BSD License which accompanies this distribution. @@ -273,6 +274,12 @@ # @Prompt Current boot is a power-on reset. gUefiCpuPkgTokenSpaceGuid.PcdIsPowerOnReset|FALSE|BOOLEAN|0x0000001B + ## Indicates desired behavior for disabling MTRRs prior to MTRR change.

+ # TRUE - Skip disabling MTRRs prior to MTRR change.
+ # FALSE - Disable MTRRs prior to MTRR change.
+ # @Prompt Desired behavior for disabling MTRRs prior to MTRR change. + gUefiCpuPkgTokenSpaceGuid.PcdSkipDisableMtrrsOnPreMtrrChange|FALSE|BOOLEAN|0x0000001E + [PcdsDynamic, PcdsDynamicEx] ## Contains the pointer to a CPU S3 data buffer of structure ACPI_CPU_DATA. # @Prompt The pointer to a CPU S3 data buffer. -- 2.7.4