From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <bounce+27952+117609+7686176+12367111@groups.io>
Received: from mail03.groups.io (mail03.groups.io [45.79.227.220])
	by spool.mail.gandi.net (Postfix) with ESMTPS id 5FB32D80078
	for <rebecca@openfw.io>; Thu, 11 Apr 2024 03:14:39 +0000 (UTC)
DKIM-Signature: a=rsa-sha256; bh=oyfTszl6xOneCab+V0UjuQfhgKR6vs83dzVjF2uHJBk=;
 c=relaxed/simple; d=groups.io;
 h=From:To:CC:Subject:Thread-Topic:Thread-Index:Date:Message-ID:References:In-Reply-To:Accept-Language:msip_labels:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Resent-Date:Resent-From:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Language:Content-Type;
 s=20240206; t=1712805278; v=1;
 b=C3VNyZ9Ds9r9bMX4DOHrrOtwE9PxVPozHHvcuCVNkzX+TSe/3RKg99zU8Y+oQlrQAYnhNPkz
 wVSRTofioPWx7nRnB5pbL+W2PkbjZ6toQdcrWYaNY0HybdtOFghA8KmEagHtmXk0N01VjD93ZmM
 rbwVJ8ZIECfM2RbkW3iP6FlFfv27SWVkSPiJrXyhxbUNbs09N/y0mzTN9s39q1oSPzCNIkMPYNh
 182pe5e4s3Bzg2AluE7S/X1m476CMsVqiT8lONbb3q98gCm7mMBYsQ0PNY7af2/X5YLuIdiEoxH
 u2ApJRBt8Xo59SYIHEEl8S+aZwtYz7ZBniBaOH+2+KC9Q==
X-Received: by 127.0.0.2 with SMTP id UlXHYY7687511xdaMBeW3ljX; Wed, 10 Apr 2024 20:14:38 -0700
X-Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.14])
 by mx.groups.io with SMTP id smtpd.web11.8892.1712805277457473133
 for <devel@edk2.groups.io>;
 Wed, 10 Apr 2024 20:14:37 -0700
X-CSE-ConnectionGUID: 6VClkamHQZ28uRSMyIOCEg==
X-CSE-MsgGUID: ZyWPlfMnSWaDaIEg5e02kQ==
X-IronPort-AV: E=McAfee;i="6600,9927,11039"; a="12050940"
X-IronPort-AV: E=Sophos;i="6.07,192,1708416000"; 
   d="scan'208,217";a="12050940"
X-Received: from fmviesa003.fm.intel.com ([10.60.135.143])
  by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Apr 2024 20:14:37 -0700
X-CSE-ConnectionGUID: vGqj8H6eRM2poRBhzEEz/A==
X-CSE-MsgGUID: iFyZ3RM3SEiCf92muuqARA==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="6.07,192,1708416000"; 
   d="scan'208,217";a="25286422"
X-Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15])
  by fmviesa003.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 10 Apr 2024 20:14:37 -0700
X-Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) 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.35; Wed, 10 Apr 2024 20:14:36 -0700
X-Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by
 orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2507.35 via Frontend Transport; Wed, 10 Apr 2024 20:14:36 -0700
X-Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.169)
 by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.35; Wed, 10 Apr 2024 20:14:35 -0700
X-Received: from MN6PR11MB8244.namprd11.prod.outlook.com (2603:10b6:208:470::14)
 by IA1PR11MB6444.namprd11.prod.outlook.com (2603:10b6:208:3a7::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7452.25; Thu, 11 Apr
 2024 03:14:32 +0000
X-Received: from MN6PR11MB8244.namprd11.prod.outlook.com
 ([fe80::2c31:82b7:9f26:5817]) by MN6PR11MB8244.namprd11.prod.outlook.com
 ([fe80::2c31:82b7:9f26:5817%5]) with mapi id 15.20.7430.045; Thu, 11 Apr 2024
 03:14:32 +0000
From: "Ni, Ray" <ray.ni@intel.com>
To: "Wu, Jiaxin" <jiaxin.wu@intel.com>, "devel@edk2.groups.io"
	<devel@edk2.groups.io>
CC: "Zeng, Star" <star.zeng@intel.com>, Gerd Hoffmann <kraxel@redhat.com>,
	"Kumar, Rahul R" <rahul.r.kumar@intel.com>, "Dong, Guo" <guo.dong@intel.com>,
	"Rhodes, Sean" <sean@starlabs.systems>, "Lu, James" <james.lu@intel.com>,
	"Guo, Gua" <gua.guo@intel.com>, Ard Biesheuvel <ardb+tianocore@kernel.org>,
	"Yao, Jiewen" <jiewen.yao@intel.com>
Subject: Re: [edk2-devel] [PATCH v1 00/13] Add SmmRelocationLib
Thread-Topic: [PATCH v1 00/13] Add SmmRelocationLib
Thread-Index: AQHai08Owpp3hCTDYEGwbdCRVd1/obFiZfY+
Date: Thu, 11 Apr 2024 03:14:32 +0000
Message-ID: <MN6PR11MB8244D4C7E05776B16C8A18888C052@MN6PR11MB8244.namprd11.prod.outlook.com>
References: <20240410135724.15344-1-jiaxin.wu@intel.com>
In-Reply-To: <20240410135724.15344-1-jiaxin.wu@intel.com>
Accept-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
msip_labels: 
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: MN6PR11MB8244:EE_|IA1PR11MB6444:EE_
x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam-message-info: r0G6zAV72fOLFpMMxEuvigIG0sI1z/tGPbvE3s7CgFHy57Aftkc1MDMOelwYAbNz8HDsRQ1vLABrQjdKwv5Oe72xPKeT2jzN08YV2KgUhZH5AnCBV8mu4S0rINyViKdXQuynLyPTteVfuVwb3vY3wvRB7JbDbKY9nxq8nMYImKZIkYyy3uoIDvAJrLf/UjaOpextAxH5qm7CX6Ns+1NLIfBp88iTQwFc7XrSJLKLXcY0cfaAqjSqXEZr/xj6uK745hLgee4bNT0/WO2+ZgBDeniC0ZOT+/BzH8uB5cPo/ajM6LrE4KnLxLuOfWMUKOa/RaJRRt/0r/6Yy+whACzQO10nin4suW7s0gpUYi8OlfRejFbS4HCDifANLMbukKT554e8rEJWXO4qtW5zR1muf3BV616Fw5RwNdZk2MR/7KKPb2LD4tlZErZNFywwgyG+wi/8GH3QnRbhJ6F4IA9bGNqOdMevzhxY5LriIOxmQ8Qs7fFY0HbYw4lkAm8B98c0nUsbaYEuvzT7rNFlTwlsOw+kYcAP8QQJpg6T7s9xdCkAPADJdEXenRVjw/mvGrkSaHmSq4RXM/xae+L/gkfRX1nzAWvPFB9xwDZS7sfiFgCJxBYM36df8uwg3gzdtPBR8MZYoyqQf47tYy9GpMYu686wWldzTauwdoxPvJX1cP8=
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?NQefn0O3yI30L/ydmWwr5ZypfIBZwPNf1Y87i5dATZSHCUxsPWkUo+QQMCaj?=
 =?us-ascii?Q?tPsGReaf8u2k3+j++HeD15qCJ76apeqOkUuNJHAxBv9EbAMBpGEUeJ1fCHcs?=
 =?us-ascii?Q?JCRWGPnkxnneJtFsZpXIQbKcCfZxfuFoKyFnsANm3pi+pkqOegMZSCuS3KXh?=
 =?us-ascii?Q?Rttulcg76Rb8AuEkL3nv64tP0gcwknotpQUtfkG74Ltc+JO3VKXJpH0aBISx?=
 =?us-ascii?Q?6UK3CJVARvyr5xCy7kEMRd5qPSOz7ldgj+v/y4P053lr9uuYXc2E2SvR3Dy6?=
 =?us-ascii?Q?RjDyQmQDz26gNcRm7lfNg0Y0cVBC252VOSLr7B5n8DT2nBJ3xWOQlwuLzZvG?=
 =?us-ascii?Q?7xiUZHEGTWS/fq/Fio8gnbSPFeTwGe/+N/ii/QXM8wMkwqy6qMJe2+aEVwt+?=
 =?us-ascii?Q?bhGk7xCloQN5aRhUuJufxUMBl7PFhI7Bnft3UWfTH3WSPP3WGgWGHZedN7P7?=
 =?us-ascii?Q?ozHYqI43iIqMhIlMGbRKSqZmZ1bcZit9FIe8HL2oLOUfEgSsyAkj84tfVTiH?=
 =?us-ascii?Q?wEAQCCqjRDe161FZ9goCq+hSPLU6VpYpwDjppZayI8gV6F5pKEjHGXkPxGnz?=
 =?us-ascii?Q?l8xdvFK/BJYMPrXPPBc0sBwqcoVPD+gWXhKdWMzMMNKVBaamWqR+Xg6g8nc4?=
 =?us-ascii?Q?iMwxeQe/5WQxNZyzjicrAija6ZrNEZl+PtSvJJBhAm2golAB21gINg03K42R?=
 =?us-ascii?Q?BsWKz7gBQhFjKswoBvyS2Qjm6EB1Hn34hNUeWj0xHUN7HkTHEkKG4Pw0tbrq?=
 =?us-ascii?Q?RoEt2q5o9A0xfSoUD/3iXn60M8rSmc7ectsda3gRRp+FcfLSsC9lDqTpF5O7?=
 =?us-ascii?Q?4/DuzCD5bxRZK9nzeTeQQuMbzvN2npX1EK9eYn/p05zhanHzkBdq4hjnnbft?=
 =?us-ascii?Q?N2xH66ZmfQvC49EtaPQw0czuuLej99/Jy6VwLU0qO5ouy9WZSSrbTYaBfXbT?=
 =?us-ascii?Q?BTdCrUBG5tHdaeb7reMtkRHMQZmMmZmoqHH1WD2EJj9WJX+6ctmMyLg7q4to?=
 =?us-ascii?Q?U1sQcInWIJNw/aNssP2ZKdMfFZG0feWXoLWlYVs0MoE3GG/3nlXY2MNdqXLR?=
 =?us-ascii?Q?ccDD2+RBgfMVlGJbljoK4GB9l91jDKL6HZqXAi7FVLP5A5HwITSFNk5TjYVm?=
 =?us-ascii?Q?SWWgmlpgfXz06J4cqXY22sh6lHZGKG4gvql09zVh0mzHpDEZqbWRApPKmaKC?=
 =?us-ascii?Q?DwveVIKOSbFOXD+1Tgh8CdxNQb9D2yiGd5Y/g+wf6khMC0RHt/WFqR0pGyRy?=
 =?us-ascii?Q?+PrKHvYFPeZ8QiWiPFDNxGuuVVmLZpU7vjsSj+GPZDM1DnMFq6Etr+bhiIvx?=
 =?us-ascii?Q?pFWbZB4VNnjwplrl1BTDNzRzwk3q+WOEQn+ldIGHNR2YFd22Ia5aQeM1ThBW?=
 =?us-ascii?Q?xiWrAIYh1fX77rkzjP/H4qgxZ+Ip8nnGqGLOFPlAXT8n2DVC1doBGrJ6CeZ3?=
 =?us-ascii?Q?jtqxt1OioqDqD+npiVJwkJXDbQbXtY5FUkGO+gWUwoN8fcQ58odWtoT2fH50?=
 =?us-ascii?Q?Xs01Ni8SSfwEv8k1q3WB2NB3vOKPyPxGa3okv4qFsxnsR9BuD6Y7WOq2dg26?=
 =?us-ascii?Q?+LFWN9ddGQDzaE3OQbk=3D?=
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MN6PR11MB8244.namprd11.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 27d81dd2-2f10-4818-6d20-08dc59d5821e
X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Apr 2024 03:14:32.5363
 (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: JoiDfrOCG1AwB0P+6Z3El9uavfWqjK57StNyh1G/yvSZR+M7N9sBAfQjdnt8GGTki5xamCyu1uRn3B2jN1W+ZA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB6444
X-OriginatorOrg: intel.com
Precedence: Bulk
List-Subscribe: <mailto:devel+subscribe@edk2.groups.io>
List-Help: <mailto:devel+help@edk2.groups.io>
Sender: devel@edk2.groups.io
List-Id: <devel.edk2.groups.io>
Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io
Resent-Date: Wed, 10 Apr 2024 20:14:37 -0700
Resent-From: ray.ni@intel.com
Reply-To: devel@edk2.groups.io,ray.ni@intel.com
List-Unsubscribe-Post: List-Unsubscribe=One-Click
List-Unsubscribe: <https://edk2.groups.io/g/devel/leave/12367111/7686176/1913456212/plugh>
X-Gm-Message-State: CQokhOE0tVYcdkNIzWlZWyrAx7686176AA=
Content-Language: en-US
Content-Type: multipart/alternative;
	boundary="_000_MN6PR11MB8244D4C7E05776B16C8A18888C052MN6PR11MB8244namp_"
X-GND-Status: LEGIT
Authentication-Results: spool.mail.gandi.net;
	dkim=pass header.d=groups.io header.s=20240206 header.b=C3VNyZ9D;
	spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 45.79.227.220 as permitted sender) smtp.mailfrom=bounce@groups.io;
	dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=intel.com (policy=none)

--_000_MN6PR11MB8244D4C7E05776B16C8A18888C052MN6PR11MB8244namp_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

Jiaxin, can you kindly share a PR in GitHub so that it will be easier to re=
view?

Thanks,
Ray
________________________________
From: Wu, Jiaxin <jiaxin.wu@intel.com>
Sent: Wednesday, April 10, 2024 21:57
To: devel@edk2.groups.io <devel@edk2.groups.io>
Cc: Ni, Ray <ray.ni@intel.com>; Zeng, Star <star.zeng@intel.com>; Gerd Hoff=
mann <kraxel@redhat.com>; Kumar, Rahul R <rahul.r.kumar@intel.com>; Dong, G=
uo <guo.dong@intel.com>; Rhodes, Sean <sean@starlabs.systems>; Lu, James <j=
ames.lu@intel.com>; Guo, Gua <gua.guo@intel.com>; Ard Biesheuvel <ardb+tian=
ocore@kernel.org>; Yao, Jiewen <jiewen.yao@intel.com>
Subject: [PATCH v1 00/13] Add SmmRelocationLib

Intel plans to separate the smbase relocation logic from
PiSmmCpuDxeSmm driver, and the related behavior will be
moved to the new interface defined by the SmmRelocationLib
class.

The SmmRelocationLib class provides the SmmRelocationInit()
interface for platform to do the smbase relocation, which
shall provide below 2 functionalities:
1. Relocate smbases for each processor.
2. Create the gSmmBaseHobGuid HOB.

With SmmRelocationLib, PiSmmCpuDxeSmm driver (which runs at
a later phase) can be simplfied as below for SMM init:
1. Consume the gSmmBaseHobGuid HOB for the relocated smbases
for each Processor.
2. Execute the early SMM Init.

Cc: Ray Ni <ray.ni@intel.com>
Cc: Zeng Star <star.zeng@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Guo Dong <guo.dong@intel.com>
Cc: Sean Rhodes <sean@starlabs.systems>
Cc: James Lu <james.lu@intel.com>
Cc: Gua Guo <gua.guo@intel.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Signed-off-by: Jiaxin Wu <jiaxin.wu@intel.com>

Jiaxin Wu (13):
  UefiCpuPkg: Add SmmRelocationLib class
  UefiCpuPkg/SmmRelocationLib: Add SmmRelocationLib library instance
  UefiCpuPkg/SmmRelocationLib: Add library instance for OVMF
  UefiCpuPkg/SmmRelocationLib: Add library instance for AMD
  UefiCpuPkg/UefiCpuPkg.dsc: Include SmmRelocationLib in UefiCpuPkg
  UefiPayloadPkg/UefiPayloadPkg.dsc: Include SmmRelocationLib
  OvmfPkg: Include SmmRelocationLib in OvmfPkg
  OvmfPkg/PlatformInitLib: Create gEfiSmmSmramMemoryGuid
  OvmfPkg/SmmAccess: Consume gEfiSmmSmramMemoryGuid
  OvmfPkg/PlatformInitLib: Create gEfiAcpiVariableGuid
  OvmfPkg/SmmCpuFeaturesLib: Check Smbase Relocation is done or not
  OvmfPkg/PlatformPei: Relocate SmBases in PEI phase
  UefiCpuPkg/PiSmmCpuDxeSmm: Remove SmBases relocation logic

 OvmfPkg/AmdSev/AmdSevX64.dsc                       |   1 +
 OvmfPkg/CloudHv/CloudHvX64.dsc                     |   1 +
 OvmfPkg/Library/PlatformInitLib/MemDetect.c        | 104 ++--
 .../Library/PlatformInitLib/PlatformInitLib.inf    |   6 +-
 .../Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.c  |  33 +-
 OvmfPkg/Microvm/MicrovmX64.dsc                     |   1 +
 OvmfPkg/OvmfPkgIa32.dsc                            |   1 +
 OvmfPkg/OvmfPkgIa32X64.dsc                         |   1 +
 OvmfPkg/OvmfPkgX64.dsc                             |   1 +
 OvmfPkg/PlatformPei/Platform.c                     |   1 +
 OvmfPkg/PlatformPei/Platform.h                     |   5 +
 OvmfPkg/PlatformPei/PlatformPei.inf                |   5 +-
 OvmfPkg/PlatformPei/SmmRelocation.c                |  80 +++
 OvmfPkg/SmmAccess/SmmAccess2Dxe.c                  |   4 +-
 OvmfPkg/SmmAccess/SmmAccess2Dxe.inf                |   5 +
 OvmfPkg/SmmAccess/SmmAccessPei.c                   |  88 +--
 OvmfPkg/SmmAccess/SmmAccessPei.inf                 |   7 +-
 OvmfPkg/SmmAccess/SmramInternal.c                  |  73 +--
 OvmfPkg/SmmAccess/SmramInternal.h                  |  18 +-
 UefiCpuPkg/Include/Library/SmmRelocationLib.h      |  42 ++
 .../SmmRelocationLib/AmdSmmRelocationLib.inf       |  61 ++
 .../SmmRelocationLib/AmdSmramSaveStateConfig.c     | 109 ++++
 .../SmmRelocationLib}/Ia32/Semaphore.c             |  13 +-
 .../Library/SmmRelocationLib/Ia32/SmmInit.nasm     | 157 +++++
 .../SmmRelocationLib/InternalSmmRelocationLib.h    | 141 +++++
 .../SmmRelocationLib/OvmfSmmRelocationLib.inf      |  61 ++
 .../SmmRelocationLib/OvmfSmramSaveStateConfig.c    | 107 ++++
 .../Library/SmmRelocationLib/SmmRelocationLib.c    | 659 +++++++++++++++++=
