Reviewed-by: Nate DeSimone <nathaniel.l.desim...@intel.com> > -----Original Message----- > From: Oram, Isaac W <isaac.w.o...@intel.com> > Sent: Friday, October 15, 2021 2:25 PM > To: devel@edk2.groups.io > Cc: Desimone, Nathaniel L <nathaniel.l.desim...@intel.com>; Chiu, Chasel > <chasel.c...@intel.com> > Subject: [edk2-devel][edk2-platforms][PATCH V1 06/11] > WhitleyOpenBoardPkg/ReportFvLib: Add board support for custom MM FV > > ReportFvLib added a new fuction for boards to communicate MM required > FV The custom instance allows Whitley boards to publish an FV for WHEA > use. > Also fixed duplicate GUID library name. > > Cc: Nate DeSimone <nathaniel.l.desim...@intel.com> > Cc: Chasel Chiu <chasel.c...@intel.com> > Signed-off-by: Isaac Oram <isaac.w.o...@intel.com> > --- > > Platform/Intel/WhitleyOpenBoardPkg/Library/ReportFvLib/ReportFvLibMm. > c | 61 ++++++++++++++++++++ > > Platform/Intel/WhitleyOpenBoardPkg/Library/ReportFvLib/ReportFvLibMm.i > nf | 36 ++++++++++++ > > Platform/Intel/WhitleyOpenBoardPkg/Library/{PeiReportFvLib/PeiReportFvL > ib.c => ReportFvLib/ReportFvLibPei.c} | 4 +- > > Platform/Intel/WhitleyOpenBoardPkg/Library/{PeiReportFvLib/PeiReportFvL > ib.inf => ReportFvLib/ReportFvLibPei.inf} | 12 ++-- > Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc > | 4 +- > 5 files changed, 110 insertions(+), 7 deletions(-) > > diff --git > a/Platform/Intel/WhitleyOpenBoardPkg/Library/ReportFvLib/ReportFvLibM > m.c > b/Platform/Intel/WhitleyOpenBoardPkg/Library/ReportFvLib/ReportFvLibM > m.c > new file mode 100644 > index 0000000000..0cae9a7b25 > --- /dev/null > +++ > b/Platform/Intel/WhitleyOpenBoardPkg/Library/ReportFvLib/ReportFvLib > +++ Mm.c > @@ -0,0 +1,61 @@ > +/** @file ReportFvLib.c > + Source code file for Report Firmware Volume (FV) library management > +mode functionality > + > + ReportPreMemFv (); is not supported by this libary instance > + ReportPostMemFv (); is not supported by this libary instance > + > + Copyright (c) 2021, Intel Corporation. All rights reserved.<BR> > + > + SPDX-License-Identifier: BSD-2-Clause-Patent **/ > + > +#include <Base.h> > +#include <Library/DebugLib.h> > +#include <Library/ReportFvLib.h> > +#include <Guid/FirmwareFileSystem2.h> > +#include <Ppi/FirmwareVolumeInfo2.h> > + > +// > +// This platform driver knows there are multiple FVs on FD. > +// Variable region and MicroCode region are required. > +// WHEA region is optional. If size is zero this will not be published. > +// > +FV_INFO mBoardFvInfoTable[] = { > + {0, 0}, // {PcdGet32 (PcdFlashNvStorageVariableBase), PcdGet32 > +(PcdFlashNvStorageVariableSize)}, > + {0, 0}, // {PcdGet32 (PcdFlashFvMicrocodeBase), PcdGet32 > +(PcdFlashFvMicrocodeSize)}, > + {0, 0}, // {PcdGet32 (PcdFlashFvWheaBase), PcdGet32 > +(PcdFlashFvWheaSize)}, > + {0, 0} > +}; > + > +/* > + Return the firmware volumes that are needed for MM functionality. > + NV storage and microcode FV are required. > + WHEA FV is optional and only added if Base and Size are non-zero. > + > + @param FvInfoTable Pointer to table of FV to be published > + > + @return VOID > +*/ > +VOID > +ReportMmFv ( > + FV_INFO **FvInfoTable > + ) > +{ > + mBoardFvInfoTable[0].FvBase = PcdGet32 > +(PcdFlashNvStorageVariableBase); > + mBoardFvInfoTable[0].FvSize = PcdGet32 > +(PcdFlashNvStorageVariableSize); > + mBoardFvInfoTable[1].FvBase = PcdGet32 (PcdFlashFvMicrocodeBase); > + mBoardFvInfoTable[1].FvSize = PcdGet32 (PcdFlashFvMicrocodeSize); > + > + if ((PcdGet32 (PcdFlashFvWheaBase) != 0) && (PcdGet32 > (PcdFlashFvWheaSize) != 0)) { > + mBoardFvInfoTable[2].FvBase = PcdGet32 (PcdFlashFvWheaBase); > + mBoardFvInfoTable[2].FvSize = PcdGet32 (PcdFlashFvWheaSize); } > + > + DEBUG ((DEBUG_INFO, "MM FvInfo Table:\nNvStorageVariableBase > + 0x%X\nMicrocodeBase 0x%X\nWheaBase 0x%X\n", > + mBoardFvInfoTable[0].FvBase, mBoardFvInfoTable[1].FvBase, > + mBoardFvInfoTable[2].FvBase)); ASSERT (mBoardFvInfoTable[0].FvBase != > + 0); ASSERT (mBoardFvInfoTable[0].FvSize != 0); ASSERT > + (mBoardFvInfoTable[1].FvBase != 0); ASSERT > + (mBoardFvInfoTable[1].FvSize != 0); > + > + *FvInfoTable = &mBoardFvInfoTable[0]; } > diff --git > a/Platform/Intel/WhitleyOpenBoardPkg/Library/ReportFvLib/ReportFvLibM > m.inf > b/Platform/Intel/WhitleyOpenBoardPkg/Library/ReportFvLib/ReportFvLibM > m.inf > new file mode 100644 > index 0000000000..b37da2ab4b > --- /dev/null > +++ > b/Platform/Intel/WhitleyOpenBoardPkg/Library/ReportFvLib/ReportFvLib > +++ Mm.inf > @@ -0,0 +1,36 @@ > +### @file > +# Component information file for the Report Firmware Volume (FV) library. > +# > +# Copyright (c) 2018 - 2021, Intel Corporation. All rights > +reserved.<BR> # # SPDX-License-Identifier: BSD-2-Clause-Patent # ### > + > +[Defines] > + INF_VERSION = 0x00010017 > + BASE_NAME = ReportFvLibMm > + FILE_GUID = 0fcf4819-09e4-43fb-b597-4db80df14d88 > + VERSION_STRING = 1.0 > + MODULE_TYPE = BASE > + LIBRARY_CLASS = ReportFvLib | DXE_SMM_DRIVER > MM_STANDALONE > + > +[LibraryClasses] > + DebugLib > + > +[Packages] > + MdePkg/MdePkg.dec > + MdeModulePkg/MdeModulePkg.dec > + MinPlatformPkg/MinPlatformPkg.dec > + WhitleyOpenBoardPkg/PlatformPkg.dec > + > +[Sources] > + ReportFvLibMm.c > + > +[Pcd] > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase ## > CONSUMES > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize ## > CONSUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvMicrocodeBase ## > CONSUMES > + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvMicrocodeSize ## > CONSUMES > + gCpPlatFlashTokenSpaceGuid.PcdFlashFvWheaBase ## > CONSUMES > + gCpPlatFlashTokenSpaceGuid.PcdFlashFvWheaSize ## > CONSUMES > diff --git > a/Platform/Intel/WhitleyOpenBoardPkg/Library/PeiReportFvLib/PeiReportF > vLib.c > b/Platform/Intel/WhitleyOpenBoardPkg/Library/ReportFvLib/ReportFvLibPei > .c > similarity index 96% > rename from > Platform/Intel/WhitleyOpenBoardPkg/Library/PeiReportFvLib/PeiReportFvLi > b.c > rename to > Platform/Intel/WhitleyOpenBoardPkg/Library/ReportFvLib/ReportFvLibPei.c > index f0230642d2..f916b352e5 100644 > --- > a/Platform/Intel/WhitleyOpenBoardPkg/Library/PeiReportFvLib/PeiReportF > vLib.c > +++ > b/Platform/Intel/WhitleyOpenBoardPkg/Library/ReportFvLib/ReportFvLib > +++ Pei.c > @@ -1,6 +1,8 @@ > -/** @file PeiReportFvLib.c > +/** @file ReportFvLib.c > Source code file for Report Firmware Volume (FV) library > > + ReportMmFv (); is not supported in this library instance > + > Copyright (c) 2018 - 2021, Intel Corporation. All rights reserved.<BR> > > SPDX-License-Identifier: BSD-2-Clause-Patent diff --git > a/Platform/Intel/WhitleyOpenBoardPkg/Library/PeiReportFvLib/PeiReportF > vLib.inf > b/Platform/Intel/WhitleyOpenBoardPkg/Library/ReportFvLib/ReportFvLibPei > .inf > similarity index 87% > rename from > Platform/Intel/WhitleyOpenBoardPkg/Library/PeiReportFvLib/PeiReportFvLi > b.inf > rename to > Platform/Intel/WhitleyOpenBoardPkg/Library/ReportFvLib/ReportFvLibPei.i > nf > index b02fac49cf..ae77606a54 100644 > --- > a/Platform/Intel/WhitleyOpenBoardPkg/Library/PeiReportFvLib/PeiReportF > vLib.inf > +++ > b/Platform/Intel/WhitleyOpenBoardPkg/Library/ReportFvLib/ReportFvLib > +++ Pei.inf > @@ -9,11 +9,11 @@ > > [Defines] > INF_VERSION = 0x00010017 > - BASE_NAME = PeiReportFvLib > - FILE_GUID = 44328FA5-E4DD-4A15-ABDF-C6584AC363D9 > + BASE_NAME = ReportFvLibPei > + FILE_GUID = 8b176722-93a6-4b0a-a297-3d3b6c3c7034 > VERSION_STRING = 1.0 > MODULE_TYPE = PEIM > - LIBRARY_CLASS = ReportFvLib > + LIBRARY_CLASS = ReportFvLib | PEIM > > [LibraryClasses] > BaseMemoryLib > @@ -28,7 +28,7 @@ > WhitleyOpenBoardPkg/PlatformPkg.dec > > [Sources] > - PeiReportFvLib.c > + ReportFvLibPei.c > > [Pcd] > gMinPlatformPkgTokenSpaceGuid.PcdBootStage ## CONSUMES > @@ -62,4 +62,6 @@ > gMinPlatformPkgTokenSpaceGuid.PcdFlashFvBspPreMemoryOffset ## > CONSUMES > gMinPlatformPkgTokenSpaceGuid.PcdFlashFvBspSize ## > CONSUMES > gMinPlatformPkgTokenSpaceGuid.PcdFlashFvBspBase ## > CONSUMES > - gMinPlatformPkgTokenSpaceGuid.PcdFlashFvBspOffset ## > CONSUMES > \ No newline at end of file > + gMinPlatformPkgTokenSpaceGuid.PcdFlashFvBspOffset ## > CONSUMES > + gCpPlatFlashTokenSpaceGuid.PcdFlashFvWheaBase ## > CONSUMES > + gCpPlatFlashTokenSpaceGuid.PcdFlashFvWheaSize ## > CONSUMES > diff --git a/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc > b/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc > index b3e96ecf3f..7d5f9e6883 100644 > --- a/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc > +++ b/Platform/Intel/WhitleyOpenBoardPkg/PlatformPkg.dsc > @@ -596,7 +596,7 @@ > > TestPointCheckLib|MinPlatformPkg/Test/Library/TestPointCheckLib/PeiTest > PointCheckLib.inf > TestPointLib|MinPlatformPkg/Test/Library/TestPointLib/PeiTestPointLib.inf > > - ReportFvLib|$(RP_PKG)/Library/PeiReportFvLib/PeiReportFvLib.inf > + ReportFvLib|$(RP_PKG)/Library/ReportFvLib/ReportFvLibPei.inf > > [LibraryClasses.Common.PEIM] > # > @@ -632,6 +632,8 @@ > > TestPointLib|MinPlatformPkg/Test/Library/TestPointLib/SmmTestPointLib.in > f > > MmServicesTableLib|MdePkg/Library/MmServicesTableLib/MmServicesTabl > eLib.inf > > + ReportFvLib|$(RP_PKG)/Library/ReportFvLib/ReportFvLibMm.inf > + > [LibraryClasses.Common.SMM_CORE] > > S3BootScriptLib|MdePkg/Library/BaseS3BootScriptLibNull/BaseS3BootScriptL > ibNull.inf > > -- > 2.27.0.windows.1
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#82553): https://edk2.groups.io/g/devel/message/82553 Mute This Topic: https://groups.io/mt/86360114/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-