From nobody Thu May 16 01:37:16 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+102337+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+102337+1787277+3901457@groups.io; dmarc=fail(p=none dis=none) header.from=intel.com ARC-Seal: i=1; a=rsa-sha256; t=1680304580; cv=none; d=zohomail.com; s=zohoarc; b=KkKmFGR+vtTzGjfTFM7DE1zKXyWnPiBL/pTN8Dj6wieAtfmK7cGh70tNocfM9oeTcR/eLhL1KWoeHob1AMfkTPnmpfx0st+flQHvT6McKjx5wtdN4wV0YaRzqWjXmuKwTpiYkNIsHwynw7b5HLnjZOPMMscRESdq4SdP/UMDWD0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1680304580; h=Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Sender:Subject:To; bh=ErYDYT2Szq3UGHcOz8zupxQovP+v+Na79abcVPJ7Uiw=; b=I0DBsBMEtaSyItKB6I2R8dg161v6iKmXv7Iv1Gt7lUFcS8xElleY0oIta1aFkRyPvH4+U0Iq2gObMtF7JFRKe8pbP0aVMb9vCuxALuMd+PhmfemjtM8a8x07yEIp9EsdAedk2UEpQX2L8Qfroij7isTOHHZnULvUq7LIeWigk5o= 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+102337+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 1680304580089998.2441695468373; Fri, 31 Mar 2023 16:16:20 -0700 (PDT) Return-Path: X-Received: by 127.0.0.2 with SMTP id OLT3YY1788612x77eKyIi3eO; Fri, 31 Mar 2023 16:16:19 -0700 X-Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web10.10047.1680304578752799245 for ; Fri, 31 Mar 2023 16:16:18 -0700 X-IronPort-AV: E=McAfee;i="6600,9927,10666"; a="427853782" X-IronPort-AV: E=Sophos;i="5.98,307,1673942400"; d="scan'208";a="427853782" X-Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Mar 2023 16:16:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10666"; a="931349408" X-IronPort-AV: E=Sophos;i="5.98,307,1673942400"; d="scan'208";a="931349408" X-Received: from cchiu4-mobl.gar.corp.intel.com ([10.252.130.169]) by fmsmga006-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Mar 2023 16:16:18 -0700 From: "Chiu, Chasel" To: devel@edk2.groups.io Cc: Chasel Chiu , Nate DeSimone , Star Zeng Subject: [edk2-devel] [PATCH] IntelFsp2Pkg: TempRamInit API should preserve EBX/RBX register. Date: Fri, 31 Mar 2023 16:16:08 -0700 Message-Id: <20230331231608.1516-1-chasel.chiu@intel.com> MIME-Version: 1.0 Precedence: Bulk List-Unsubscribe: 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,chasel.chiu@intel.com X-Gm-Message-State: 6y50uZNz7vUn77R1DWCrE5l3x1787277AA= Content-Transfer-Encoding: quoted-printable DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=groups.io; q=dns/txt; s=20140610; t=1680304579; bh=JjKyCeVovtOi1EkoN/tRbe8j4kcaJW92HD+L4mCgWJo=; h=Cc:Date:From:Reply-To:Subject:To; b=UVqtM+hF7aSu4IUpkhjRvlmWg538vONE8zEUvvGLzDs4AODeG+42CL8E3+NJTZ/4NRY nUnLUYXkNS3tW2SZx0cVqeVz/G+SROQKftSq2/N1KDvWU3m1J7Qpi4/hKowVIUiNvJprv +aCNrtXHO+qmF7VuRrY2nGs3z8kAbb6wvZA= X-ZohoMail-DKIM: pass (identity @groups.io) X-ZM-MESSAGEID: 1680304580714100001 Content-Type: text/plain; charset="utf-8" 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 Reviewed-by: Nate DeSimone --- 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 -=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 (#102337): https://edk2.groups.io/g/devel/message/102337 Mute This Topic: https://groups.io/mt/97984838/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-