From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web09.28146.1652702890573059113 for ; Mon, 16 May 2022 05:08:11 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=aGDawCkV; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: chasel.chiu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1652702890; x=1684238890; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=ZBqrll3V0KAwjzQtpaWY0Nrr6eBLmAVuvPl8M8f7mJc=; b=aGDawCkVA+4bCPkDMzO1PIBHxFFcPrS8+D7O/TjnB9oPBBRKB/gjkpty ULet7qAfEogcZHQzCBW/o87uv9qq1595e2cvo4GoAuwvsPN8IlWX/lJBh NOVQvptHEbZfKzJY+3Q8kBJ0ecFdrYi8aX9TR+KLZ1b3+Sgic2v4/60Os hBlraETKP7aIo4vThjFCVqt790A+aABNpj/yBOKQ0WT9QD2XEPc34LZqC /Rh7XXN4CF1aPWu5VJm9FnMVySO5ddFqy2lgcx5xji3qvmUuluDUJqOIV WD/U59/w/5AC4rO05VIuVyNvXnho4hSLANC/qv9dcF3PCQqo9dUXd++6y g==; X-IronPort-AV: E=McAfee;i="6400,9594,10348"; a="296073039" X-IronPort-AV: E=Sophos;i="5.91,229,1647327600"; d="scan'208";a="296073039" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 May 2022 05:08:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.91,229,1647327600"; d="scan'208";a="625911077" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmsmga008.fm.intel.com with ESMTP; 16 May 2022 05:08:08 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Mon, 16 May 2022 05:08:07 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Mon, 16 May 2022 05:08:07 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.176) 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.2308.27; Mon, 16 May 2022 05:08:07 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LyjgJyIJeTDTkSdHULF2eU8W6FBjEMdtCsAkj8WTGtCXqUS2m9oKGfciPpl+SyjzFguopNzFeEgSWq0An27PjofN2u2KcRZ3J52U/NRNwgjIwgJPICSRUOFI7BgqaBset8/24lXIaO2FXRGYWg4eIJEi56sFTYfN+H1cXzi8YwWlH7zbFNDY4+y0Rfm5LneETe9ITYdvw9uH0wQfYxaU1IUS6WUfDlIz3lgglZKmHeyvIcMiUe6dFMF9NXvBOU8ooF2alwyBmkzHmggJapxhY2JDECNyxAJ0erHwMhM2UXz/3oY5EbwceYGnJi5RUOC3HvtOpmEgxXnVVZiufmorMQ== 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=zkm37qeWp383EflX1SiZ2o1AuHV1nohUHO+nH8Y+Yic=; b=k17QwZeZ2XZm2dmZ7aFyT29mPF9+F/6k+0gkFz5CdI9PxWQDHG8JcaOiKs2akj/4QeVFUlIX1h8fy83Cx/SWIAKJ2soSKqEhm4C5Z9dVCX+Zy+bTMTk8oY0AbCmpoK8Uvrj/44nEjiVr5t0Yc0nCCSaWjMicESUv0/Jzry63QbGRrk18jmVUGF6VXsRmFjqkNwh+O0djXdI3XaUJgZ7Op17uuXL/yhXe7r2K2yntraxjC8/3KsQjFsh+Hlig5/RgR72lXIRZHtynMn7KmD7vdvDVCrZHmzfBJzwolvQX+FQm1UlMZMUpmVVdQ1CS1D79JTY9cbvEQhe7DGSiQEXL1A== 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 BN9PR11MB5483.namprd11.prod.outlook.com (2603:10b6:408:104::10) by BN6PR11MB3905.namprd11.prod.outlook.com (2603:10b6:405:82::36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.14; Mon, 16 May 2022 12:08:05 +0000 Received: from BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::c076:6436:db8e:ee22]) by BN9PR11MB5483.namprd11.prod.outlook.com ([fe80::c076:6436:db8e:ee22%8]) with mapi id 15.20.5250.018; Mon, 16 May 2022 12:08:05 +0000 From: "Chiu, Chasel" To: "Duggapu, Chinni B" , "devel@edk2.groups.io" CC: "Desimone, Nathaniel L" , "Zeng, Star" , "S, Ashraf Ali" Subject: Re: [PATCH v3] IntelFsp2Pkg: FSP_TEMP_RAM_INIT call must follow X64 Calling Convention Thread-Topic: [PATCH v3] IntelFsp2Pkg: FSP_TEMP_RAM_INIT call must follow X64 Calling Convention Thread-Index: AQHYaRNI26zNhv347kmBTQDsdxodha0hYvHQ Date: Mon, 16 May 2022 12:08:05 +0000 Message-ID: References: <254311d0ac264a325dfe65d7c3b47950c374a604.1652698395.git.chinni.b.duggapu@intel.com> In-Reply-To: <254311d0ac264a325dfe65d7c3b47950c374a604.1652698395.git.chinni.b.duggapu@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.401.20 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b1fd08cd-01b9-46f9-001a-08da3734bbe4 x-ms-traffictypediagnostic: BN6PR11MB3905:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Q8eYnkNSph/83FFoLu3Q3deppI39FjrraGFJZvxmgKVaA/5/Nxrf7j5lrnQlbT5MU4ks4shctU+iJSwjd1G1/zT3UJxngajyM1WkRkbzPNBh7ttFuHMarxvfOx7dC8P5veQ7XDX52TAP5FlQ70NA6EFvWQc5Ge2UG4cAzRkXykbs0meZXulmHIt7JpAKJFc+JySt2YXxZ6m7k8FUR4AwwIR3QnU+yJMPWB7DnBrYHcBQAZUrMLLGjCk3ejzrZeBd03Fw78w4YMiktOaHKlNWCckdgX7CeKWQHcVrHsb2dskSfsa3bhcvE3+q2ypcFN/TQhLce6YWH9E1ndn3IgQ2tpvt+nboqAQ0GSQjKMTi/Ej2A4aYibqULstTrrImuwGiJcSfx8F/5pdt9B95nesSRg4fjssT13+iFKJByglVI+ps9jP7C0VgP9zLuCVhLjCI9zJz5I6EH6Lord7cg3/Z8aAmj+OFwCTeVpSCLJubvLGau761YuCLqpeKGeZaPPlTiq+jo5d9VV6SybOGQ/zYGx04wzUvpG/FTI7/C0Mqv15zkzn3wcDd3sPvm4Vu61hKrs3bTMWKhTmWn2Wqirs/R+8jSu4cb2aHjserh3MHNvdlry37hWtiDRrUBuAaVajkAW7faO4NMgnNbjU+7Y5hOamsbL+VEYTBg8Ce2gfw/8jha0LLKKA2xxpyFai7XgNifVkBvD7VrxWyU+JZjfsjzEA1spLLrRr/ishcoYs8AaXPSnV6yeOlKDRa3XZ0IKTksI+osaIaYDEALGjV7nS3XrX6UkpG83ufwEFWWrrUDOiK8iaCzw3Z0e2MNlX0Kxxw x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN9PR11MB5483.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(6506007)(53546011)(7696005)(110136005)(54906003)(83380400001)(186003)(2906002)(316002)(19627235002)(8676002)(66446008)(66946007)(4326008)(76116006)(66556008)(66476007)(64756008)(38070700005)(38100700002)(71200400001)(33656002)(55016003)(508600001)(52536014)(8936002)(9686003)(26005)(86362001)(107886003)(5660300002)(122000001)(82960400001)(11716005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?yrTyeNobYV/4T0kvcmSKFlM7cESUOJwSAgsjRp3zCtheABQhBFkhOYyGdDu5?= =?us-ascii?Q?4U7JeyxdxeIPjmxGhOLnMCvGihDdQYKNCFQ9yl7vU9bdLNHS9KasPz7udDWp?= =?us-ascii?Q?hrGcTUDZXRQTA4VEtW/5MI0IBBxfycvtV5MGsAdO0UqWamlYdDo95BRTChYN?= =?us-ascii?Q?7X5TmJ2IKa6rl8DRQcvaGe0/u5lvk+lNV5tjAaznu+wVEQpLYpM4QSD0HK5x?= =?us-ascii?Q?taTCGIDp0nvhmom/OzpNjqtFdo4rb3+1tGsXW6gMCIO0767xADAyRHTutKsb?= =?us-ascii?Q?O6sxNUwvQWvxIaPiRWrnzl/cPZYJ3AWhwt+8z/sRyBQ1fVP+67cLiNsdkoNA?= =?us-ascii?Q?VxqGMAqbSxW88bQDDUU9oDTIrtenR6d5Gq3vFtrHnZrbnQ8Tu9H8zIdacWWY?= =?us-ascii?Q?LtHwPIowbWyyh9ZUHKfYTqskXvB+Qf3Q8V2mVQfpUi+pgXBjpJDqBjwdJFVK?= =?us-ascii?Q?Ls9s7e2rNYwxEjngEGK3s2p52XeZaqg/IDovAcARmm4QU88qc+kLuNk3B3Ok?= =?us-ascii?Q?TPU6xcnDpoi/mCvGQype5YDicgkMW2B7qJ/PGkyhWsEXSHrDX85gdXLl967D?= =?us-ascii?Q?dqmggf/TJSlEu8CvNBTZ4j5IyShrhCcL4FrrvJDwxlC6KTDV8GQZlro3W/ds?= =?us-ascii?Q?/maNX75AntmuoRxq4XoUL2kCYy03E0vfSDyl2Uya6IGrmQy8mdaK0HhJ22DP?= =?us-ascii?Q?lsX+d4HxyMEZ+UoTLWqGGLGF4+96LSAG8fG/NdJ4b+P6jFc8OKUH6dU4sBGd?= =?us-ascii?Q?gC9yw+bS4By/eJiRgr+cbz2N8MdMpPXj0hN52e+S6fxzJkCBhiZXFJopFeg4?= =?us-ascii?Q?GycoD5s/i3ccmdhs27SHXsQYIw0uk6gCdvgiWlShQJYWE4FS9paWng5DbW42?= =?us-ascii?Q?4eqdx3wigihm92ukF1Qpd/DtDp0CDpZmITwF6fl24DGyj6j5+S6sHxgznTZ0?= =?us-ascii?Q?fDhSBGwZsnt17thsThr0ZWPZBIo3GBs8voFRtHXxfupTzHKA7y0+SOhffRII?= =?us-ascii?Q?YN2sgyTTSCr0en6DhFRtswWXE/xTUEtrABZkxWUmtftyQoaktEID+uIiISgG?= =?us-ascii?Q?kIK55pnigJd3NBz1h9HHt1dIEErLAxfxJg1cz7+6hThb2q3ARIIIZhS1JYAj?= =?us-ascii?Q?CrYbE17ctK5FB+VeZ168L9md+RShIDvtOIFuYunun1W3Yq4Ed85d5/O3B004?= =?us-ascii?Q?kWOlZ8i0Zj/HUX8saM1Yut9PpxPbeRDRm26G7ZeqZrjqqDM50KrVhQMqrR1/?= =?us-ascii?Q?YPcEevTL7VCtt7CzFjLOl3ZWOg5fFo4zdnN4vuIohDJskY2qOVfDDxPed5Ym?= =?us-ascii?Q?I5tWFO+fbUm4RDQZUSsxx61iVVzg4jvIVbHxN4hL0ZURu7FtMttlhxlSoxUv?= =?us-ascii?Q?mryKKKylo5bPmfLkmTRWuflIQ3mjxoFvdhQ69020p2oXXF89xGGpMo0Sv+Oo?= =?us-ascii?Q?IGNEOPThV70E9apxMkuDjnrwRNUF5pzbjgNC7l3petzeveh38yokSo57aUD5?= =?us-ascii?Q?w6OmdtzHFro3i/Nuji4RSA6V2BVSqOTj1oVqN6l6KEP6mbxIfL92rWUFGMYo?= =?us-ascii?Q?WkEqOBADu0Jb238UjOImY28ejfjoZ3rQvxY4d35ldsdUXELkEgL1l1tw2xUZ?= =?us-ascii?Q?89EgG1LX+q0KrwzdLlb6VBK1kBb+NyCXcjd7FrvsHTVCCJd6MsfLHJv6ODbf?= =?us-ascii?Q?pYDX4vXDohTN8OE+D6JiiKQ7RduUOBJhpe1viECspZKcttVqWELmQ3NQKE76?= =?us-ascii?Q?wcPbPiPDqQ=3D=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5483.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b1fd08cd-01b9-46f9-001a-08da3734bbe4 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 May 2022 12:08:05.5830 (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: l8l9wBHU0uYjYoxK9JGzbMEi6xn7WOGqJu57leBl30XBIQ04hni43ZvA3WYBKUEQd2UptLDiZvfsrxmcckTXVg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB3905 Return-Path: chasel.chiu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Thanks for correcting format and updating patch per feedbacks! Just one more comment below inline and please also help to include patch of= IntelFsp2WrapperPkg\Library\SecFspWrapperPlatformSecLibSample\X64\SecEntry= .nasm for passing API parameter by RCX. You might want to create a patch series: [1/2] IntelFsp2Pkg patch [2/2] IntelFsp2WrapperPkg patch Thanks, Chasel > -----Original Message----- > From: Duggapu, Chinni B > Sent: Monday, May 16, 2022 6:54 PM > To: devel@edk2.groups.io > Cc: Chiu, Chasel ; Desimone, Nathaniel L > ; Zeng, Star ; S, > Ashraf Ali > Subject: [PATCH v3] IntelFsp2Pkg: FSP_TEMP_RAM_INIT call must follow > X64 Calling Convention >=20 > REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D3926 > This API accept one parameter using RCX and this is consumed in mutiple > sub functions. >=20 > Cc: Chasel Chiu > Cc: Nate DeSimone > Cc: Star Zeng > Cc: Ashraf Ali S > Signed-off-by: cbduggap > --- > IntelFsp2Pkg/FspSecCore/X64/FspApiEntryT.nasm | 26 ++++++++--------- > .../Include/SaveRestoreSseAvxNasm.inc | 28 +++++++++++++++++++ > 2 files changed, 41 insertions(+), 13 deletions(-) >=20 > diff --git a/IntelFsp2Pkg/FspSecCore/X64/FspApiEntryT.nasm > b/IntelFsp2Pkg/FspSecCore/X64/FspApiEntryT.nasm > index a9f5f28ed7..9504c96b81 100644 > --- a/IntelFsp2Pkg/FspSecCore/X64/FspApiEntryT.nasm > +++ b/IntelFsp2Pkg/FspSecCore/X64/FspApiEntryT.nasm > @@ -114,7 +114,7 @@ endstruc > global ASM_PFX(LoadMicrocodeDefault) > ASM_PFX(LoadMicrocodeDefault): ; Inputs:- ; rsp -> > LoadMicrocodeParams pointer+ ; rcx -> LoadMicrocodeParams pointer = ; > Register Usage: ; rsp Preserved ; All others destroyed@@ -130,= 10 > +130,9 @@ ASM_PFX(LoadMicrocodeDefault): > cmp rsp, 0 jz ParamError- mov eax, dword [rsp + 8] = ; > Parameter pointer- cmp eax, 0+ cmp ecx, 0 jz ParamError-= mov > esp, eax+ mov esp, ecx I think we do not need to modify esp because now esp/rsp only containing re= turn address initialized by caller. ; skip loading Microcode if the > MicrocodeCodeSize is zero ; and report error if size is less than 2k@@= - > 321,8 +320,7 @@ ASM_PFX(EstablishStackFsp): > ; ; Save parameter pointer in rdx ;- mov rdx, qword [rsp + = 8]-+ mov > rdx, rcx ; ; Enable FSP STACK ;@@ -420,7 +418,10 @@ > ASM_PFX(TempRamInitApi): > ; ENABLE_SSE ENABLE_AVX-+ ;+ ; Save Input Parameter in YMM10+ ;= + > SAVE_RCX ; ; Save RBP, RBX, RSI, RDI and RSP in YMM7, YMM8 and > YMM6 ;@@ -442,9 +443,8 @@ ASM_PFX(TempRamInitApi): > ; ; Check Parameter ;- mov rax, qword [rsp + 8]- cmp = rax, 0- > mov rax, 08000000000000002h+ cmp rcx, 0+ mov rcx, > 08000000000000002h jz TempRamInitExit ;@@ -455,18 +455,18 > @@ ASM_PFX(TempRamInitApi): > jnz TempRamInitExit ; Load microcode- LOAD_RSP+ LOAD_RCX > CALL_YMM ASM_PFX(LoadMicrocodeDefault) SAVE_UCODE_STATUS > rax ; Save microcode return status in SLOT 0 in YMM9 (upper > 128bits). ; @note If return value rax is not 0, microcode did not load,= but > continue and attempt to boot. ; Call Sec CAR Init- LOAD_RSP+ LOAD_RC= X > CALL_YMM ASM_PFX(SecCarInit) cmp rax, 0 jnz TempRamInitE= xit > - LOAD_RSP+ LOAD_RCX CALL_YMM ASM_PFX(EstablishStackFsp) cmp > rax, 0 jnz TempRamInitExitdiff --git > a/IntelFsp2Pkg/Include/SaveRestoreSseAvxNasm.inc > b/IntelFsp2Pkg/Include/SaveRestoreSseAvxNasm.inc > index e8bd91669d..38c807a311 100644 > --- a/IntelFsp2Pkg/Include/SaveRestoreSseAvxNasm.inc > +++ b/IntelFsp2Pkg/Include/SaveRestoreSseAvxNasm.inc > @@ -177,6 +177,30 @@ > LXMMN xmm5, %1, 1 %endmacro +;+; Upper half of > YMM10 to save/restore RCX+;+;+; Save RCX to YMM10[128:191]+; > Modified: XMM5 and YMM10+;++%macro SAVE_RCX 0+ LYMMN > ymm10, xmm5, 1+ SXMMN xmm5, 0, rcx+ SYMMN ymm10= , > 1, xmm5+ %endmacro++;+; Restore RCX from YMM10[128:191]+; > Modified: XMM5 and RCX+;++%macro LOAD_RCX 0+ LYMMN > ymm10, xmm5, 1+ movq rcx, xmm5+ %endmacro+ ; ; > YMM7[128:191] for calling stack ; arg 1:Entry@@ -231,6 +255,7 @@ > NextAddress: > ; Use CpuId instruction (CPUID.01H:EDX.SSE[bit 25] =3D 1) to > test ; whether the processor supports SSE instruction. = ;+ > mov r10, rcx mov rax, 1 cpuid = bt rdx, 25@@ - > 241,6 +266,7 @@ NextAddress: > ; bt ecx, 19 jnc SseError+ = mov rcx, > r10 ; ; Set OSFXSR bit (bit #9) & OSXMMEXCPT bit= (bit > #10)@@ -258,6 +284,7 @@ NextAddress: > %endmacro %macro ENABLE_AVX 0+ mov r10, rc= x > mov eax, 1 cpuid and ecx, 10000000h@@ -28= 0,5 +307,6 > @@ EnableAvx: > xgetbv ; result in edx:eax or = eax, 00000006h ; Set > XCR0 bit #1 and bit #2 to enable SSE state and AVX state xset= bv+ > mov rcx, r10 %endmacro -- > 2.36.0.windows.1