Reviewed-by: Andrei Warkentin <awarkentin@vmware.com>

From: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
Sent: Wednesday, June 17, 2020 11:22 PM
To: devel@edk2.groups.io <devel@edk2.groups.io>
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>; Leif Lindholm <leif@nuviainc.com>; Andrei Warkentin <awarkentin@vmware.com>; Pete Batard <pete@akeo.ie>
Subject: [edk2-platform][PATCH v1 1/1] Platforms/RaspberryPi: Add SMBIOS Type 11
 
SMBIOS Type 11 (OEM Strings) is recommended in SBBR 1.2.
Add a simlpe implementation to the RPi.

Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Andrei Warkentin <awarkentin@vmware.com>
Cc: Pete Batard <pete@akeo.ie>
Signed-off-by: Samer El-Haj-Mahmoud <samer.el-haj-mahmoud@arm.com>
---
 Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c | 27 ++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c b/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c
index 7b86e76a1248..f336084520a9 100644
--- a/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c
+++ b/Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c
@@ -389,6 +389,20 @@ CHAR8 *mSysSlotInfoType9Strings[] = {
   NULL
 };
 
+
+/***********************************************************************
+        SMBIOS data definition  TYPE 11  OEM Strings
+************************************************************************/
+
+SMBIOS_TABLE_TYPE11 mOemStringsType11 = {
+  { EFI_SMBIOS_TYPE_OEM_STRINGS, sizeof (SMBIOS_TABLE_TYPE11), SMBIOS_HANDLE_PI_RESERVED },
+  1 // StringCount
+};
+CHAR8 *mOemStringsType11Strings[] = {
+  "https://github/tianocore/edk2-platforms/Platform/RaspberryPi/",
+  NULL
+};
+
 /***********************************************************************
         SMBIOS data definition  TYPE16  Physical Memory ArrayInformation
 ************************************************************************/
@@ -854,6 +868,17 @@ SysSlotInfoUpdateSmbiosType9 (
   LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER*)&mSysSlotInfoType9, mSysSlotInfoType9Strings, NULL);
 }
 
+/***********************************************************************
+        SMBIOS data update  TYPE11  OEM Strings
+************************************************************************/
+VOID
+OemStringsUpdateSmbiosType11 (
+  VOID
+  )
+{
+  LogSmbiosData ((EFI_SMBIOS_TABLE_HEADER*)&mOemStringsType11, mOemStringsType11Strings, NULL);
+}
+
 /***********************************************************************
         SMBIOS data update  TYPE16  Physical Memory Array Information
 ************************************************************************/
@@ -961,6 +986,8 @@ PlatformSmbiosDriverEntryPoint (
 
   SysSlotInfoUpdateSmbiosType9 ();
 
+  OemStringsUpdateSmbiosType11 ();
+
   PhyMemArrayInfoUpdateSmbiosType16 ();
 
   MemDevInfoUpdateSmbiosType17 ();
--
2.17.1