diff --git a/BoardModulePkg/BoardModulePkg.dsc b/BoardModulePkg/BoardModulePkg.dsc index 123cc075a7..60e32e81b9 100644 --- a/BoardModulePkg/BoardModulePkg.dsc +++ b/BoardModulePkg/BoardModulePkg.dsc @@ -84,4 +84,5 @@ BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.inf BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.inf + BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosIdLib.inf diff --git a/BoardModulePkg/Library/BiosIdLib/BiosIdCommon.c b/BoardModulePkg/Library/BiosIdLib/BiosIdCommon.c new file mode 100644 index 0000000000..5735566bfe --- /dev/null +++ b/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.
+SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include +#include +#include +#include + +/** + 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/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.c b/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.c index 3e614d9efc..6535bb36f6 100644 --- a/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.c +++ b/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.
+Copyright (c) 2015 - 2023, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ @@ -15,7 +15,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #include #include #include -#include #include #include #include @@ -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/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.inf b/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.inf index f2bdbb412f..f344791eba 100644 --- a/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.inf +++ b/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.inf @@ -1,7 +1,7 @@ ### @file # DXE BIOS ID library. # -# Copyright (c) 2015 - 2019, Intel Corporation. All rights reserved.
+# Copyright (c) 2015 - 2024, Intel Corporation. All rights reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -22,10 +22,11 @@ [Sources.common] DxeBiosIdLib.c + BiosIdCommon.c [Packages] MdePkg/MdePkg.dec - BoardModulePkg/BoardModulePkg.dec + BoardModulePkg/BoardModulePkg.dec [LibraryClasses] BaseLib diff --git a/BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.c b/BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.c index b0f15d2cb8..9f450aa7c5 100644 --- a/BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.c +++ b/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.
+Copyright (c) 2015 - 2023, Intel Corporation. All rights reserved.
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. @@ -104,88 +104,6 @@ GetBiosId ( Instance++; } - DEBUG ((EFI_D_ERROR, "PEI get BIOS ID failed: %r\n", EFI_NOT_FOUND)); + DEBUG ((DEBUG_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/BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.inf b/BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.inf index 686944c0b1..029ca25841 100644 --- a/BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.inf +++ b/BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.inf @@ -1,7 +1,7 @@ ### @file # PEI BIOS ID library. # -# Copyright (c) 2015 - 2019, Intel Corporation. All rights reserved.
+# Copyright (c) 2015 - 2023, Intel Corporation. All rights reserved.
# # SPDX-License-Identifier: BSD-2-Clause-Patent # @@ -22,10 +22,13 @@ [Sources.common] PeiBiosIdLib.c + BiosIdCommon.c [Packages] MdePkg/MdePkg.dec - BoardModulePkg/BoardModulePkg.dec + BoardModulePkg/BoardModulePkg.dec + + [LibraryClasses] BaseLib diff --git a/BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosIdLib.c b/BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosIdLib.c new file mode 100644 index 0000000000..af2d47f2b1 --- /dev/null +++ b/BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosIdLib.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.
+SPDX-License-Identifier: BSD-2-Clause-Patent + +**/ + +#include +#include +#include +#include +#include + +#include + +/** + 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/BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosIdLib.inf b/BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosIdLib.inf new file mode 100644 index 0000000000..40f64b8067 --- /dev/null +++ b/BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosIdLib.inf @@ -0,0 +1,42 @@ +### @file +# StandaloneMm BIOS ID library. +# +# Copyright (c) 2023, Intel Corporation. All rights reserved.
+# +# 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 +