++++
 .../Library/SmmRelocationLib/SmmRelocationLib.inf  |  61 ++
 .../SmmRelocationLib/SmramSaveStateConfig.c        |  91 +++
 .../SmmRelocationLib}/X64/Semaphore.c              |  13 +-
 .../SmmRelocationLib}/X64/SmmInit.nasm             |  93 ++-
 UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c                  |  21 +-
 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmInit.nasm        |  96 ---
 UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c              |   6 +-
 UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c         | 322 +---------
 UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h         |  98 ---
 UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf       |   4 -
 UefiCpuPkg/PiSmmCpuDxeSmm/SmramSaveState.c         |  69 ---
 UefiCpuPkg/UefiCpuPkg.dec                          |   3 +
 UefiCpuPkg/UefiCpuPkg.dsc                          |   3 +
 UefiPayloadPkg/UefiPayloadPkg.dsc                  |   2 +
 42 files changed, 1850 insertions(+), 817 deletions(-)
 create mode 100644 OvmfPkg/PlatformPei/SmmRelocation.c
 create mode 100644 UefiCpuPkg/Include/Library/SmmRelocationLib.h
 create mode 100644 UefiCpuPkg/Library/SmmRelocationLib/AmdSmmRelocationLib=
.inf
 create mode 100644 UefiCpuPkg/Library/SmmRelocationLib/AmdSmramSaveStateCo=
