Michael, I agree with your thoughts to consolidate the lib header and implementation to IntelSiliconPkg. I didn't read the different implementations. But the implementation consolidation means you see all the existing implementations are the same. Right?
But why don't you put the driver in IntelSiliconPkg as well? Creating an advanced feature for this fundamental service seems over-kill. Thanks, Ray > -----Original Message----- > From: Chaganty, Rangasai V <rangasai.v.chaga...@intel.com> > Sent: Monday, March 1, 2021 4:46 PM > To: Ni, Ray <ray...@intel.com> > Subject: RE: [edk2-platforms][RFC] SpiFlashCommonLib Refactor > > Did you get a chance to look into this ? > > -----Original Message----- > From: Michael Kubacki <mikub...@linux.microsoft.com> > Sent: Tuesday, February 16, 2021 4:58 PM > To: devel@edk2.groups.io; Ni, Ray <ray...@intel.com>; Chaganty, Rangasai V > <rangasai.v.chaga...@intel.com>; Chiu, Chasel > <chasel.c...@intel.com>; Desimone, Nathaniel L > <nathaniel.l.desim...@intel.com>; Luo, Heng <heng....@intel.com>; > Agyeman, Prince <prince.agye...@intel.com>; gaolim...@byosoft.com.cn; Dong, > Eric <eric.d...@intel.com> > Subject: [edk2-platforms][RFC] SpiFlashCommonLib Refactor > > Hello, > > I'm planning to submit support for Standalone MM in SpiFlashCommonLib soon. > Currently, there's quite a bit of duplication with > SpiFlashCommonLib. > > I would like to have this Standalone MM support be available in as consistent > of a location as possible so I'd like to see if there is > anything I can do to help clean this up in the early part of the patch series. > > > The library interface is currently defined in the following header files: > > 1. Platform\Intel\MinPlatformPkg\Include\Library\SpiFlashCommonLib.h > > 2. Silicon\Intel\SimicsIch10Pkg\Include\Library\SpiFlashCommonLib.h > > 3. Silicon\Intel\KabylakeSiliconPkg\Pch\Include\Library\SpiFlashCommonLib.h > > 4. > Silicon\Intel\CoffeelakeSiliconPkg\Pch\Include\Library\SpiFlashCommonLib.h > > > Instances of SmmSpiFlashCommonLib implementation exist in a mix of platform > and silicon packages: > > 1. > Silicon\Intel\SimicsIch10Pkg\Library\SmmSpiFlashCommonLib\SmmSpiFlashCommonLib.inf > > 2. > Platform\Intel\TigerlakeOpenBoardPkg\Library\SmmSpiFlashCommonLib\SmmSpiFlashCommonLib.inf > > 3. > Silicon\Intel\KabylakeSiliconPkg\Pch\Library\SmmSpiFlashCommonLib\SmmSpiFlashCommonLib.inf > > 4. > Silicon\Intel\CoffeelakeSiliconPkg\Pch\Library\SmmSpiFlashCommonLib\SmmSpiFlashCommonLib.inf > > 5. > Platform\Intel\MinPlatformPkg\Flash\Library\SpiFlashCommonLibNull\SpiFlashCommonLibNull.inf > > > The library class is currently consumed in the following INFs: > > 1. Platform\Intel\MinPlatformPkg\Flash\SpiFvbService\SpiFvbServiceSmm.inf > > 2. > Platform\Intel\MinPlatformPkg\Flash\SpiFvbService\SpiFvbServiceStandaloneMm.inf > > > My understanding is: > > 1. The header file is defined in each silicon package because silicon cannot > depend upon platform (i.e. the MinPlatformPkg > header). > > 2. The header is present in each silicon package because the implementation > is silicon-specific and these packages cannot > depend on one another. > > 3. The header is defined in MinPlatformPkg because MinPlatformPkg should be > silicon vendor agnostic (cannot depend on the > silicon packages). > > 4. The header is needed in MinPlatformPkg because the SpiFvbService there > depends on SPI flash operations implemented in > SpiFlashCommonLib. > > > Here's an initial proposal: > > 1. Consolidate the library interface into a single header. In > IntelSiliconPkg? > > 2. Consolidate library implementation into a single instance. In > IntelSiliconPkg? > > 3. Move SpiFvbServiceXyz out of MinPlatformPkg. > 3.a. Make a "SPI flash" feature? > 3.b. Allow the Intel implementation of this feature to depend on > SpiFlashCommonLib defined in IntelSiliconPkg. > > Intel board packages could then use the SpiFlashCommonLib from > IntelSiliconPkg (a generation specific instance could be created if > needed) and use the SpiFvbServiceXyz driver from the "SpiFlash" feature. > > Look forward to your thoughts and feedback. > > Thanks, > Michael -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#72270): https://edk2.groups.io/g/devel/message/72270 Mute This Topic: https://groups.io/mt/80694124/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-