Hi Li, It looks like the standalone MM version of this library is missing the search for the BiosId file. I suspect the issue you ran into is that standalone MM only has support for 1 FV, and it is highly likely that the BiosId file is not in the standalone MM FV. This is understandable; however, it does highlight yet another deficiency in the architecture of standalone MM. Again, that is not your fault and is beyond the scope of this patch.
Reviewed-by: Nate DeSimone <nathaniel.l.desim...@intel.com> > -----Original Message----- > From: Huang, Li-Xia <lisa.hu...@intel.com> > Sent: Monday, December 25, 2023 11:56 PM > To: devel@edk2.groups.io > Cc: Dong, Eric <eric.d...@intel.com>; Desimone, Nathaniel L > <nathaniel.l.desim...@intel.com> > Subject: [PATCH v1 1/1] BoardModulePkg\Library\BiosIdLib: Support > Standalone MM > > Add Standalone Mm BiosIdLib and format code with Uncrustify. > > Cc: Eric Dong <eric.d...@intel.com> > Cc: Nate DeSimone <nathaniel.l.desim...@intel.com> > > Signed-off-by: Lixia Huang <lisa.hu...@intel.com> > --- > Platform/Intel/BoardModulePkg/Library/BiosIdLib/BiosIdCommon.c | > 96 ++++++++++++++++ > Platform/Intel/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.c | > 111 > +++--------------- > Platform/Intel/BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.c | > 118 > +++----------------- > Platform/Intel/BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosIdLib.c > | 65 +++++++++++ > Platform/Intel/BoardModulePkg/BoardModulePkg.dsc | > 1 + > Platform/Intel/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.inf | > 1 > + > Platform/Intel/BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.inf | > 6 > +- > > Platform/Intel/BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosIdLib.i > nf | 42 +++++++ > 8 files changed, 241 insertions(+), 199 deletions(-) > > diff --git > a/Platform/Intel/BoardModulePkg/Library/BiosIdLib/BiosIdCommon.c > b/Platform/Intel/BoardModulePkg/Library/BiosIdLib/BiosIdCommon.c > new file mode 100644 > index 000000000000..5735566bfe3a > --- /dev/null > +++ b/Platform/Intel/BoardModulePkg/Library/BiosIdLib/BiosIdCommon.c > @@ -0,0 +1,96 @@ > +/** @file > + Boot service common BIOS ID library implementation. > + > + These functions in this file can be called during DXE and cannot be > + called during runtime or in SMM which should use a RT or SMM library. > + > + > +Copyright (c) 2023, Intel Corporation. All rights reserved.<BR> > +SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#include <PiDxe.h> > +#include <Library/BaseMemoryLib.h> > +#include <Library/BiosIdLib.h> > +#include <Guid/BiosId.h> > + > +/** > + This function returns the BIOS Version & Release Date and Time by getting > and converting BIOS ID. > + > + @param[out] BiosVersion The Bios Version out of the conversion. > + @param[out] BiosReleaseDate The Bios Release Date out of the > conversion. > + @param[out] BiosReleaseTime The Bios Release Time out of the > conversion. > + > + @retval EFI_SUCCESS BIOS Version & Release Date and Time have > been got successfully. > + @retval EFI_NOT_FOUND BIOS ID image is not found, and no > parameter will be modified. > + @retval EFI_INVALID_PARAMETER All the parameters are NULL. > + > +**/ > +EFI_STATUS > +EFIAPI > +GetBiosVersionDateTime ( > + OUT CHAR16 *BiosVersion OPTIONAL, > + OUT CHAR16 *BiosReleaseDate OPTIONAL, > + OUT CHAR16 *BiosReleaseTime OPTIONAL > + ) > +{ > + EFI_STATUS Status; > + BIOS_ID_IMAGE BiosIdImage; > + > + if ((BiosVersion == NULL) && (BiosReleaseDate == NULL) && > (BiosReleaseTime == NULL)) { > + return EFI_INVALID_PARAMETER; > + } > + > + Status = GetBiosId (&BiosIdImage); > + if (EFI_ERROR (Status)) { > + return EFI_NOT_FOUND; > + } > + > + if (BiosVersion != NULL) { > + // > + // Fill the BiosVersion data from the BIOS ID. > + // > + CopyMem (BiosVersion, &(BiosIdImage.BiosIdString), sizeof > + (BIOS_ID_STRING)); } > + > + if (BiosReleaseDate != NULL) { > + // > + // Fill the build timestamp date from the BIOS ID in the "MM/DD/YY" > format. > + // > + BiosReleaseDate[0] = BiosIdImage.BiosIdString.TimeStamp[2]; > + BiosReleaseDate[1] = BiosIdImage.BiosIdString.TimeStamp[3]; > + BiosReleaseDate[2] = (CHAR16)((UINT8)('/')); > + > + BiosReleaseDate[3] = BiosIdImage.BiosIdString.TimeStamp[4]; > + BiosReleaseDate[4] = BiosIdImage.BiosIdString.TimeStamp[5]; > + BiosReleaseDate[5] = (CHAR16)((UINT8)('/')); > + > + // > + // Add 20 for SMBIOS table > + // Current Linux kernel will misjudge 09 as year 0, so using 2009 for > SMBIOS table > + // > + BiosReleaseDate[6] = '2'; > + BiosReleaseDate[7] = '0'; > + BiosReleaseDate[8] = BiosIdImage.BiosIdString.TimeStamp[0]; > + BiosReleaseDate[9] = BiosIdImage.BiosIdString.TimeStamp[1]; > + > + BiosReleaseDate[10] = (CHAR16)((UINT8)('\0')); } > + > + if (BiosReleaseTime != NULL) { > + // > + // Fill the build timestamp time from the BIOS ID in the "HH:MM" format. > + // > + BiosReleaseTime[0] = BiosIdImage.BiosIdString.TimeStamp[6]; > + BiosReleaseTime[1] = BiosIdImage.BiosIdString.TimeStamp[7]; > + BiosReleaseTime[2] = (CHAR16)((UINT8)(':')); > + > + BiosReleaseTime[3] = BiosIdImage.BiosIdString.TimeStamp[8]; > + BiosReleaseTime[4] = BiosIdImage.BiosIdString.TimeStamp[9]; > + > + BiosReleaseTime[5] = (CHAR16)((UINT8)('\0')); } > + > + return EFI_SUCCESS; > +} > diff --git a/Platform/Intel/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.c > b/Platform/Intel/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.c > index 3e614d9efc3e..6535bb36f6c9 100644 > --- a/Platform/Intel/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.c > +++ b/Platform/Intel/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.c > @@ -5,7 +5,7 @@ > or in SMM which should use a RT or SMM library. > > > -Copyright (c) 2015 - 2019, Intel Corporation. All rights reserved.<BR> > +Copyright (c) 2015 - 2023, Intel Corporation. All rights reserved.<BR> > SPDX-License-Identifier: BSD-2-Clause-Patent > > **/ > @@ -15,7 +15,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #include > <Library/HobLib.h> #include <Library/DxeServicesLib.h> #include > <Library/BaseMemoryLib.h> -#include <Library/HobLib.h> #include > <Library/MemoryAllocationLib.h> #include <Library/DebugLib.h> #include > <Library/BiosIdLib.h> @@ -36,16 +35,16 @@ SPDX-License-Identifier: BSD-2- > Clause-Patent EFI_STATUS EFIAPI GetBiosId ( > - OUT BIOS_ID_IMAGE *BiosIdImage OPTIONAL > + OUT BIOS_ID_IMAGE *BiosIdImage OPTIONAL > ) > { > - EFI_STATUS Status; > - BIOS_ID_IMAGE TempBiosIdImage; > - VOID *Address; > - UINTN Size; > + EFI_STATUS Status; > + BIOS_ID_IMAGE TempBiosIdImage; > + VOID *Address; > + UINTN Size; > > Address = NULL; > - Size = 0; > + Size = 0; > > if (BiosIdImage == NULL) { > // > @@ -58,10 +57,10 @@ GetBiosId ( > Address = GetFirstGuidHob (&gBiosIdGuid); > if (Address != NULL) { > Size = sizeof (BIOS_ID_IMAGE); > - CopyMem ((VOID *) BiosIdImage, GET_GUID_HOB_DATA (Address), Size); > + CopyMem ((VOID *)BiosIdImage, GET_GUID_HOB_DATA (Address), Size); > > - DEBUG ((EFI_D_INFO, "DXE get BIOS ID from HOB successfully\n")); > - DEBUG ((EFI_D_INFO, "BIOS ID: %s\n", (CHAR16 *) (&(BiosIdImage- > >BiosIdString)))); > + DEBUG ((DEBUG_INFO, "DXE get BIOS ID from HOB successfully\n")); > + DEBUG ((DEBUG_INFO, "BIOS ID: %s\n", (CHAR16 > + *)(&(BiosIdImage->BiosIdString)))); > return EFI_SUCCESS; > } > > @@ -77,99 +76,17 @@ GetBiosId ( > // BIOS ID image is present in FV. > // > Size = sizeof (BIOS_ID_IMAGE); > - CopyMem ((VOID *) BiosIdImage, Address, Size); > + CopyMem ((VOID *)BiosIdImage, Address, Size); > // > // GetSectionFromAnyFv () allocated buffer for Address, now free it. > // > FreePool (Address); > > - DEBUG ((EFI_D_INFO, "DXE get BIOS ID from FV successfully\n")); > - DEBUG ((EFI_D_INFO, "BIOS ID: %s\n", (CHAR16 *) (&(BiosIdImage- > >BiosIdString)))); > + DEBUG ((DEBUG_INFO, "DXE get BIOS ID from FV successfully\n")); > + DEBUG ((DEBUG_INFO, "BIOS ID: %s\n", (CHAR16 > + *)(&(BiosIdImage->BiosIdString)))); > return EFI_SUCCESS; > } > > - DEBUG ((EFI_D_ERROR, "DXE get BIOS ID failed: %r\n", EFI_NOT_FOUND)); > + DEBUG ((DEBUG_ERROR, "DXE get BIOS ID failed: %r\n", > EFI_NOT_FOUND)); > return EFI_NOT_FOUND; > } > - > -/** > - This function returns the BIOS Version & Release Date and Time by getting > and converting BIOS ID. > - > - @param[out] BiosVersion The Bios Version out of the conversion. > - @param[out] BiosReleaseDate The Bios Release Date out of the conversion. > - @param[out] BiosReleaseTime The Bios Release Time out of the > conversion. > - > - @retval EFI_SUCCESS BIOS Version & Release Date and Time have > been got successfully. > - @retval EFI_NOT_FOUND BIOS ID image is not found, and no > parameter will be modified. > - @retval EFI_INVALID_PARAMETER All the parameters are NULL. > - > -**/ > -EFI_STATUS > -EFIAPI > -GetBiosVersionDateTime ( > - OUT CHAR16 *BiosVersion, OPTIONAL > - OUT CHAR16 *BiosReleaseDate, OPTIONAL > - OUT CHAR16 *BiosReleaseTime OPTIONAL > - ) > -{ > - EFI_STATUS Status; > - BIOS_ID_IMAGE BiosIdImage; > - > - if ((BiosVersion == NULL) && (BiosReleaseDate == NULL) && > (BiosReleaseTime == NULL)) { > - return EFI_INVALID_PARAMETER; > - } > - > - Status = GetBiosId (&BiosIdImage); > - if (EFI_ERROR (Status)) { > - return EFI_NOT_FOUND; > - } > - > - if (BiosVersion != NULL) { > - // > - // Fill the BiosVersion data from the BIOS ID. > - // > - CopyMem (BiosVersion, &(BiosIdImage.BiosIdString), sizeof > (BIOS_ID_STRING)); > - } > - > - if (BiosReleaseDate != NULL) { > - // > - // Fill the build timestamp date from the BIOS ID in the "MM/DD/YY" > format. > - // > - BiosReleaseDate[0] = BiosIdImage.BiosIdString.TimeStamp[2]; > - BiosReleaseDate[1] = BiosIdImage.BiosIdString.TimeStamp[3]; > - BiosReleaseDate[2] = (CHAR16) ((UINT8) ('/')); > - > - BiosReleaseDate[3] = BiosIdImage.BiosIdString.TimeStamp[4]; > - BiosReleaseDate[4] = BiosIdImage.BiosIdString.TimeStamp[5]; > - BiosReleaseDate[5] = (CHAR16) ((UINT8) ('/')); > - > - // > - // Add 20 for SMBIOS table > - // Current Linux kernel will misjudge 09 as year 0, so using 2009 for > SMBIOS > table > - // > - BiosReleaseDate[6] = '2'; > - BiosReleaseDate[7] = '0'; > - BiosReleaseDate[8] = BiosIdImage.BiosIdString.TimeStamp[0]; > - BiosReleaseDate[9] = BiosIdImage.BiosIdString.TimeStamp[1]; > - > - BiosReleaseDate[10] = (CHAR16) ((UINT8) ('\0')); > - } > - > - if (BiosReleaseTime != NULL) { > - > - // > - // Fill the build timestamp time from the BIOS ID in the "HH:MM" format. > - // > - BiosReleaseTime[0] = BiosIdImage.BiosIdString.TimeStamp[6]; > - BiosReleaseTime[1] = BiosIdImage.BiosIdString.TimeStamp[7]; > - BiosReleaseTime[2] = (CHAR16) ((UINT8) (':')); > - > - BiosReleaseTime[3] = BiosIdImage.BiosIdString.TimeStamp[8]; > - BiosReleaseTime[4] = BiosIdImage.BiosIdString.TimeStamp[9]; > - > - BiosReleaseTime[5] = (CHAR16) ((UINT8) ('\0')); > - } > - > - return EFI_SUCCESS; > -} > - > diff --git a/Platform/Intel/BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.c > b/Platform/Intel/BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.c > index b0f15d2cb8d5..c1295a16444d 100644 > --- a/Platform/Intel/BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.c > +++ b/Platform/Intel/BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.c > @@ -1,7 +1,7 @@ > /** @file > Boot service PEI BIOS ID library implementation. > > -Copyright (c) 2-015 - 2019, Intel Corporation. All rights reserved.<BR> > +Copyright (c) 2015 - 2023, Intel Corporation. All rights reserved.<BR> > SPDX-License-Identifier: BSD-2-Clause-Patent > > **/ > @@ -30,19 +30,19 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > EFI_STATUS EFIAPI GetBiosId ( > - OUT BIOS_ID_IMAGE *BiosIdImage OPTIONAL > + OUT BIOS_ID_IMAGE *BiosIdImage OPTIONAL > ) > { > - EFI_STATUS Status; > - BIOS_ID_IMAGE TempBiosIdImage; > - VOID *Address; > - UINTN Size; > - UINTN Instance; > - EFI_PEI_FV_HANDLE VolumeHandle; > - EFI_PEI_FILE_HANDLE FileHandle; > + EFI_STATUS Status; > + BIOS_ID_IMAGE TempBiosIdImage; > + VOID *Address; > + UINTN Size; > + UINTN Instance; > + EFI_PEI_FV_HANDLE VolumeHandle; > + EFI_PEI_FILE_HANDLE FileHandle; > > Address = NULL; > - Size = 0; > + Size = 0; > > if (BiosIdImage == NULL) { > // > @@ -55,15 +55,15 @@ GetBiosId ( > Address = GetFirstGuidHob (&gBiosIdGuid); > if (Address != NULL) { > Size = sizeof (BIOS_ID_IMAGE); > - CopyMem ((VOID *) BiosIdImage, GET_GUID_HOB_DATA (Address), Size); > + CopyMem ((VOID *)BiosIdImage, GET_GUID_HOB_DATA (Address), Size); > > - DEBUG ((EFI_D_INFO, "PEI get BIOS ID from HOB successfully\n")); > - DEBUG ((EFI_D_INFO, "BIOS ID: %s\n", (CHAR16 *) (&(BiosIdImage- > >BiosIdString)))); > + DEBUG ((DEBUG_INFO, "PEI get BIOS ID from HOB successfully\n")); > + DEBUG ((DEBUG_INFO, "BIOS ID: %s\n", (CHAR16 > + *)(&(BiosIdImage->BiosIdString)))); > return EFI_SUCCESS; > } > > VolumeHandle = NULL; > - Instance = 0; > + Instance = 0; > while (TRUE) { > // > // Traverse all firmware volume instances. > @@ -74,7 +74,7 @@ GetBiosId ( > } > > FileHandle = NULL; > - Status = PeiServicesFfsFindFileByName (&gBiosIdGuid, VolumeHandle, > &FileHandle); > + Status = PeiServicesFfsFindFileByName (&gBiosIdGuid, VolumeHandle, > &FileHandle); > if (!EFI_ERROR (Status)) { > // > // Search RAW section. > @@ -85,10 +85,10 @@ GetBiosId ( > // BIOS ID image is present in this FV. > // > Size = sizeof (BIOS_ID_IMAGE); > - CopyMem ((VOID *) BiosIdImage, Address, Size); > + CopyMem ((VOID *)BiosIdImage, Address, Size); > > - DEBUG ((EFI_D_INFO, "PEI get BIOS ID from FV successfully\n")); > - DEBUG ((EFI_D_INFO, "BIOS ID: %s\n", (CHAR16 *) (&(BiosIdImage- > >BiosIdString)))); > + DEBUG ((DEBUG_INFO, "PEI get BIOS ID from FV successfully\n")); > + DEBUG ((DEBUG_INFO, "BIOS ID: %s\n", (CHAR16 > + *)(&(BiosIdImage->BiosIdString)))); > > // > // Build GUID HOB for the BIOS ID image. > @@ -107,85 +107,3 @@ GetBiosId ( > DEBUG ((EFI_D_ERROR, "PEI get BIOS ID failed: %r\n", EFI_NOT_FOUND)); > return EFI_NOT_FOUND; > } > - > -/** > - This function returns the BIOS Version & Release Date and Time by getting > and converting BIOS ID. > - > - @param[out] BiosVersion The Bios Version out of the conversion. > - @param[out] BiosReleaseDate The Bios Release Date out of the conversion. > - @param[out] BiosReleaseTime The Bios Release Time out of the > conversion. > - > - @retval EFI_SUCCESS BIOS Version & Release Date and Time have > been got successfully. > - @retval EFI_NOT_FOUND BIOS ID image is not found, and no > parameter will be modified. > - @retval EFI_INVALID_PARAMETER All the parameters are NULL. > - > -**/ > -EFI_STATUS > -EFIAPI > -GetBiosVersionDateTime ( > - OUT CHAR16 *BiosVersion, OPTIONAL > - OUT CHAR16 *BiosReleaseDate, OPTIONAL > - OUT CHAR16 *BiosReleaseTime OPTIONAL > - ) > -{ > - EFI_STATUS Status; > - BIOS_ID_IMAGE BiosIdImage; > - > - if ((BiosVersion == NULL) && (BiosReleaseDate == NULL) && > (BiosReleaseTime == NULL)) { > - return EFI_INVALID_PARAMETER; > - } > - > - Status = GetBiosId (&BiosIdImage); > - if (EFI_ERROR (Status)) { > - return EFI_NOT_FOUND; > - } > - > - if (BiosVersion != NULL) { > - // > - // Fill the BiosVersion data from the BIOS ID. > - // > - CopyMem (BiosVersion, &(BiosIdImage.BiosIdString), sizeof > (BIOS_ID_STRING)); > - } > - > - if (BiosReleaseDate != NULL) { > - // > - // Fill the build timestamp date from the BIOS ID in the "MM/DD/YY" > format. > - // > - BiosReleaseDate[0] = BiosIdImage.BiosIdString.TimeStamp[2]; > - BiosReleaseDate[1] = BiosIdImage.BiosIdString.TimeStamp[3]; > - BiosReleaseDate[2] = (CHAR16) ((UINT8) ('/')); > - > - BiosReleaseDate[3] = BiosIdImage.BiosIdString.TimeStamp[4]; > - BiosReleaseDate[4] = BiosIdImage.BiosIdString.TimeStamp[5]; > - BiosReleaseDate[5] = (CHAR16) ((UINT8) ('/')); > - > - // > - // Add 20 for SMBIOS table > - // Current Linux kernel will misjudge 09 as year 0, so using 2009 for > SMBIOS > table > - // > - BiosReleaseDate[6] = '2'; > - BiosReleaseDate[7] = '0'; > - BiosReleaseDate[8] = BiosIdImage.BiosIdString.TimeStamp[0]; > - BiosReleaseDate[9] = BiosIdImage.BiosIdString.TimeStamp[1]; > - > - BiosReleaseDate[10] = (CHAR16) ((UINT8) ('\0')); > - } > - > - if (BiosReleaseTime != NULL) { > - > - // > - // Fill the build timestamp time from the BIOS ID in the "HH:MM" format. > - // > - BiosReleaseTime[0] = BiosIdImage.BiosIdString.TimeStamp[6]; > - BiosReleaseTime[1] = BiosIdImage.BiosIdString.TimeStamp[7]; > - BiosReleaseTime[2] = (CHAR16) ((UINT8) (':')); > - > - BiosReleaseTime[3] = BiosIdImage.BiosIdString.TimeStamp[8]; > - BiosReleaseTime[4] = BiosIdImage.BiosIdString.TimeStamp[9]; > - > - BiosReleaseTime[5] = (CHAR16) ((UINT8) ('\0')); > - } > - > - return EFI_SUCCESS; > -} > - > diff --git > a/Platform/Intel/BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosIdLib > .c > b/Platform/Intel/BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosIdLi > b.c > new file mode 100644 > index 000000000000..af2d47f2b133 > --- /dev/null > +++ > b/Platform/Intel/BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosId > +++ Lib.c > @@ -0,0 +1,65 @@ > +/** @file > + Boot service StandaloneMm BIOS ID library implementation. > + > + These functions in this file can be called during DXE and cannot be > + called during runtime or in SMM which should use a RT or SMM library. > + > + > +Copyright (c) 2023, Intel Corporation. All rights reserved.<BR> > +SPDX-License-Identifier: BSD-2-Clause-Patent > + > +**/ > + > +#include <PiMm.h> > +#include <Library/HobLib.h> > +#include <Library/BaseMemoryLib.h> > +#include <Library/DebugLib.h> > +#include <Library/BiosIdLib.h> > + > +#include <Guid/BiosId.h> > + > +/** > + This function returns BIOS ID by searching HOB. > + It also debug print the BIOS ID found. > + > + @param[out] BiosIdImage The BIOS ID got from HOB or FV. It is optional, > + no BIOS ID will be returned if it is NULL as > input. > + > + @retval EFI_SUCCESS BIOS ID has been got successfully. > + @retval EFI_NOT_FOUND BIOS ID image is not found, and no > parameter will be modified. > + > +**/ > +EFI_STATUS > +EFIAPI > +GetBiosId ( > + OUT BIOS_ID_IMAGE *BiosIdImage OPTIONAL > + ) > +{ > + BIOS_ID_IMAGE TempBiosIdImage; > + VOID *Address; > + UINTN Size; > + > + Address = NULL; > + Size = 0; > + > + if (BiosIdImage == NULL) { > + // > + // It is NULL as input, so no BIOS ID will be returned. > + // Use temp buffer to hold the BIOS ID. > + // > + BiosIdImage = &TempBiosIdImage; > + } > + > + Address = GetFirstGuidHob (&gBiosIdGuid); if (Address != NULL) { > + Size = sizeof (BIOS_ID_IMAGE); > + CopyMem ((VOID *)BiosIdImage, GET_GUID_HOB_DATA (Address), Size); > + > + DEBUG ((DEBUG_INFO, "StandaloneMm get BIOS ID from HOB > successfully\n")); > + DEBUG ((DEBUG_INFO, "BIOS ID: %s\n", (CHAR16 *)(&(BiosIdImage- > >BiosIdString)))); > + return EFI_SUCCESS; > + } > + > + DEBUG ((DEBUG_ERROR, "StandaloneMm get BIOS ID failed: %r\n", > +EFI_NOT_FOUND)); > + return EFI_NOT_FOUND; > +} > diff --git a/Platform/Intel/BoardModulePkg/BoardModulePkg.dsc > b/Platform/Intel/BoardModulePkg/BoardModulePkg.dsc > index 9f00592a19c0..44a2abd03f58 100644 > --- a/Platform/Intel/BoardModulePkg/BoardModulePkg.dsc > +++ b/Platform/Intel/BoardModulePkg/BoardModulePkg.dsc > @@ -88,6 +88,7 @@ > > BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.inf > BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.inf > + BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosIdLib.inf > > > BoardModulePkg/Library/PeiFirmwareBootMediaInfoLib/PeiFirmwareBootMe > diaInfoLib.inf > BoardModulePkg/Library/BdsPs2KbcLib/BdsPs2KbcLib.inf > diff --git a/Platform/Intel/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.inf > b/Platform/Intel/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.inf > index 39f42e91a0cc..f73ab1f3b6b6 100644 > --- a/Platform/Intel/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.inf > +++ b/Platform/Intel/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.inf > @@ -22,6 +22,7 @@ > > [Sources.common] > DxeBiosIdLib.c > + BiosIdCommon.c > > [Packages] > MdePkg/MdePkg.dec > diff --git a/Platform/Intel/BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.inf > b/Platform/Intel/BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.inf > index e38d17bd9bb1..c197a3f18316 100644 > --- a/Platform/Intel/BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.inf > +++ b/Platform/Intel/BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.inf > @@ -1,7 +1,7 @@ > ### @file > # PEI BIOS ID library. > # > -# Copyright (c) 2015 - 2019, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) 2015 - 2023, Intel Corporation. All rights > +reserved.<BR> > # > # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -22,10 +22,12 @@ > > [Sources.common] > PeiBiosIdLib.c > + BiosIdCommon.c > > [Packages] > MdePkg/MdePkg.dec > - BoardModulePkg/BoardModulePkg.dec > > + BoardModulePkg/BoardModulePkg.dec > + > > [LibraryClasses] > BaseLib > diff --git > a/Platform/Intel/BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosIdLib > .inf > b/Platform/Intel/BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosIdLi > b.inf > new file mode 100644 > index 000000000000..40f64b8067d1 > --- /dev/null > +++ > b/Platform/Intel/BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosId > +++ Lib.inf > @@ -0,0 +1,42 @@ > +### @file > +# StandaloneMm BIOS ID library. > +# > +# Copyright (c) 2023, Intel Corporation. All rights reserved.<BR> # # > +SPDX-License-Identifier: BSD-2-Clause-Patent # ### [Defines] > + INF_VERSION = 0x00010005 > + BASE_NAME = StandaloneMmBiosIdLib > + FILE_GUID = b6304cdf-6d3e-4762-8a88-ff98dcad6b14 > + MODULE_TYPE = MM_STANDALONE > + VERSION_STRING = 1.0 > + PI_SPECIFICATION_VERSION = 0x00010032 > + LIBRARY_CLASS = BiosIdLib| MM_CORE_STANDALONE > MM_STANDALONE > + > +# > +# The following information is for reference only and not required by the > build > tools. > +# > +# VALID_ARCHITECTURES = IA32 X64 > +# > + > +[Sources.common] > + StandaloneMmBiosIdLib.c > + BiosIdCommon.c > + > +[Packages] > + MdePkg/MdePkg.dec > + BoardModulePkg/BoardModulePkg.dec > + > +[LibraryClasses] > + BaseLib > + BaseMemoryLib > + HobLib > + DebugLib > + > +[Guids] > + ## SOMETIMES_CONSUMES ## HOB > + ## SOMETIMES_CONSUMES ## GUID > + gBiosIdGuid > + > -- > 2.26.2.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#113316): https://edk2.groups.io/g/devel/message/113316 Mute This Topic: https://groups.io/mt/103367466/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-