From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail02.groups.io (mail02.groups.io [66.175.222.108]) by spool.mail.gandi.net (Postfix) with ESMTPS id 7F391941CFF for ; Fri, 3 Nov 2023 20:39:24 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=/h3dbbjSpWY1nHfuLdvCISatxhME7NyVXUgtvCUZu2U=; c=relaxed/simple; d=groups.io; h=ARC-Seal:ARC-Message-Signature:ARC-Authentication-Results:From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type:Content-Transfer-Encoding; s=20140610; t=1699043963; v=1; b=KI+p4wzH4rJOkQticzgk8YGO2UHgvhOKZb4bWWT/TskUF7RsbKHZyqw2VZSWCCFW6EfE4Va9 LvkYM0dLbezA7eO1lwNeYDpJg2eGR91rRyumFy+50PjxvSwA/zbVxZKfEGZDZS1sfrxt4kCuxVn CaDxnfWROVUVjpjgMsCv5+nk= X-Received: by 127.0.0.2 with SMTP id 9eoHYY7687511xgauAeWbp3e; Fri, 03 Nov 2023 13:39:23 -0700 X-Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web10.64951.1699043961320006849 for ; Fri, 03 Nov 2023 13:39:22 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10883"; a="374052366" X-IronPort-AV: E=Sophos;i="6.03,275,1694761200"; d="scan'208";a="374052366" X-Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Nov 2023 13:39:20 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10883"; a="738190907" X-IronPort-AV: E=Sophos;i="6.03,275,1694761200"; d="scan'208";a="738190907" X-Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga006.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 03 Nov 2023 13:39:20 -0700 X-Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Fri, 3 Nov 2023 13:39:19 -0700 X-Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Fri, 3 Nov 2023 13:39:19 -0700 X-Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Fri, 3 Nov 2023 13:39:19 -0700 X-Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.169) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Fri, 3 Nov 2023 13:39:18 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lHQlYYwBivGa5GkZwMwaVWnavN7E99lEdcPfpK77jZTpGUO3DxLJ11jNPv9l56yAdAeSmUEJmdc1oZ+Bj7lECTkWQ6/P3JYXUg1dcun8GE/NNuJoEmBimiAeFG99kwujyd8DYcN0VhpZ8aaUGtB8NnrwsoGn8I1kPd25F10/d5nMFTy1lCf+ANt4Bo7T3HE3TF5R1ntonBjXXVUW+5WXQVgGemIP3zx/E3O6qpHDYVnFqqLlGgHQ/HLLGuI+5mBQ4tQ9GSpTi3zn+cUMH8dKc941xzLLbVYiGsn1yX0ztkCQ+eztjbfgB+JSMpjMGpPHLW6nnX6DNcXDqxH32JX+cA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=J7L0puX+/VHrVm6jD3KyeCe+y94I5P89S1BYkrvLDMU=; b=e8bygPiPfsrH3QbnI8ECVjwMxM4ubaEuM+Z/WW2hN6mp+YywL0OvgaBnMa3KPeomR3HFTwv8CfIJOKvkKoa1CMk9plooUf+6OsVSmhge0OXwzYsoFbdWmGUIykRmD+BgDEFbGafPzFgzaaA7M96jj2KJIiqt94SY0Wrg+y2TzUcoYgh6oNgxJ9c1CcDTj7A4M2bMnfDEpSG6vHnV1/r9Xg0l5eiKnxtB421tdqBkWdl1JcM2fW/xd6LvkLx1rtMBy+ef7cqw2fbEgZviyQxKVl9MAgVKQA7a0sqTkU6jQS3dyRAgl1YbvKQ+dXrxFJXWqbajOwPyx+LweJLdymUxnw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none X-Received: from MW4PR11MB5821.namprd11.prod.outlook.com (2603:10b6:303:184::5) by PH7PR11MB5796.namprd11.prod.outlook.com (2603:10b6:510:13b::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.19; Fri, 3 Nov 2023 20:39:16 +0000 X-Received: from MW4PR11MB5821.namprd11.prod.outlook.com ([fe80::c90f:1f62:c3fa:3ac8]) by MW4PR11MB5821.namprd11.prod.outlook.com ([fe80::c90f:1f62:c3fa:3ac8%6]) with mapi id 15.20.6954.019; Fri, 3 Nov 2023 20:39:16 +0000 From: "Nate DeSimone" To: "devel@edk2.groups.io" , "Ni, Ray" CC: "Chiu, Chasel" Subject: Re: [edk2-devel] [PATCH] IntelFsp2Pkg/SwitchStack: Reserve 32B when calling C function in 64bit Thread-Topic: [edk2-devel] [PATCH] IntelFsp2Pkg/SwitchStack: Reserve 32B when calling C function in 64bit Thread-Index: AQHaC9N9JS5I69sZUUa9vYCNf6sxnbBpE+rg Date: Fri, 3 Nov 2023 20:39:16 +0000 Message-ID: References: <20231031082216.2038-1-ray.ni@intel.com> In-Reply-To: <20231031082216.2038-1-ray.ni@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW4PR11MB5821:EE_|PH7PR11MB5796:EE_ x-ms-office365-filtering-correlation-id: da45abd5-9ed5-46d9-6aa6-08dbdcacf29a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam-message-info: B5J7U+a7GBDdtA4iAItu8gRYWD/yi9WGqYt6bfPdYdQXWsma7RInH9NZBjILIl3nOU9iCjwPSeJgyIM6ncGT1BC1xE9X5EJIx8wprek8z0WL3dTPJ2/VId5pcGp36vMm+9uE8eRVr1j7NUaxARGEoBezg9TlZHVBxQbT1t2aV4pQnDN//vPlLv9tibupkTuG8RKZtFAehA7hRDu+ty/kpH//My/SJkZ+6mdIwLvimqrCuQT35njooAWneAXv8y/v7kZpIQQBwLBH/uoCXn29r7Vyg+rOnJSXQPlFqOj/uAS89/huYCBQJxgOObyWaz0bSFiF4dc0XE5pZSrCkfLvFEPQAkDIrU/elYFlcFA/ovmzHWgiNrk3oiUA+Z04XPBBqUgcg4Sy2XvGAuS76zBK3ck795Sx+3aZ2CGqGpYW3Zixb7+TvSF7esiaj8O1QxsFBoM91I1wGbh504+sENDJ6se5Rhj0yuBPdLPURHKPRZrGZU6UFTHc0/0+fR6Smry6d+Cv+4HEj97bS+oj2nTwxuF4W41prtElzD94VJKExEf/K3ImysDt+RHu0fMZKjKXy//I8burPomItnooaOEdegOjfe1TS5WYH4QTVHnberrOZ9wXjvYK2nXsveOWXkFLMTOWNjDC14eKJOvhoGhblg== x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?T2sZWDSv9Yp6W0x4iIhtLRTVnbCDRn5VrsMEefQDKeYa/GhU9ceS5RPlqUfb?= =?us-ascii?Q?hFd2wiuvbTp4JZFyRsLhGidUiTErrepdVdzQgjvWhnMm1vxqmnjr/GifuNju?= =?us-ascii?Q?xs9dHMjRqLKFGamFDj2I9Z5vjA3xGuu2Q10B5Y+Zy4Qoy2/kbTOnBI0Jxzbd?= =?us-ascii?Q?jdSvOG86JtFJplq1GnqEQ2vlVXsMEAkwx2QZqeKauSQqtAeN/zfPVLCyYMxe?= =?us-ascii?Q?8+LuHZ42ED3j+IND/XMIRTc68LOajHqNj4TFNokmm8Jr7dxewoOPeAVZnEtU?= =?us-ascii?Q?VytpsEUvxC3mHClmAgCy+vJ2QUVg9ImT56SKsI9FH+1E5PtfqX8pAYAwRnhy?= =?us-ascii?Q?57p3wQXDzLvwWjaJVWe4nPC6cmnmAs54T4WGEmMvMKgqk1az+8DDvDJ3vxgk?= =?us-ascii?Q?Iud1OvEOCe0Un4oCDaJGqkaljRCUbunepnhgMEE/BkgLXVkE71LR8ox2lzTL?= =?us-ascii?Q?3uK1mZ6YG477P+Fl98fzcze5cZLcuqHG+tzXzTjq785QXk0Dl5yOINQg02n3?= =?us-ascii?Q?nefwtxEaq+ZYD/PPVaONhVjMzr4zJaRq5A47KR12SV0eU8STAgRnQ/Ediniu?= =?us-ascii?Q?Hz8qIO1dYGBWEp90XFOxw62CoEqM4aDrwspm3O/4WAqBsbb3B+5V2gao8wGN?= =?us-ascii?Q?uOAe7tjzbSro6dq/XNU6Ydzx0C4avQQwHLtroY28tmfHI2jEeHw0ZpgibCXB?= =?us-ascii?Q?qnEJ1EW72PtOIro3I9oQQRqqpWMydOiLlb9Ls0g7RuTicyk2+ZRKrG6dzfpd?= =?us-ascii?Q?z8Os21TT5jKtElauo+wvX3723QcaBTrtBoTp9WXIBkG+isr7xPx5WmxQJArF?= =?us-ascii?Q?w6U5NxuzCLJs+tManCFfJHaWXvTsQ8lQ1U8HpHKYAUGO9ZoytH8H7wLQRf1R?= =?us-ascii?Q?fos+WAhKo52erE/nG/VHGZIytmVW/Oj8+3B/HxmifNWRjaGIbBnB73gU931H?= =?us-ascii?Q?ihQXgjwgW1QowvqICRucIGsh1IBLHlM9FBvo/BnvnOFBu7vNJXURIkq2KA8L?= =?us-ascii?Q?qZVxVFDHE/qxXTmGnk8dVEreFsC+xHGSWECnhmSXomm01QNdauvKs/YfVUu+?= =?us-ascii?Q?2Vy4ny70s93Np9k16i0IYiwlGSQJggBZBuJIeJJfJEF9VYyX6l4hlycrY+Qj?= =?us-ascii?Q?q79/sb/ZenIWXz6MPBv9PcqvgGQwjDZW/aUCPaysoo01I1rNUce1FprBSxZn?= =?us-ascii?Q?wSUkgkQz7ahAjgk4bA/ETucauR0ziFTIJ4+9rYQGGtfhrQuLqAWQTn8BS6GF?= =?us-ascii?Q?/Dmlns5snjR6CjAIFRHQslNTdXs4mujJtMpcRRrnKgF6y3cO9hm45I1VxAI8?= =?us-ascii?Q?AfPgZG5d0Y/gQhD3G5Oq4CC61mQE5M3GVU1DDBId5jUlnEF/x1VsiyprVsKR?= =?us-ascii?Q?Ug7tCWi+dGbNttyWPgn3jDXjcpEwB2oodgTNS16+v3hYkUkKn/vDh0cg5yy2?= =?us-ascii?Q?uGN+8hmTHt3Gdph0JSBfJf2S7ebj9adM34N46I0OAV+80pRofPcajfY2klQm?= =?us-ascii?Q?pXw2dba4GDjTFcJ0ICnGxF1gdCwyd2Iqx1rCoaV1LQkYnOkGffq153oHUpfP?= =?us-ascii?Q?FHoyapwrDbz8UPNnLQaSz4DQLBuY3FhHJxB/YpJj9QwgzwQrPgbg5B3EthSO?= =?us-ascii?Q?XA=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MW4PR11MB5821.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: da45abd5-9ed5-46d9-6aa6-08dbdcacf29a X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Nov 2023 20:39:16.5619 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: lQ8jeJiyRRCKQcoOO28PHLj7m1Jp+Fab8ogZ9IFWpOJabqdF3/y2ZrX/ERsCKMDD0CRxckSoQ/wtjvisE1f4OCVTpsB/kVtiOphl1kv5HJU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB5796 X-OriginatorOrg: intel.com 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,nathaniel.l.desimone@intel.com List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: WLqeGJrwWsYDzHHBCToFCeuYx7686176AA= Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20140610 header.b=KI+p4wzH; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none); spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 66.175.222.108 as permitted sender) smtp.mailfrom=bounce@groups.io Pushed as 0b4acb8. -----Original Message----- From: devel@edk2.groups.io On Behalf Of Ni, Ray Sent: Tuesday, October 31, 2023 1:22 AM To: devel@edk2.groups.io Cc: Chiu, Chasel Subject: [edk2-devel] [PATCH] IntelFsp2Pkg/SwitchStack: Reserve 32B when ca= lling C function in 64bit When FSP runs in API mode, it saves the IDTR in its own stack then switches= to bootloader's stack before it returns from FspMemoryInit. Next time when the bootloader calls TempRamExit, FSP switches to its own st= ack and restores IDTR from its stack saved earlier. However, due to a bug in BaseFspSwitchStackLib, the IDTR saved on FSP's sta= ck might be corrupted that results the following TempRamExit call fails ins= ide FSP due to PeiServices pointer cannot be retrieved from IDT.base - 8. The bug is the assembly code doesn't reserve 32 bytes before calling the C = routine in 64bit. According to the x86-64 calling convention, caller is res= ponsible for allocating 32 bytes of "shadow space" on the stack right befor= e calling the function (regardless of the actual number of parameters used)= . When FSP is built in optimization-off mode, the C routine makes use of the = 32-byte "shadow space" which is not reserved by the assembly caller. That c= auses the IDTR saved on the stack is corrupted by the C routine. The patch fixes so by reserving the 32 bytes before calling C routine. Signed-off-by: Ray Ni Cc: Chasel Chiu M: Nate DeSimone M: Duggapu Chinni B M: Ray Han Lim Ng R: Star Zeng R: Ted Kuo R: Ashraf Ali S R: Susovan Mohapatra --- IntelFsp2Pkg/Library/BaseFspSwitchStackLib/X64/Stack.nasm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/IntelFsp2Pkg/Library/BaseFspSwitchStackLib/X64/Stack.nasm b/In= telFsp2Pkg/Library/BaseFspSwitchStackLib/X64/Stack.nasm index 1ea1220608..e3a7cf002f 100644 --- a/IntelFsp2Pkg/Library/BaseFspSwitchStackLib/X64/Stack.nasm +++ b/IntelFsp2Pkg/Library/BaseFspSwitchStackLib/X64/Stack.nasm @@ -1,6 +1,6 @@ ;-------------------------------------------------------------------------= ----- ;-; Copyright (c) 2022, Intel Corporation. All rights reserved.
+;= Copyright (c) 2022 - 2023, Intel Corporation. All rights reserved.
; S= PDX-License-Identifier: BSD-2-Clause-Patent ; ; Abstract:@@ -60,7 +60,9 @@ = ASM_PFX(FspSwitchStack): ; Load new stack mov rcx, rsp+ sub rsp, 0x20 call = ASM_PFX(SwapStack)+ add rsp, 0x20 mov rsp, rax ; Res= tore previous contexts--=20 2.39.1.windows.1 -=3D-=3D-=3D-=3D-=3D-=3D Groups.io Links: You receive all messages sent to this group. View/Reply Online (#110384): https://edk2.groups.io/g/devel/message/110384 Mute This Topic: https://groups.io/mt/102293342/1767664 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/3861758/1767664/118797010= 1/xyzzy [nathaniel.l.desimone@intel.com] -=3D-=3D-=3D-=3D-=3D-=3D -=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 (#110668): https://edk2.groups.io/g/devel/message/110668 Mute This Topic: https://groups.io/mt/102293342/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-=3D-