nfig.c
 rename UefiCpuPkg/{PiSmmCpuDxeSmm =3D> Library/SmmRelocationLib}/Ia32/Sema=
phore.c (72%)
 create mode 100644 UefiCpuPkg/Library/SmmRelocationLib/Ia32/SmmInit.nasm
 create mode 100644 UefiCpuPkg/Library/SmmRelocationLib/InternalSmmRelocati=
onLib.h
 create mode 100644 UefiCpuPkg/Library/SmmRelocationLib/OvmfSmmRelocationLi=
b.inf
 create mode 100644 UefiCpuPkg/Library/SmmRelocationLib/OvmfSmramSaveStateC=
onfig.c
 create mode 100644 UefiCpuPkg/Library/SmmRelocationLib/SmmRelocationLib.c
 create mode 100644 UefiCpuPkg/Library/SmmRelocationLib/SmmRelocationLib.in=
f
 create mode 100644 UefiCpuPkg/Library/SmmRelocationLib/SmramSaveStateConfi=
g.c
 rename UefiCpuPkg/{PiSmmCpuDxeSmm =3D> Library/SmmRelocationLib}/X64/Semap=
hore.c (78%)
 rename UefiCpuPkg/{PiSmmCpuDxeSmm =3D> Library/SmmRelocationLib}/X64/SmmIn=
