* [edk2-devel] [PATCH v1 1/1] BoardModulePkg\Library\BiosIdLib: Support Standalone MM
@ 2023-12-26 7:55 Huang, Li-Xia
2024-01-05 19:20 ` Nate DeSimone
2024-01-05 19:27 ` Nate DeSimone
0 siblings, 2 replies; 4+ messages in thread
From: Huang, Li-Xia @ 2023-12-26 7:55 UTC (permalink / raw)
To: devel; +Cc: Eric Dong, Nate DeSimone
Add Standalone Mm BiosIdLib and format code with Uncrustify.
Cc: Eric Dong <eric.dong@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Signed-off-by: Lixia Huang <lisa.huang@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.inf | 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/StandaloneMmBiosIdLib.c
new file mode 100644
index 000000000000..af2d47f2b133
--- /dev/null
+++ b/Platform/Intel/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.<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/PeiFirmwareBootMediaInfoLib.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/StandaloneMmBiosIdLib.inf
new file mode 100644
index 000000000000..40f64b8067d1
--- /dev/null
+++ b/Platform/Intel/BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosIdLib.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 (#112908): https://edk2.groups.io/g/devel/message/112908
Mute This Topic: https://groups.io/mt/103367466/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [edk2-devel] [PATCH v1 1/1] BoardModulePkg\Library\BiosIdLib: Support Standalone MM
2023-12-26 7:55 [edk2-devel] [PATCH v1 1/1] BoardModulePkg\Library\BiosIdLib: Support Standalone MM Huang, Li-Xia
@ 2024-01-05 19:20 ` Nate DeSimone
2024-01-05 19:27 ` Nate DeSimone
1 sibling, 0 replies; 4+ messages in thread
From: Nate DeSimone @ 2024-01-05 19:20 UTC (permalink / raw)
To: Huang, Li-Xia, devel@edk2.groups.io; +Cc: Dong, Eric
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.desimone@intel.com>
> -----Original Message-----
> From: Huang, Li-Xia <lisa.huang@intel.com>
> Sent: Monday, December 25, 2023 11:56 PM
> To: devel@edk2.groups.io
> Cc: Dong, Eric <eric.dong@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@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.dong@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
>
> Signed-off-by: Lixia Huang <lisa.huang@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/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [edk2-devel] [PATCH v1 1/1] BoardModulePkg\Library\BiosIdLib: Support Standalone MM
2023-12-26 7:55 [edk2-devel] [PATCH v1 1/1] BoardModulePkg\Library\BiosIdLib: Support Standalone MM Huang, Li-Xia
2024-01-05 19:20 ` Nate DeSimone
@ 2024-01-05 19:27 ` Nate DeSimone
1 sibling, 0 replies; 4+ messages in thread
From: Nate DeSimone @ 2024-01-05 19:27 UTC (permalink / raw)
To: Huang, Li-Xia, devel@edk2.groups.io; +Cc: Dong, Eric
Pushed as b46ecad
> -----Original Message-----
> From: Huang, Li-Xia <lisa.huang@intel.com>
> Sent: Monday, December 25, 2023 11:56 PM
> To: devel@edk2.groups.io
> Cc: Dong, Eric <eric.dong@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@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.dong@intel.com>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
>
> Signed-off-by: Lixia Huang <lisa.huang@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 (#113317): https://edk2.groups.io/g/devel/message/113317
Mute This Topic: https://groups.io/mt/103367466/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply [flat|nested] 4+ messages in thread
* [edk2-devel] [PATCH v1 1/1] BoardModulePkg\Library\BiosIdLib: Support Standalone MM
@ 2023-11-21 2:33 Huang, Li-Xia
0 siblings, 0 replies; 4+ messages in thread
From: Huang, Li-Xia @ 2023-11-21 2:33 UTC (permalink / raw)
To: devel; +Cc: Eric Dong, Nate DeSimone
Add Standalone Mm BiosIdLib.
Also fix some EDKII Coding Style issue with uncrustify.
Cc: Eric Dong <eric.dong@intel.com>
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Signed-off-by: Lixia Huang <lisa.huang@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 | 6 +-
Platform/Intel/BoardModulePkg/Library/BiosIdLib/PeiBiosIdLib.inf | 6 +-
Platform/Intel/BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosIdLib.inf | 42 +++++++
8 files changed, 244 insertions(+), 201 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/StandaloneMmBiosIdLib.c
new file mode 100644
index 000000000000..af2d47f2b133
--- /dev/null
+++ b/Platform/Intel/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.<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/PeiFirmwareBootMediaInfoLib.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..9b63a0d580c2 100644
--- a/Platform/Intel/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.inf
+++ b/Platform/Intel/BoardModulePkg/Library/BiosIdLib/DxeBiosIdLib.inf
@@ -1,7 +1,7 @@
### @file
# DXE 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]
DxeBiosIdLib.c
+ BiosIdCommon.c
[Packages]
MdePkg/MdePkg.dec
- BoardModulePkg/BoardModulePkg.dec
+ BoardModulePkg/BoardModulePkg.dec
+
[LibraryClasses]
BaseLib
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/StandaloneMmBiosIdLib.inf
new file mode 100644
index 000000000000..40f64b8067d1
--- /dev/null
+++ b/Platform/Intel/BoardModulePkg/Library/BiosIdLib/StandaloneMmBiosIdLib.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 (#111503): https://edk2.groups.io/g/devel/message/111503
Mute This Topic: https://groups.io/mt/102721635/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-01-05 19:28 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-26 7:55 [edk2-devel] [PATCH v1 1/1] BoardModulePkg\Library\BiosIdLib: Support Standalone MM Huang, Li-Xia
2024-01-05 19:20 ` Nate DeSimone
2024-01-05 19:27 ` Nate DeSimone
-- strict thread matches above, loose matches on Subject: below --
2023-11-21 2:33 Huang, Li-Xia
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox