public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Samer El-Haj-Mahmoud" <samer.el-haj-mahmoud@arm.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"rebecca@nuviainc.com" <rebecca@nuviainc.com>
Cc: Leif Lindholm <leif@nuviainc.com>,
	Ard Biesheuvel <Ard.Biesheuvel@arm.com>,
	Sami Mujawar <Sami.Mujawar@arm.com>,
	Liming Gao <gaoliming@byosoft.com.cn>,
	Michael D Kinney <michael.d.kinney@intel.com>,
	Zhiguang Liu <zhiguang.liu@intel.com>,
	Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
Subject: Re: [edk2-devel] [PATCH v5 12/23] ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type00
Date: Tue, 5 Jan 2021 21:42:48 +0000	[thread overview]
Message-ID: <DB7PR08MB326011803735CF04D166633990D10@DB7PR08MB3260.eurprd08.prod.outlook.com> (raw)
In-Reply-To: <20210104225830.12606-13-rebecca@nuviainc.com>



> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Rebecca
> Cran via groups.io
> Sent: Monday, January 4, 2021 5:58 PM
> To: devel@edk2.groups.io
> Cc: Rebecca Cran <rebecca@nuviainc.com>; Leif Lindholm
> <leif@nuviainc.com>; Ard Biesheuvel <Ard.Biesheuvel@arm.com>; Sami
> Mujawar <Sami.Mujawar@arm.com>; Liming Gao
> <gaoliming@byosoft.com.cn>; Michael D Kinney
> <michael.d.kinney@intel.com>; Zhiguang Liu <zhiguang.liu@intel.com>
> Subject: [edk2-devel] [PATCH v5 12/23] ArmPkg: Add
> Universal/Smbios/SmbiosMiscDxe/Type00
>
> This code provides information for the SMBIOS Type 0 table.
>
> Signed-off-by: Rebecca Cran <rebecca@nuviainc.com>
> ---
>  ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorData.c
> |  92 +++++++
>
> ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFunctio
> n.c | 281 ++++++++++++++++++++
>  ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendor.uni
> |  17 ++
>  3 files changed, 390 insertions(+)
>
> diff --git
> a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorData.c
> b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorData.c
> new file mode 100644
> index 000000000000..3b0d907c3996
> --- /dev/null
> +++
> b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorData.c
> @@ -0,0 +1,92 @@
> +/** @file
> +  This file provides Smbios Type0 Data
> +
> +  Based on the files under Nt32Pkg/MiscSubClassPlatformDxe/
> +
> +  Copyright (c) 2006 - 2009, Intel Corporation. All rights
> + reserved.<BR>  Copyright (c) 2015, Hisilicon Limited. All rights
> + reserved.<BR>  Copyright (c) 2015, Linaro Limited. All rights
> + reserved.<BR>
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +
> +#include "SmbiosMisc.h"
> +
> +
> +//
> +// Static (possibly build generated) Bios Vendor data.
> +//
> +MISC_SMBIOS_TABLE_DATA(SMBIOS_TABLE_TYPE0, MiscBiosVendor) = {
> +  {                                          // Hdr
> +    EFI_SMBIOS_TYPE_BIOS_INFORMATION,          // Type,
> +    0,                                         // Length,
> +    0                                          // Handle
> +  },
> +  1,                                         // Vendor
> +  2,                                         // BiosVersion
> +  0xE000,                                    // BiosSegment
> +  3,                                         // BiosReleaseDate
> +  0,                                         // BiosSize
> +  {                                          // BiosCharacteristics
> +    0,                                         // Reserved                          :2
> +    0,                                         // Unknown                           :1
> +    0,                                         // BiosCharacteristicsNotSupported   :1
> +    0,                                         // IsaIsSupported                    :1
> +    0,                                         // McaIsSupported                    :1
> +    0,                                         // EisaIsSupported                   :1
> +    1,                                         // PciIsSupported                    :1
Not all platforms support PCI. Can any of these be overridden by a platform PCD? May not worth it as these flags are not really used by any OS/user software because they are often incorrect.

> +    0,                                         // PcmciaIsSupported                 :1
> +    1,                                         // PlugAndPlayIsSupported            :1
> +    0,                                         // ApmIsSupported                    :1
> +    1,                                         // BiosIsUpgradable                  :1
> +    1,                                         // BiosShadowingAllowed              :1
> +    0,                                         // VlVesaIsSupported                 :1
> +    0,                                         // EscdSupportIsAvailable            :1
> +    1,                                         // BootFromCdIsSupported             :1
> +    1,                                         // SelectableBootIsSupported         :1
> +    0,                                         // RomBiosIsSocketed                 :1
> +    0,                                         // BootFromPcmciaIsSupported         :1
> +    1,                                         // EDDSpecificationIsSupported       :1
Should be 0. This is x86 legacy Enhanced Disk Drive Spec

> +    0,                                         // JapaneseNecFloppyIsSupported      :1
> +    0,                                         // JapaneseToshibaFloppyIsSupported  :1
> +    0,                                         // Floppy525_360IsSupported          :1
> +    0,                                         // Floppy525_12IsSupported           :1
> +    0,                                         // Floppy35_720IsSupported           :1
> +    0,                                         // Floppy35_288IsSupported           :1
> +    0,                                         // PrintScreenIsSupported            :1
> +    0,                                         // Keyboard8042IsSupported           :1
> +    0,                                         // SerialIsSupported                 :1
> +    0,                                         // PrinterIsSupported                :1
> +    0,                                         // CgaMonoIsSupported                :1
> +    0,                                         // NecPc98                           :1
> +    0                                          // ReservedForVendor                 :32
> +  },
> +
> +  {
> +    0x03,                                        // BIOSCharacteristicsExtensionBytes[0]
> +    //  {                                          // BiosReserved
> +    //    1,                                         // AcpiIsSupported                   :1
> +    //    1,                                         // UsbLegacyIsSupported              :1

Should be 0. This is x86 legacy USB BIOS support



> +    //    0,                                         // AgpIsSupported                    :1
> +    //    0,                                         // I20BootIsSupported                :1
> +    //    0,                                         // Ls120BootIsSupported              :1
> +    //    0,                                         // AtapiZipDriveBootIsSupported      :1
> +    //    0,                                         // Boot1394IsSupported               :1
> +    //    0                                          // SmartBatteryIsSupported           :1
> +    //  },
> +    0x0D                                         //BIOSCharacteristicsExtensionBytes[1]
> +    //  {                                          //SystemReserved
> +    //    1,                                         //BiosBootSpecIsSupported            :1

Should be 0. "BIOS Boot Spec" is the legacy "BBS 1.01" spec, which is not supported on Arm UEFI systems (it is only supported on legacy BIOS x86 systems)


> +    //    0,                                         //FunctionKeyNetworkBootIsSupported  :1
> +    //    1,                                         //TargetContentDistributionEnabled   :1
> +    //    1,                                         //UefiSpecificationSupported         :1
> +    //    0,                                         //VirtualMachineSupported            :1
> +    //    0                                          //ExtensionByte2Reserved             :3
> +    //  },
> +  },


> +  0xFF,                                        // SystemBiosMajorRelease;
> +  0xFF,                                        // SystemBiosMinorRelease;
> +  0xFF,                                     // EmbeddedControllerFirmwareMajorRelease;
> +  0xFF                                      // EmbeddedControllerFirmwareMinorRelease;
These 4 fields are important and must be populated. Windows for example require these not to be 0xFF (see https://docs.microsoft.com/en-us/windows-hardware/design/compatibility/whcp-specifications-policies , Systems.pdf, under System.Fundamentals.SMBIOS). The RPi for instance populates the SystemBios Major/Minor fields from as values derived from PcdFirmwareVersionString, although that is platform specific (see for instance Platform/RaspberryPi/Drivers/PlatformSmbiosDxe/PlatformSmbiosDxe.c). The best approach in my opinion is to let the platforms pass these values using either dynamic PCDs or an Oem library call.


> +};
> diff --git
> a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFuncti
> on.c
> b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFuncti
> on.c
> new file mode 100644
> index 000000000000..4074b10d70f2
> --- /dev/null
> +++
> b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendorFuncti
> o
> +++ n.c
> @@ -0,0 +1,281 @@
> +/** @file
> +  This driver parses the mMiscSubclassDataTable structure and reports
> +  any generated data to the DataHub.
> +
> +  Copyright (c) 2009, Intel Corporation. All rights reserved.<BR>
> + Copyright (c) 2015, Hisilicon Limited. All rights reserved.<BR>
> + Copyright (c) 2015, Linaro Limited. All rights reserved.<BR>
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +#include "SmbiosMisc.h"
> +typedef struct {
> +  CONST CHAR8* MonthStr;
> +  UINT32       MonthInt;
> +} MONTH_DESCRIPTION;
> +
> +STATIC CONST
> +MONTH_DESCRIPTION mMonthDescription[] = {
> +  { "Jan", 1 },
> +  { "Feb", 2 },
> +  { "Mar", 3 },
> +  { "Apr", 4 },
> +  { "May", 5 },
> +  { "Jun", 6 },
> +  { "Jul", 7 },
> +  { "Aug", 8 },
> +  { "Sep", 9 },
> +  { "Oct", 10 },
> +  { "Nov", 11 },
> +  { "Dec", 12 },
> +  { "???", 1 },  // Use 1 as default month };
> +
> +/**
> +  Field Filling Function. Transform an EFI_EXP_BASE2_DATA to a byte, with
> '64k'
> +  as the unit.
> +
> +  @param  Value              Pointer to Base2_Data
> +
> +  @retval
> +
> +**/
> +UINT8
> +Base2ToByteWith64KUnit (
> +  IN  UINTN  Value
> +  )
> +{
> +  UINT8 Size;
> +
> +  Size = ((Value + (SIZE_64KB - 1)) >> 16);
> +
> +  return Size;
> +}
> +
> +/**
> +  Returns the date and time this file (and firmware) was built.
> +
> +  @param[out] *Time Pointer to the EFI_TIME structure to fill in.
> +**/
> +VOID
> +GetReleaseTime (
> +  OUT EFI_TIME *Time
> +  )
> +{
> +  CONST CHAR8      *ReleaseDate = __DATE__;
> +  CONST CHAR8      *ReleaseTime = __TIME__;
> +  UINTN            i;
> +
> +  for (i = 0; i < 12; i++) {
> +    if (AsciiStrnCmp (ReleaseDate, mMonthDescription[i].MonthStr, 3) == 0) {
> +      break;
> +    }
> +  }
> +
> +  Time->Month = mMonthDescription[i].MonthInt;
> +  Time->Day = AsciiStrDecimalToUintn (ReleaseDate + 4);
> +  Time->Year = AsciiStrDecimalToUintn (ReleaseDate + 7);
> +  Time->Hour = AsciiStrDecimalToUintn (ReleaseTime);
> +  Time->Minute = AsciiStrDecimalToUintn (ReleaseTime + 3);
> +  Time->Second = AsciiStrDecimalToUintn (ReleaseTime + 6); }
> +
> +/**
> +  Fetches the firmware ('BIOS') release date from the
> +  FirmwareVersionInfo HOB.
> +
> +  @return The release date as a UTF-16 string **/
> +CHAR16 *
> +GetBiosReleaseDate (
> +  VOID
> +  )
> +{
> +  CHAR16      *ReleaseDate;
> +  EFI_TIME    BuildTime;
> +
> +  ReleaseDate = AllocateZeroPool ((sizeof (CHAR16)) *
> + SMBIOS_STRING_MAX_LENGTH);  if (ReleaseDate == NULL) {
> +      return NULL;
> +  }
> +
> +  GetReleaseTime (&BuildTime);
> +
> +  (VOID)UnicodeSPrintAsciiFormat (ReleaseDate,
> +                        (sizeof (CHAR16)) * SMBIOS_STRING_MAX_LENGTH,
> +                        "%02d/%02d/%4d",
> +                        BuildTime.Month,
> +                        BuildTime.Day,
> +                        BuildTime.Year
> +                        );
> +
> +  return ReleaseDate;
> +}
> +
> +/**
> +  Fetches the firmware ('BIOS') version from the
> +  FirmwareVersionInfo HOB.
> +
> +  @return The version as a UTF-16 string **/
> +CHAR16 *
> +GetBiosVersion (
> +  VOID
> +  )
> +{
> +  CHAR16 *ReleaseString;
> +
> +  ReleaseString =
> +    (CHAR16 *)FixedPcdGetPtr (PcdFirmwareVersionString);
> +
> +  return ReleaseString;
> +}
> +
> +
> +/**
> +  This function makes boot time changes to the contents of the
> +  MiscBiosVendor (Type 0).
> +
> +  @param  RecordData                 Pointer to copy of RecordData from the Data
> Table.
> +
> +  @retval EFI_SUCCESS                All parameters were valid.
> +  @retval EFI_UNSUPPORTED            Unexpected RecordType value.
> +  @retval EFI_INVALID_PARAMETER      Invalid parameter was found.
> +
> +**/
> +MISC_SMBIOS_TABLE_FUNCTION (MiscBiosVendor) {
> +  CHAR8                 *OptionalStrStart;
> +  CHAR8                 *StrStart;
> +  UINTN                 VendorStrLen;
> +  UINTN                 VerStrLen;
> +  UINTN                 DateStrLen;
> +  UINTN                 BiosPhysicalSize;
> +  CHAR16                *Vendor;
> +  CHAR16                *Version;
> +  CHAR16                *ReleaseDate;
> +  CHAR16                *Char16String;
> +  EFI_STATUS            Status;
> +  EFI_STRING_ID         TokenToUpdate;
> +  EFI_STRING_ID         TokenToGet;
> +  SMBIOS_TABLE_TYPE0    *SmbiosRecord;
> +  EFI_SMBIOS_HANDLE     SmbiosHandle;
> +  SMBIOS_TABLE_TYPE0    *InputData;
> +
> +  //
> +  // First check for invalid parameters.
> +  //
> +  if (RecordData == NULL) {
> +    return EFI_INVALID_PARAMETER;
> +  }
> +
> +  InputData = (SMBIOS_TABLE_TYPE0 *)RecordData;
> +
> +  Vendor = (CHAR16 *) PcdGetPtr (PcdFirmwareVendor);
> +
> +  if (StrLen (Vendor) > 0) {
> +    TokenToUpdate = STRING_TOKEN (STR_MISC_BIOS_VENDOR);
> +    HiiSetString (mHiiHandle, TokenToUpdate, Vendor, NULL);  }
> +
> +  Version = GetBiosVersion();
> +
> +  if (StrLen (Version) > 0) {
> +    TokenToUpdate = STRING_TOKEN (STR_MISC_BIOS_VERSION);
> +    HiiSetString (mHiiHandle, TokenToUpdate, Version, NULL);  } else {
> +    Version = (CHAR16 *) PcdGetPtr (PcdFirmwareVersionString);
> +    if (StrLen (Version) > 0) {
> +      TokenToUpdate = STRING_TOKEN (STR_MISC_BIOS_VERSION);
> +      HiiSetString (mHiiHandle, TokenToUpdate, Version, NULL);
> +    }
> +  }
> +
> +  Char16String = GetBiosReleaseDate ();  if (StrLen(Char16String) > 0)
> + {
> +    TokenToUpdate = STRING_TOKEN (STR_MISC_BIOS_RELEASE_DATE);
> +    HiiSetString (mHiiHandle, TokenToUpdate, Char16String, NULL);  }
> +
> +  TokenToGet = STRING_TOKEN (STR_MISC_BIOS_VENDOR);  Vendor =
> + HiiGetPackageString (&gEfiCallerIdGuid, TokenToGet, NULL);
> + VendorStrLen = StrLen (Vendor);
> +
> +  TokenToGet = STRING_TOKEN (STR_MISC_BIOS_VERSION);  Version =
> + HiiGetPackageString (&gEfiCallerIdGuid, TokenToGet, NULL);  VerStrLen
> + = StrLen (Version);
> +
> +  TokenToGet = STRING_TOKEN (STR_MISC_BIOS_RELEASE_DATE);
> ReleaseDate
> + = HiiGetPackageString (&gEfiCallerIdGuid, TokenToGet, NULL);
> + DateStrLen = StrLen (ReleaseDate);
> +
> +  //
> +  // Now update the BiosPhysicalSize
> +  //
> +  BiosPhysicalSize = FixedPcdGet32 (PcdFdSize);
> +
> +  //
> +  // Two zeros following the last string.
> +  //
> +  SmbiosRecord = AllocateZeroPool (sizeof (SMBIOS_TABLE_TYPE0) +
> VendorStrLen + 1 +
> +                                   VerStrLen + 1 +
> +                                   DateStrLen + 1 + 1);  if
> + (SmbiosRecord == NULL) {
> +    Status = EFI_OUT_OF_RESOURCES;
> +    goto Exit;
> +  }
> +
> +  (VOID)CopyMem (SmbiosRecord, InputData, sizeof
> (SMBIOS_TABLE_TYPE0));
> +
> +  SmbiosRecord->Hdr.Length = sizeof (SMBIOS_TABLE_TYPE0);
> + SmbiosRecord->BiosSegment = (UINT16)(FixedPcdGet32
> (PcdFdBaseAddress)
> + / SIZE_64KB);  if (BiosPhysicalSize < SIZE_16MB) {
> +    SmbiosRecord->BiosSize = Base2ToByteWith64KUnit (BiosPhysicalSize)
> + - 1;  } else {
> +    SmbiosRecord->BiosSize = 0xFF;
> +    if (BiosPhysicalSize <= 0x3FFF) {
> +      SmbiosRecord->ExtendedBiosSize.Size = BiosPhysicalSize / SIZE_1MB;
> +      SmbiosRecord->ExtendedBiosSize.Unit = 0; // Size is in MB
> +    } else {
> +      SmbiosRecord->ExtendedBiosSize.Size = BiosPhysicalSize / SIZE_1GB;
> +      SmbiosRecord->ExtendedBiosSize.Unit = 1; // Size is in GB
> +    }
> +  }
> +

The SMBIOS spec does not say not to populate the Extended BIOS Size when the Size is < 16MB. You should always populate the Extended BIOS Size


> +  OptionalStrStart = (CHAR8 *)(SmbiosRecord + 1);
> + UnicodeStrToAsciiStrS (Vendor, OptionalStrStart, VendorStrLen + 1);
> + StrStart = OptionalStrStart + VendorStrLen + 1;  UnicodeStrToAsciiStrS
> + (Version, StrStart, VerStrLen + 1);  StrStart += VerStrLen + 1;
> + UnicodeStrToAsciiStrS (ReleaseDate, StrStart, DateStrLen + 1);  //  //
> + Now we have got the full smbios record, call smbios protocol to add this
> record.
> +  //
> +  Status = LogSmbiosData ((UINT8*)SmbiosRecord, &SmbiosHandle);  if
> + (EFI_ERROR (Status)) {
> +      DEBUG ((DEBUG_ERROR, "[%a]:[%dL] Smbios Type00 Table Log Failed!
> %r \n",
> +              __FUNCTION__, __LINE__, Status));  }
> +
> +  FreePool (SmbiosRecord);
> +
> +Exit:
> +  if (Vendor != NULL) {
> +    FreePool (Vendor);
> +  }
> +
> +  if (Version != NULL) {
> +    FreePool (Version);
> +  }
> +
> +  if (ReleaseDate != NULL) {
> +    FreePool (ReleaseDate);
> +  }
> +
> +  if (Char16String != NULL) {
> +    FreePool (Char16String);
> +  }
> +
> +  return Status;
> +}
> diff --git
> a/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendor.uni
> b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendor.uni
> new file mode 100644
> index 000000000000..ba981e3db391
> --- /dev/null
> +++
> b/ArmPkg/Universal/Smbios/SmbiosMiscDxe/Type00/MiscBiosVendor.uni
> @@ -0,0 +1,17 @@
> +/** @file
> +  Based on files under Nt32Pkg/MiscSubClassPlatformDxe/
> +
> +  Copyright (c) 2006 - 2010, Intel Corporation. All rights
> + reserved.<BR>  Copyright (c) 2015, Hisilicon Limited. All rights
> + reserved.<BR>  Copyright (c) 2015, Linaro Limited. All rights
> + reserved.<BR>
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +/=#
> +
> +#string STR_MISC_BIOS_VENDOR           #language en-US  "Not Specified"
> +#string STR_MISC_BIOS_VERSION          #language en-US  "Not Specified"
> +#string STR_MISC_BIOS_RELEASE_DATE     #language en-US  "Not Specified"
> +#string STR_MISC_BIOS_VENDOR           #language en-US  "Not Specified"
> +#string STR_MISC_BIOS_RELEASE_DATE     #language en-US  "12/02/2020"
> --
> 2.26.2
>
>
>
> 
>

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

  reply	other threads:[~2021-01-05 21:43 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-04 22:58 [PATCH v5 00/23] ArmPkg,MdePkg: Add Universal/Smbios, and related changes Rebecca Cran
2021-01-04 22:58 ` [PATCH v5 01/23] ArmPkg: Add ARM SMC Architecture functions to ArmStdSmc.h Rebecca Cran
2021-01-04 22:58 ` [PATCH v5 02/23] MdePkg: Update IndustryStandard/SmBios.h with processor status data Rebecca Cran
2021-01-04 22:58 ` [PATCH v5 03/23] ArmPkg: Add register encoding definition for MMFR2 Rebecca Cran
2021-01-05 19:34   ` [edk2-devel] " Sami Mujawar
2021-01-10  1:26   ` Leif Lindholm
2021-01-04 22:58 ` [PATCH v5 04/23] ArmPkg: Add helper to read the Memory Model Features Register 2 Rebecca Cran
2021-01-06  8:55   ` [edk2-devel] " Sami Mujawar
2021-01-10  1:23   ` Leif Lindholm
2021-01-04 22:58 ` [PATCH v5 05/23] ArmPkg: Add helper function to read the Memory Model Feature Register 4 Rebecca Cran
2021-01-10  1:26   ` Leif Lindholm
2021-01-04 22:58 ` [PATCH v5 06/23] ArmPkg: Fix the return type of the ReadCCSIDR function Rebecca Cran
2021-01-04 22:58 ` [PATCH v5 07/23] ArmPkg: Update ArmLibPrivate.h with cache register definitions Rebecca Cran
2021-01-06  9:14   ` [edk2-devel] " Sami Mujawar
2021-01-04 22:58 ` [PATCH v5 08/23] ArmPkg: Add definition of the maximum cache level in ARMv8-A Rebecca Cran
2021-01-04 22:58 ` [PATCH v5 09/23] ArmPkg: Add helper to read CCIDX status Rebecca Cran
2021-01-10  1:28   ` Leif Lindholm
2021-01-04 22:58 ` [PATCH v5 10/23] ArmPkg: Add helper to read the CCSIDR2 register Rebecca Cran
2021-01-06  9:55   ` [edk2-devel] " Sami Mujawar
2021-01-10  1:31   ` Leif Lindholm
2021-01-04 22:58 ` [PATCH v5 11/23] ArmPkg: Add Universal/Smbios/ProcessorSubClassDxe Rebecca Cran
2021-01-05 22:06   ` [edk2-devel] " Samer El-Haj-Mahmoud
2021-01-04 22:58 ` [PATCH v5 12/23] ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type00 Rebecca Cran
2021-01-05 21:42   ` Samer El-Haj-Mahmoud [this message]
2021-01-04 22:58 ` [PATCH v5 13/23] ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type01 Rebecca Cran
2021-01-05 22:00   ` [edk2-devel] " Samer El-Haj-Mahmoud
2021-01-05 22:02     ` Samer El-Haj-Mahmoud
2021-01-04 22:58 ` [PATCH v5 14/23] ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type02 Rebecca Cran
2021-01-05 21:59   ` [edk2-devel] " Samer El-Haj-Mahmoud
2021-01-04 22:58 ` [PATCH v5 15/23] ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type03 Rebecca Cran
2021-01-05 21:47   ` [edk2-devel] " Samer El-Haj-Mahmoud
2021-01-11 23:34     ` Rebecca Cran
2021-01-12  2:58       ` Samer El-Haj-Mahmoud
2021-01-04 22:58 ` [PATCH v5 16/23] ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type13 Rebecca Cran
2021-01-04 22:58 ` [PATCH v5 17/23] ArmPkg: Add Universal/Smbios/SmbiosMiscDxe/Type32 Rebecca Cran
2021-01-05 21:12   ` [edk2-devel] " Samer El-Haj-Mahmoud
2021-01-04 22:58 ` [PATCH v5 18/23] ArmPkg: Add Universal/Smbios/SmbiosMiscDxe Rebecca Cran
2021-01-10  2:03   ` Leif Lindholm
2021-01-11  0:21     ` Rebecca Cran
2021-01-11  1:29       ` Leif Lindholm
2021-01-11  5:22         ` 回复: [edk2-devel] " gaoliming
2021-01-12 23:22     ` Rebecca Cran
2021-01-04 22:58 ` [PATCH v5 19/23] ArmPkg: Add Library/OemMiscLib.h Rebecca Cran
2021-01-10  2:08   ` Leif Lindholm
2021-01-04 22:58 ` [PATCH v5 20/23] ArmPkg: Add Universal/Smbios/OemMiscLibNull Rebecca Cran
2021-01-10  2:11   ` Leif Lindholm
2021-01-04 22:58 ` [PATCH v5 21/23] ArmPkg: Add OemMiscLibNull instance to ArmPkg.dsc Rebecca Cran
2021-01-10  2:12   ` Leif Lindholm
2021-01-04 22:58 ` [PATCH v5 22/23] ArmPkg: Add SMBIOS PCDs to ArmPkg.dec Rebecca Cran
2021-01-10  2:13   ` Leif Lindholm
2021-01-04 22:58 ` [PATCH v5 23/23] ArmPkg: Add Universal/Smbios drivers to ArmPkg.dsc Rebecca Cran
2021-01-10  2:15   ` Leif Lindholm
2021-01-05 22:14 ` [edk2-devel] [PATCH v5 00/23] ArmPkg,MdePkg: Add Universal/Smbios, and related changes Samer El-Haj-Mahmoud
2021-01-08 15:55   ` Rebecca Cran
2021-01-08 16:40     ` Leif Lindholm

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DB7PR08MB326011803735CF04D166633990D10@DB7PR08MB3260.eurprd08.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox