From bbeb1bea4166c577499a26b5097bab4d69829d94 Mon Sep 17 00:00:00 2001 From: Rebecca Cran Date: Tue, 30 Mar 2021 20:16:17 -0600 Subject: 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 Reviewed-by: Leif Lindholm --- ArmPkg/Include/Library/OemMiscLib.h | 10 ++++++++++ ArmPkg/Universal/Smbios/OemMiscLibNull/OemMiscLib.c | 14 ++++++++++++++ .../SmbiosMiscDxe/Type32/MiscBootInformationFunction.c | 3 +++ 3 files changed, 27 insertions(+) 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 #include #include +#include #include #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. // -- cgit v1.2.3