summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRebecca Cran <rebecca@nuviainc.com>2021-03-30 20:16:17 -0600
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2021-04-27 12:46:26 +0000
commitbbeb1bea4166c577499a26b5097bab4d69829d94 (patch)
tree95b937482944e1d3267ce7fb361f7d73c8f78259
parentbf2b99990e1b0a0eed09d6e5b22b293b9dfa978f (diff)
downloadedk2-bbeb1bea4166c577499a26b5097bab4d69829d94.tar.gz
edk2-bbeb1bea4166c577499a26b5097bab4d69829d94.tar.bz2
edk2-bbeb1bea4166c577499a26b5097bab4d69829d94.zip
ArmPkg: Allow platforms to report their boot status via OemMiscLib call
Add a new function to OemMiscLib to allow platforms to report their boot status into the Type32 SMBIOS table. Signed-off-by: Rebecca Cran <rebecca@nuviainc.com> Reviewed-by: Leif Lindholm <leif@nuviainc.com>
-rw-r--r--ArmPkg/Include/Library/OemMiscLib.h10
-rw-r--r--ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLib.c14
-rw-r--r--ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type32/MiscBootInformationFunction.c3
3 files changed, 27 insertions, 0 deletions
diff --git a/ArmPkg/Include/Library/OemMiscLib.h b/ArmPkg/Include/Library/OemMiscLib.h
index 25ae508ddb..0b03fe8d4d 100644
--- a/ArmPkg/Include/Library/OemMiscLib.h
+++ b/ArmPkg/Include/Library/OemMiscLib.h
@@ -162,6 +162,16 @@ OemUpdateSmbiosInfo (
IN OEM_MISC_SMBIOS_HII_STRING_FIELD Field
);
+/** Fetches the Type 32 boot information status.
+
+ @return Boot status.
+**/
+MISC_BOOT_INFORMATION_STATUS_DATA_TYPE
+EFIAPI
+OemGetBootStatus (
+ VOID
+ );
+
/** Fetches the chassis status when it was last booted.
@return Chassis status.
diff --git a/ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLib.c b/ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLib.c
index 33b0081d65..3125269735 100644
--- a/ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLib.c
+++ b/ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLib.c
@@ -140,6 +140,20 @@ OemUpdateSmbiosInfo (
ASSERT (FALSE);
}
+/** Fetches the Type 32 boot information status.
+
+ @return Boot status.
+**/
+MISC_BOOT_INFORMATION_STATUS_DATA_TYPE
+EFIAPI
+OemGetBootStatus (
+ VOID
+ )
+{
+ ASSERT (FALSE);
+ return BootInformationStatusNoError;
+}
+
/** Fetches the chassis status when it was last booted.
@return Chassis status.
diff --git a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type32/MiscBootInformationFunction.c b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type32/MiscBootInformationFunction.c
index 733615bbcf..4be1e1cd29 100644
--- a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type32/MiscBootInformationFunction.c
+++ b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type32/MiscBootInformationFunction.c
@@ -16,6 +16,7 @@
#include <Library/BaseMemoryLib.h>
#include <Library/DebugLib.h>
#include <Library/MemoryAllocationLib.h>
+#include <Library/OemMiscLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include "SmbiosMisc.h"
@@ -59,6 +60,8 @@ SMBIOS_MISC_TABLE_FUNCTION(MiscBootInformation)
SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE32);
+ SmbiosRecord->BootStatus = OemGetBootStatus ();
+
//
// Now we have got the full smbios record, call smbios protocol to add this record.
//