it.nasm (57%)
 delete mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmInit.nasm

--
2.16.2.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 (#117609): https://edk2.groups.io/g/devel/message/117609
Mute This Topic: https://groups.io/mt/105441987/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-



--_000_MN6PR11MB8244D4C7E05776B16C8A18888C052MN6PR11MB8244namp_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div class=3D"elementToProof" style=3D"font-family: Aptos, Aptos_EmbeddedFo=
nt, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; c=
olor: rgb(0, 0, 0);">
Jiaxin, can you kindly share a PR in GitHub so that it will be easier to re=
view?</div>
<div class=3D"elementToProof" style=3D"font-family: Aptos, Aptos_EmbeddedFo=
nt, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; c=
olor: rgb(0, 0, 0);">
<br>
</div>
<div id=3D"Signature">
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Thanks,</div>
<div style=3D"font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, =
Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Ray</div>
</div>
<div id=3D"appendonsend"></div>
<hr style=3D"display:inline-block;width:98%" tabindex=3D"-1">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" st=
yle=3D"font-size:11pt" color=3D"#000000"><b>From:</b> Wu, Jiaxin &lt;jiaxin=
.wu@intel.com&gt;<br>
<b>Sent:</b> Wednesday, April 10, 2024 21:57<br>
<b>To:</b> devel@edk2.groups.io &lt;devel@edk2.groups.io&gt;<br>
<b>Cc:</b> Ni, Ray &lt;ray.ni@intel.com&gt;; Zeng, Star &lt;star.zeng@intel=
.com&gt;; Gerd Hoffmann &lt;kraxel@redhat.com&gt;; Kumar, Rahul R &lt;rahul=
.r.kumar@intel.com&gt;; Dong, Guo &lt;guo.dong@intel.com&gt;; Rhodes, Sean =
&lt;sean@starlabs.systems&gt;; Lu, James &lt;james.lu@intel.com&gt;; Guo,
 Gua &lt;gua.guo@intel.com&gt;; Ard Biesheuvel &lt;ardb+tianocore@kernel.or=
g&gt;; Yao, Jiewen &lt;jiewen.yao@intel.com&gt;<br>
<b>Subject:</b> [PATCH v1 00/13] Add SmmRelocationLib</font>
<div>&nbsp;</div>
</div>
<div class=3D"BodyFragment"><font size=3D"2"><span style=3D"font-size:11pt;=
">
<div class=3D"PlainText">Intel plans to separate the smbase relocation logi=
c from<br>
PiSmmCpuDxeSmm driver, and the related behavior will be<br>
moved to the new interface defined by the SmmRelocationLib<br>
class.<br>
<br>
The SmmRelocationLib class provides the SmmRelocationInit()<br>
interface for platform to do the smbase relocation, which<br>
shall provide below 2 functionalities:<br>
1. Relocate smbases for each processor.<br>
2. Create the gSmmBaseHobGuid HOB.<br>
<br>
With SmmRelocationLib, PiSmmCpuDxeSmm driver (which runs at<br>
a later phase) can be simplfied as below for SMM init:<br>
1. Consume the gSmmBaseHobGuid HOB for the relocated smbases<br>
for each Processor.<br>
2. Execute the early SMM Init.<br>
<br>
Cc: Ray Ni &lt;ray.ni@intel.com&gt;<br>
Cc: Zeng Star &lt;star.zeng@intel.com&gt;<br>
Cc: Gerd Hoffmann &lt;kraxel@redhat.com&gt;<br>
Cc: Rahul Kumar &lt;rahul1.kumar@intel.com&gt;<br>
Cc: Guo Dong &lt;guo.dong@intel.com&gt;<br>
Cc: Sean Rhodes &lt;sean@starlabs.systems&gt;<br>
Cc: James Lu &lt;james.lu@intel.com&gt;<br>
Cc: Gua Guo &lt;gua.guo@intel.com&gt;<br>
Cc: Ard Biesheuvel &lt;ardb+tianocore@kernel.org&gt;<br>
Cc: Jiewen Yao &lt;jiewen.yao@intel.com&gt;<br>
Signed-off-by: Jiaxin Wu &lt;jiaxin.wu@intel.com&gt;<br>
<br>
Jiaxin Wu (13):<br>
&nbsp; UefiCpuPkg: Add SmmRelocationLib class<br>
&nbsp; UefiCpuPkg/SmmRelocationLib: Add SmmRelocationLib library instance<b=
r>
&nbsp; UefiCpuPkg/SmmRelocationLib: Add library instance for OVMF<br>
&nbsp; UefiCpuPkg/SmmRelocationLib: Add library instance for AMD<br>
&nbsp; UefiCpuPkg/UefiCpuPkg.dsc: Include SmmRelocationLib in UefiCpuPkg<br=
>
&nbsp; UefiPayloadPkg/UefiPayloadPkg.dsc: Include SmmRelocationLib<br>
&nbsp; OvmfPkg: Include SmmRelocationLib in OvmfPkg<br>
&nbsp; OvmfPkg/PlatformInitLib: Create gEfiSmmSmramMemoryGuid<br>
&nbsp; OvmfPkg/SmmAccess: Consume gEfiSmmSmramMemoryGuid<br>
&nbsp; OvmfPkg/PlatformInitLib: Create gEfiAcpiVariableGuid<br>
&nbsp; OvmfPkg/SmmCpuFeaturesLib: Check Smbase Relocation is done or not<br=
>
&nbsp; OvmfPkg/PlatformPei: Relocate SmBases in PEI phase<br>
&nbsp; UefiCpuPkg/PiSmmCpuDxeSmm: Remove SmBases relocation logic<br>
<br>
&nbsp;OvmfPkg/AmdSev/AmdSevX64.dsc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp; |&nbsp;&nbsp; 1 +<br>
&nbsp;OvmfPkg/CloudHv/CloudHvX64.dsc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp; |&nbsp;&nbsp; 1 +<br>
&nbsp;OvmfPkg/Library/PlatformInitLib/MemDetect.c&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp; | 104 ++--<br>
&nbsp;.../Library/PlatformInitLib/PlatformInitLib.inf&nbsp;&nbsp;&nbsp; |&n=
bsp;&nbsp; 6 +-<br>
&nbsp;.../Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.c&nbsp; |&nbsp; 33 +-=
<br>
&nbsp;OvmfPkg/Microvm/MicrovmX64.dsc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp; |&nbsp;&nbsp; 1 +<br>
&nbsp;OvmfPkg/OvmfPkgIa32.dsc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 1 +<br>
&nbsp;OvmfPkg/OvmfPkgIa32X64.dsc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 1 +<br>
&nbsp;OvmfPkg/OvmfPkgX64.dsc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 1 +<br>
&nbsp;OvmfPkg/PlatformPei/Platform.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp; |&nbsp;&nbsp; 1 +<br>
&nbsp;OvmfPkg/PlatformPei/Platform.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp; |&nbsp;&nbsp; 5 +<br>
&nbsp;OvmfPkg/PlatformPei/PlatformPei.inf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 5 +-=
<br>
&nbsp;OvmfPkg/PlatformPei/SmmRelocation.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 80 +++<br>
&nbsp;OvmfPkg/SmmAccess/SmmAccess2Dxe.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&=
nbsp; 4 +-<br>
&nbsp;OvmfPkg/SmmAccess/SmmAccess2Dxe.inf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 5 +<=
br>
&nbsp;OvmfPkg/SmmAccess/SmmAccessPei.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&n=
bsp; 88 +--<br>
&nbsp;OvmfPkg/SmmAccess/SmmAccessPei.inf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;=
 7 +-<br>
&nbsp;OvmfPkg/SmmAccess/SmramInternal.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; =
73 +--<br>
&nbsp;OvmfPkg/SmmAccess/SmramInternal.h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; =
18 +-<br>
&nbsp;UefiCpuPkg/Include/Library/SmmRelocationLib.h&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp; |&nbsp; 42 ++<br>
&nbsp;.../SmmRelocationLib/AmdSmmRelocationLib.inf&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp; |&nbsp; 61 ++<br>
&nbsp;.../SmmRelocationLib/AmdSmramSaveStateConfig.c&nbsp;&nbsp;&nbsp;&nbsp=
; | 109 ++++<br>
&nbsp;.../SmmRelocationLib}/Ia32/Semaphore.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 13 +-<br>
&nbsp;.../Library/SmmRelocationLib/Ia32/SmmInit.nasm&nbsp;&nbsp;&nbsp;&nbsp=
; | 157 +++++<br>
&nbsp;.../SmmRelocationLib/InternalSmmRelocationLib.h&nbsp;&nbsp;&nbsp; | 1=
41 +++++<br>
&nbsp;.../SmmRelocationLib/OvmfSmmRelocationLib.inf&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp; |&nbsp; 61 ++<br>
&nbsp;.../SmmRelocationLib/OvmfSmramSaveStateConfig.c&nbsp;&nbsp;&nbsp; | 1=
07 ++++<br>
&nbsp;.../Library/SmmRelocationLib/SmmRelocationLib.c&nbsp;&nbsp;&nbsp; | 6=
59 +++++++++++++++++++++<br>
&nbsp;.../Library/SmmRelocationLib/SmmRelocationLib.inf&nbsp; |&nbsp; 61 ++=
<br>
&nbsp;.../SmmRelocationLib/SmramSaveStateConfig.c&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp; |&nbsp; 91 +++<br>
&nbsp;.../SmmRelocationLib}/X64/Semaphore.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 13 +-<br>
&nbsp;.../SmmRelocationLib}/X64/SmmInit.nasm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 93 ++-<br>
&nbsp;UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; =
21 +-<br>
&nbsp;UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmInit.nasm&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp; |&nbsp; 96 ---<br>
&nbsp;UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 6 +-<br>
&nbsp;UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; | 322 +---------<br>
&nbsp;UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; 98 ---<br>
&nbsp;UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp; |&nbsp;&nbsp; 4 -<br>
&nbsp;UefiCpuPkg/PiSmmCpuDxeSmm/SmramSaveState.c&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp; |&nbsp; 69 ---<br>
&nbsp;UefiCpuPkg/UefiCpuPkg.dec&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 3 +<br>
&nbsp;UefiCpuPkg/UefiCpuPkg.dsc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 3 +<br>
&nbsp;UefiPayloadPkg/UefiPayloadPkg.dsc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&=
nbsp; 2 +<br>
&nbsp;42 files changed, 1850 insertions(+), 817 deletions(-)<br>
&nbsp;create mode 100644 OvmfPkg/PlatformPei/SmmRelocation.c<br>
&nbsp;create mode 100644 UefiCpuPkg/Include/Library/SmmRelocationLib.h<br>
&nbsp;create mode 100644 UefiCpuPkg/Library/SmmRelocationLib/AmdSmmRelocati=
onLib.inf<br>
&nbsp;create mode 100644 UefiCpuPkg/Library/SmmRelocationLib/AmdSmramSaveSt=
ateConfig.c<br>
&nbsp;rename UefiCpuPkg/{PiSmmCpuDxeSmm =3D&gt; Library/SmmRelocationLib}/I=
a32/Semaphore.c (72%)<br>
&nbsp;create mode 100644 UefiCpuPkg/Library/SmmRelocationLib/Ia32/SmmInit.n=
asm<br>
&nbsp;create mode 100644 UefiCpuPkg/Library/SmmRelocationLib/InternalSmmRel=
ocationLib.h<br>
&nbsp;create mode 100644 UefiCpuPkg/Library/SmmRelocationLib/OvmfSmmRelocat=
ionLib.inf<br>
&nbsp;create mode 100644 UefiCpuPkg/Library/SmmRelocationLib/OvmfSmramSaveS=
tateConfig.c<br>
&nbsp;create mode 100644 UefiCpuPkg/Library/SmmRelocationLib/SmmRelocationL=
ib.c<br>
&nbsp;create mode 100644 UefiCpuPkg/Library/SmmRelocationLib/SmmRelocationL=
ib.inf<br>
&nbsp;create mode 100644 UefiCpuPkg/Library/SmmRelocationLib/SmramSaveState=
Config.c<br>
&nbsp;rename UefiCpuPkg/{PiSmmCpuDxeSmm =3D&gt; Library/SmmRelocationLib}/X=
64/Semaphore.c (78%)<br>
&nbsp;rename UefiCpuPkg/{PiSmmCpuDxeSmm =3D&gt; Library/SmmRelocationLib}/X=
64/SmmInit.nasm (57%)<br>
&nbsp;delete mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmInit.nasm<br>
<br>
-- <br>
2.16.2.windows.1<br>
<br>
</div>
</span></font></div>
</body>
</html>


<div width=3D"1" style=3D"color:white;clear:both">_._,_._,_</div>
<hr>


Groups.io Links:<p>


 =20
    You receive all messages sent to this group.
 =20
 =20


<p>
<a target=3D"_blank" href=3D"https://edk2.groups.io/g/devel/message/117609"=
>View/Reply Online (#117609)</a> |


 =20

|

  <a target=3D"_blank" href=3D"https://groups.io/mt/105441987/7686176">Mute=
 This Topic</a>


| <a href=3D"https://edk2.groups.io/g/devel/post">New Topic</a>

<br>




<a href=3D"https://edk2.groups.io/g/devel/editsub/7686176">Your Subscriptio=
n</a> |
<a href=3D"mailto:devel+owner@edk2.groups.io">Contact Group Owner</a> |

<a href=3D"https://edk2.groups.io/g/devel/unsub">Unsubscribe</a>

 [rebecca@openfw.io]<br>
<div width=3D"1" style=3D"color:white;clear:both">_._,_._,_</div>


--_000_MN6PR11MB8244D4C7E05776B16C8A18888C052MN6PR11MB8244namp_--