From mboxrd@z Thu Jan 1 00:00:00 1970 Subject: Re: [edk2-devel] [edk2-platforms][PATCH v1 1/1] IntelSiliconPkg: Add BaseSmmAccessLibNull To: Ni, Ray ,devel@edk2.groups.io From: "Michael Kubacki" X-Originating-Location: Sarasota, Florida, US (73.27.179.174) X-Originating-Platform: Windows Chrome 92 User-Agent: GROUPS.IO Web Poster MIME-Version: 1.0 Date: Thu, 12 Aug 2021 19:16:04 -0700 References: In-Reply-To: Message-ID: <28423.1628820964257783330@groups.io> Content-Type: multipart/alternative; boundary="AZIOWnXKj6nDEa2NH3Yf" --AZIOWnXKj6nDEa2NH3Yf Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sure. Scenario #1: MinPlatformPkg/PlatformInit/PlatformInitPei/PlatformInitPreMem.inf and MinP= latormPkg/PlatformInit/PlatformInitPei/PlatformInitPostMem.inf both link ag= ainst an instance of BoardInitLib. Many boards link against a single BoardInitLib instance. See example - http= s://github.com/tianocore/edk2-platforms/blob/cd4e6b716c7d1bcde94035e7dce14b= 53a553e103/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/OpenBoardPkg.ds= c#L203 That BoardInitLib instance may link against SmmAccessLib. PlatformInitPreMe= m may wish to library class override the SmmAccessLib to the NULL instance = while keeping it to non-NULL instance in PlatformInitPostMem. Scenario #2: A PEIM is built that checks whether the boot mode is S3. If so, it calls Pe= iInstallSmmAccessPpi(). A particular platform does not support S3, therefor= e, it links BaseSmmAccessLibNull as its library instance for SmmAccessLib. --AZIOWnXKj6nDEa2NH3Yf Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Sure.

Scenario #1:

MinPlatformPkg/PlatformInit/Platfo= rmInitPei/PlatformInitPreMem.inf and MinPlatormPkg/PlatformInit/PlatformIni= tPei/PlatformInitPostMem.inf both link against an instance of BoardInitLib.=

Many boards link against a single BoardInitLib instance. See ex= ample - https://github.com/tianocore/edk2-platforms/blob/cd4e6b716c7d1bcde9= 4035e7dce14b53a553e103/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Ope= nBoardPkg.dsc#L203

That BoardInitLib instance may link against S= mmAccessLib. PlatformInitPreMem may wish to library class override the SmmA= ccessLib to the NULL instance while keeping it to non-NULL instance in Plat= formInitPostMem.

Scenario #2:

A PEIM is built that ch= ecks whether the boot mode is S3. If so, it calls PeiInstallSmmAccessPpi().= A particular platform does not support S3, therefore, it links BaseSmmAcce= ssLibNull as its library instance for SmmAccessLib. --AZIOWnXKj6nDEa2NH3Yf--