From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mx.groups.io with SMTP id smtpd.web11.90842.1680571915633037637 for ; Mon, 03 Apr 2023 18:31:55 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=HMI0Jfmz; spf=pass (domain: intel.com, ip: 134.134.136.126, mailfrom: nathaniel.l.desimone@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1680571915; x=1712107915; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=iqacTKZj1lb5PbemXEVOOaxJ7JB/wXAy3SE3kSf5QB4=; b=HMI0Jfmz2XzgNdJhzHP+mympORpEh9T08cNz+esKWD2eWKr3ny00qorp 2VCn4g3YUvsm4oTe3bqYd1IhP1Vai38L5rMgbLlkNwmcrpeqk+pFKdnGJ YfuhXEH9RXqFP2pJijheEH0BXqyIZWz5cGeURTzzHi2rbh3KhQ6nJsTus r4zORyyf21ZMQk/r3fgxCEqn51azk6/TYMBhEfZiQNjZb6cAgB1E3tFD5 IBg77TMcPWKC+r570GYJe0UNq309i2SULgKQG/xXkKH01mPeieJ+tphli dZKIGViXG7TdAD6S2D4PE3oL+DpfLmeNVBlX639pjnJ7NiTXP0Bd5DKja g==; X-IronPort-AV: E=McAfee;i="6600,9927,10669"; a="326078318" X-IronPort-AV: E=Sophos;i="5.98,316,1673942400"; d="scan'208";a="326078318" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Apr 2023 18:31:54 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10669"; a="860415910" X-IronPort-AV: E=Sophos;i="5.98,316,1673942400"; d="scan'208";a="860415910" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga005.jf.intel.com with ESMTP; 03 Apr 2023 18:31:54 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Mon, 3 Apr 2023 18:31:54 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Mon, 3 Apr 2023 18:31:53 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Mon, 3 Apr 2023 18:31:53 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.109) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Mon, 3 Apr 2023 18:31:53 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cXhkT0ZBzH2LkH1PKqF78y23/aIkP08gzcKgrb63kaBiyXpvl7dmUW7tocqn3oIvzcGQBDav3DoICh25jqTyB8JkewIz2D9RhNA+8jEQFoi0fE2WcXA74EQdnezKbxtVqOc2XT2GQXJ4P57aV/qIVCkwnwNIs2CIVSFEiUzbOIJRiZkEA785rIQyHBSsMYKBvfLDZ1UJs3fSKQbXMF6JO7wdPmPnGRd9eAcWrWOhkB+62ivYNKXEDs3cgyshjxnnvkIZf6UKKOrLQZjftcVInBE13OGdHVA3zVXj7drXBn1lnoeMtRpCfs/lv4OFRW0J9oIKCyKXyfZldKNbfSKO+w== 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=VioN7mVE/95XItzrbJalgXky+Q2fBEOaoc1meeNcC8o=; b=dHH11EckcUkgohKKazsx/NKVPTw0Jcl7jt9MqSWvHC4z+lv+/ME8Ym3rKuQ/znRTCGdT34Gzpij4gJihiFEVI50NQigSpBth5hXrU9BzvuHHH9OT49Any2kPzbDZOsIh0A5voGaw5L6cpk8h5qJSne95g87JXiNNgbmVWZVlOOCbUktXJ7FC0DWJuxMUHuY6Liz3fzeZK5quh5G6yi0NstB0eXWMkTmsCAbsi9vopRcCXbmTJStHSXKAn3O+FJYkA0k+qK+ELFR8lhDVO5iquhtwHu+eMoXeEzWrdMNTg+lWY2JK8NsJegK/RW0dq7AadItN6ke25R9Me0v6M8qsGg== 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 Received: from MW4PR11MB5821.namprd11.prod.outlook.com (2603:10b6:303:184::5) by CY8PR11MB6820.namprd11.prod.outlook.com (2603:10b6:930:60::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6254.33; Tue, 4 Apr 2023 01:31:51 +0000 Received: from MW4PR11MB5821.namprd11.prod.outlook.com ([fe80::c8e1:6df6:9662:e42a]) by MW4PR11MB5821.namprd11.prod.outlook.com ([fe80::c8e1:6df6:9662:e42a%3]) with mapi id 15.20.6254.033; Tue, 4 Apr 2023 01:31:51 +0000 From: "Nate DeSimone" To: "Chiu, Chasel" , "devel@edk2.groups.io" CC: "Zeng, Star" Subject: Re: [PATCH] IntelFsp2Pkg: TempRamInit API should preserve EBX/RBX register. Thread-Topic: [PATCH] IntelFsp2Pkg: TempRamInit API should preserve EBX/RBX register. Thread-Index: AQHZZCbTKO81miShOE6x1yXTZiRWv68aYZlA Date: Tue, 4 Apr 2023 01:31:51 +0000 Message-ID: References: <20230331231608.1516-1-chasel.chiu@intel.com> In-Reply-To: <20230331231608.1516-1-chasel.chiu@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MW4PR11MB5821:EE_|CY8PR11MB6820:EE_ x-ms-office365-filtering-correlation-id: 38c26329-6e7d-463e-3f01-08db34ac5db5 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: f9iq+dt0BuxaXaSE7IUWaJhMUq7cBmSgKyeowJRo7H4oTi6jHCJDgJ7s2EVSEUk4CA934T+UKrETNhOwNOwf218oF4t+R4xiaqp9CobrKWHkSoh08AmNFkz2lH7NWdPJF+kMgqzyMGJpbGKajmhKVkhjD/sa2ouG6mDAzWNWk4EXNhBLIVx4wv/Q9Z5krsCzPou52vJfebmEnu9VkmFLJkKgruZINss4f/VlHUP20KaZioaJwQxUG12LiRA3BeHm2MoBv/aZEWMMF3c0Q8297phDD929FvFCiyEvYZN7M1rL/RZnaZARJBJYXDuVXTGhqcploZLtKgkpZ8OCkUQDL5u9/ZZ5yjG1HVXShDPC9tFpI0diXavuF5G1Q743HM67qiMmxxMIeoJRsUAF7pg+vG4GAovDuHh1NsHanle7bcm5YjHm/UnqeRhN8gDRQDu/6xKcqo46WO/mFO2l1d18thkmqMCsO9gJhfoXI+GiB9rOKrmvDMhYaU9HEWYYqLtoP8hNVXvsf300x9BneM4nGBftnFqByQ96DJrji8box9AbTHH8KNIyjNQ3Lp1Ac2s4wJVv4Ewdfj2eIOKkx6B3U3cmtX2QJivrfumNsY8HchE= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MW4PR11MB5821.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(396003)(366004)(376002)(39860400002)(136003)(451199021)(38100700002)(5660300002)(122000001)(83380400001)(6506007)(19627235002)(110136005)(316002)(55016003)(71200400001)(7696005)(186003)(53546011)(33656002)(478600001)(966005)(86362001)(107886003)(26005)(82960400001)(9686003)(4326008)(8676002)(41300700001)(8936002)(38070700005)(66946007)(76116006)(66476007)(66556008)(64756008)(66446008)(52536014)(2906002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?kqAaSmbZAg+gXN6i9v2hnMw30/76Jr1ZmSJ4Msj6mOZr0PB8cO3MP/0+Bc62?= =?us-ascii?Q?d7YDHVs3SijP1hI42peuQpJathAT2VqhfS5ZgGGqXd3h5AfZdhct/GhbkcVV?= =?us-ascii?Q?WBFRWa5VRK+utRPKCsbik4RFlZanrZnYmHiCfJn6VuLUm4fPCobZICWIfzYx?= =?us-ascii?Q?/+snWeD6NoMm0DZT/s9XX66Zsk34LWYwLOdt6LYK1RAyCPXO+aT2PkJ8DKgC?= =?us-ascii?Q?WjmOm0jLuSkdcdJSy4sPDBvbUS9Py4x0Yxv1fNM6OtFK/gojyNfDAudzNSng?= =?us-ascii?Q?Fdj+yH9wdDSvoyYLFiyIQ6N7I/wW7r8jjdyh0uNlFj8E4H55/m9ceiyaQ9Hz?= =?us-ascii?Q?7np9VJsIafnHsiaU6p3PBSth7Uq970A5hrfM8fwiyWvuGeOpbgDSIklEmVPA?= =?us-ascii?Q?1HMGG6c8YDzNnOMQXcFCjAWuqcLp/TMsAfa9HjV7/RnisjhIOt0elheM8/pe?= =?us-ascii?Q?YJlNgYbmIXYxdFyP/dynD91d3h02/CG7a1WLL+5ekMVqIIOS1S/jLJzZd42d?= =?us-ascii?Q?2Siv8RFfi7Ex5LdUzE81cMjzzlLYgsB7RTTEOu6HzE/1UvfZk9XrVNqpJUna?= =?us-ascii?Q?TSuSDZ+bwFm1rl+Uzd6ZIVPHikOSqY8g//Du6d2zf36NshixjGCXtcYd6Qtj?= =?us-ascii?Q?A7pZiVtx8tPwzep0PLCnfxbGbJU0+0O8pERwcufTGosmxbnpXtGgelqe/sfY?= =?us-ascii?Q?xqIAKHVp02MhHfFxfM+F/aVwsN3ZFL1IrMTWfnIjnz6+C1/eQsvJFTZ05ZYW?= =?us-ascii?Q?PEIX9ALGFjm82lOn6QbkcRIE3bT6XdtovGSqE/KNJb7DvJ7zWe5S+ty2z7q7?= =?us-ascii?Q?S3K2EeCr9rp/l17iH0BTmr8o/vS+hg1RFvyOQ1NIXMfcvMsjnQlUFartXKvQ?= =?us-ascii?Q?gdW3lKwBdpIbchGBd+e2RYZtzO7MHemm59kdypuiVlzCdA6G2vg2wXegC48Z?= =?us-ascii?Q?AlW/1YLcw9Wrn8lqciYbftEI40LUF4s3rEN0IB3R87bUQDx/VjNhCVs++E3z?= =?us-ascii?Q?knJmMmiUq4Evhws5h7z8Ip99Bb6O5BoDu04ULJXSqcSc54Jp4R/3iAfuaKZs?= =?us-ascii?Q?ABkhPUNlfxD6MYkULJqWTmbLXli3SeWybYNTfzZjjMMRIkBs9lHqm/3j3Pkb?= =?us-ascii?Q?rFmvDN0ifY7j+J/CuYcKXI6JWk+IkmOtkt6K+4z+yWQpiWPPmKWBfKREb1Jx?= =?us-ascii?Q?fkz0uAijVfuhrczvSJu1L6PmVyRuoeit6t01x8G+iNrfE8zcbEIriz881cKL?= =?us-ascii?Q?CuN6G8veLCKevkQXQEI+rlQz8q4f3Vnr4ge7fF9mq1C/6BBTmqNEKNvcJ7iG?= =?us-ascii?Q?cCzqo+jwLOCTO1KYia9E/1S0Z0bZG4lpfdCb3e16hbXGOZbBSd+0+L4n3wTB?= =?us-ascii?Q?gqmWMXTcac2dBrEOMokIZ1cAnYBXRcszzh62w8c3Eo+5MQE2F8oxArv/V59/?= =?us-ascii?Q?AEIAMWNNK92GPBpTLGlVrcAAthw7aXLigjDHGjK4XA9RsDXkGFp3HOeuPn0Q?= =?us-ascii?Q?tqaNnge1+Z6WpiWJ6s6udAqdev7gpKFnZir87XhrQjeyBUJqFpMxBycQsFHV?= =?us-ascii?Q?f/PMoIbX/Ui/ueKGnXhvsmdTnXvK85LdHCHBbsmSrQEKxWeUnsLOg0JYg0o6?= =?us-ascii?Q?+A=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: 38c26329-6e7d-463e-3f01-08db34ac5db5 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Apr 2023 01:31:51.4018 (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: 23SoApXOg01QNRGetWb6dOIxkm6E23u7r7ZpCvSTMbuUGCrUshaQCdRhUvQgtCEuKhHFIiHFwkfVZ4S8pf112PI3XGpObpRzkGYjawV96ww= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR11MB6820 Return-Path: nathaniel.l.desimone@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Nate DeSimone -----Original Message----- From: Chiu, Chasel =20 Sent: Friday, March 31, 2023 4:16 PM To: devel@edk2.groups.io Cc: Chiu, Chasel ; Desimone, Nathaniel L ; Zeng, Star Subject: [PATCH] IntelFsp2Pkg: TempRamInit API should preserve EBX/RBX regi= ster. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4395 FSP specification defines the TempRamInit API preserved register list which= including EBX/RBX, however current implementation unexpectedly overriding = EBX/RBX register that should be fixed. Cc: Nate DeSimone Cc: Star Zeng Signed-off-by: Chasel Chiu --- IntelFsp2Pkg/FspSecCore/Ia32/SaveRestoreSseNasm.inc | 7 +++++++ IntelFsp2Pkg/Include/SaveRestoreSseAvxNasm.inc | 21 +++++++++++++++++= +++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/IntelFsp2Pkg/FspSecCore/Ia32/SaveRestoreSseNasm.inc b/IntelFsp= 2Pkg/FspSecCore/Ia32/SaveRestoreSseNasm.inc index a222f2e376..016f943b43 100644 --- a/IntelFsp2Pkg/FspSecCore/Ia32/SaveRestoreSseNasm.inc +++ b/IntelFsp2Pkg/FspSecCore/Ia32/SaveRestoreSseNasm.inc @@ -157,6 +157,9 @@ NextAddress: ; Use CpuId instruction (CPUID.01H:EDX.SSE[bit 25] =3D 1) to t= est ; whether the processor supports SSE instruction. ; + ; Save EBX to MM2 + ; + movd mm2, ebx mov eax, 1 cpuid bt edx, 25 @@ -169,6 +172,10 @@ NextAddress: bt ecx, 19 jnc SseError %endif + ; + ; Restore EBX from MM2 + ; + movd ebx, mm2 =20 ; ; Set OSFXSR bit (bit #9) & OSXMMEXCPT bit (bit #10) diff --git a/IntelFsp2Pkg/Include/SaveRestoreSseAvxNasm.inc b/IntelFsp2Pkg/= Include/SaveRestoreSseAvxNasm.inc index 38c807a311..002a5a1412 100644 --- a/IntelFsp2Pkg/Include/SaveRestoreSseAvxNasm.inc +++ b/IntelFsp2Pkg/Include/SaveRestoreSseAvxNasm.inc @@ -255,6 +255,10 @@ NextAddress: ; Use CpuId instruction (CPUID.01H:EDX.SSE[bit 25] =3D 1) to t= est ; whether the processor supports SSE instruction. ; + ; Save RBX to R11 + ; Save RCX to R10 + ; + mov r11, rbx mov r10, rcx mov rax, 1 cpuid @@ -266,7 +270,12 @@ NextAddress: ; bt ecx, 19 jnc SseError - mov rcx, r10 + ; + ; Restore RBX from R11 + ; Restore RCX from R10 + ; + mov rbx, r11 + mov rcx, r10 =20 ; ; Set OSFXSR bit (bit #9) & OSXMMEXCPT bit (bit #10) @@ -284,6 +293,11 @@ NextAddress: %endmacro =20 %macro ENABLE_AVX 0 + ; + ; Save RBX to R11 + ; Save RCX to R10 + ; + mov r11, rbx mov r10, rcx mov eax, 1 cpuid @@ -307,6 +321,11 @@ EnableAvx: xgetbv ; result in edx:eax or eax, 00000006h ; Set XCR0 bit #1 and bit #2 to enable = SSE state and AVX state xsetbv + ; + ; Restore RBX from R11 + ; Restore RCX from R10 + ; + mov rbx, r11 mov rcx, r10 %endmacro =20 --=20 2.35.0.windows.1