Revision: 18176
          http://sourceforge.net/p/edk2/code/18176
Author:   lersek
Date:     2015-08-06 10:13:46 +0000 (Thu, 06 Aug 2015)
Log Message:
-----------
ArmVirtPkg: set SMBIOS version in DetectSmbiosVersionLib instead of 
QemuFwCfgToPcdDxe

This patch de-duplicates the logic added in commit

  ArmVirtPkg: QemuFwCfgToPcdDxe: set SMBIOS entry point version
  dynamically

(git c98da334, SVN r18043) by hooking DetectSmbiosVersionLib into
SmbiosDxe.

Although said commit was supposed to work with SMBIOS 3.0 payloads from
QEMU, in practice that never worked, because the size / signature checks
in SmbiosVersionInitialization() would always fail, due to the SMBIOS 3.0
entry point being structurally different. Therefore this patch doesn't
regress ArmVirtPkg.

Cc: Ard Biesheuvel <[email protected]>
Cc: Wei Huang <[email protected]>
Suggested-by: Jordan Justen <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <[email protected]>
Reviewed-by: Ard Biesheuvel <[email protected]>
Reviewed-by: Jordan Justen <[email protected]>

Revision Links:
--------------
    http://sourceforge.net/p/edk2/code/18043

Modified Paths:
--------------
    trunk/edk2/ArmVirtPkg/ArmVirtQemu.dsc
    trunk/edk2/ArmVirtPkg/QemuFwCfgToPcdDxe/QemuFwCfgToPcd.c
    trunk/edk2/ArmVirtPkg/QemuFwCfgToPcdDxe/QemuFwCfgToPcd.inf

Modified: trunk/edk2/ArmVirtPkg/ArmVirtQemu.dsc
===================================================================
--- trunk/edk2/ArmVirtPkg/ArmVirtQemu.dsc       2015-08-06 10:13:42 UTC (rev 
18175)
+++ trunk/edk2/ArmVirtPkg/ArmVirtQemu.dsc       2015-08-06 10:13:46 UTC (rev 
18176)
@@ -321,7 +321,10 @@
   #
   # SMBIOS Support
   #
-  MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf
+  MdeModulePkg/Universal/SmbiosDxe/SmbiosDxe.inf {
+    <LibraryClasses>
+      NULL|OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.inf
+  }
   OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf
 
   #

Modified: trunk/edk2/ArmVirtPkg/QemuFwCfgToPcdDxe/QemuFwCfgToPcd.c
===================================================================
--- trunk/edk2/ArmVirtPkg/QemuFwCfgToPcdDxe/QemuFwCfgToPcd.c    2015-08-06 
10:13:42 UTC (rev 18175)
+++ trunk/edk2/ArmVirtPkg/QemuFwCfgToPcdDxe/QemuFwCfgToPcd.c    2015-08-06 
10:13:46 UTC (rev 18176)
@@ -19,48 +19,9 @@
 #include <Uefi/UefiBaseType.h>
 #include <Uefi/UefiSpec.h>
 
-#include <IndustryStandard/SmBios.h>
-
-#include <Library/BaseMemoryLib.h>
-#include <Library/DebugLib.h>
 #include <Library/PcdLib.h>
 #include <Library/QemuFwCfgLib.h>
 
-
-/**
-  Set the SMBIOS entry point version for the generic SmbiosDxe driver.
-**/
-STATIC
-VOID
-SmbiosVersionInitialization (
-  VOID
-  )
-{
-  FIRMWARE_CONFIG_ITEM     Anchor;
-  UINTN                    AnchorSize;
-  SMBIOS_TABLE_ENTRY_POINT QemuAnchor;
-  UINT16                   SmbiosVersion;
-
-  if (RETURN_ERROR (QemuFwCfgFindFile ("etc/smbios/smbios-anchor", &Anchor,
-                      &AnchorSize)) ||
-      AnchorSize != sizeof QemuAnchor) {
-    return;
-  }
-
-  QemuFwCfgSelectItem (Anchor);
-  QemuFwCfgReadBytes (AnchorSize, &QemuAnchor);
-  if (CompareMem (QemuAnchor.AnchorString, "_SM_", 4) != 0 ||
-      CompareMem (QemuAnchor.IntermediateAnchorString, "_DMI_", 5) != 0) {
-    return;
-  }
-
-  SmbiosVersion = (UINT16)(QemuAnchor.MajorVersion << 8 |
-                           QemuAnchor.MinorVersion);
-  DEBUG ((EFI_D_INFO, "%a: SMBIOS version from QEMU: 0x%04x\n", __FUNCTION__,
-    SmbiosVersion));
-  PcdSet16 (PcdSmbiosVersion, SmbiosVersion);
-}
-
 EFI_STATUS
 EFIAPI
 ParseQemuFwCfgToPcd (
@@ -68,6 +29,5 @@
   IN EFI_SYSTEM_TABLE *SystemTable
   )
 {
-  SmbiosVersionInitialization ();
   return EFI_SUCCESS;
 }

Modified: trunk/edk2/ArmVirtPkg/QemuFwCfgToPcdDxe/QemuFwCfgToPcd.inf
===================================================================
--- trunk/edk2/ArmVirtPkg/QemuFwCfgToPcdDxe/QemuFwCfgToPcd.inf  2015-08-06 
10:13:42 UTC (rev 18175)
+++ trunk/edk2/ArmVirtPkg/QemuFwCfgToPcdDxe/QemuFwCfgToPcd.inf  2015-08-06 
10:13:46 UTC (rev 18176)
@@ -29,18 +29,14 @@
 
 [Packages]
   MdePkg/MdePkg.dec
-  MdeModulePkg/MdeModulePkg.dec
   OvmfPkg/OvmfPkg.dec
 
 [LibraryClasses]
-  BaseMemoryLib
-  DebugLib
   PcdLib
   QemuFwCfgLib
   UefiDriverEntryPoint
 
 [Pcd]
-  gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion
 
 [Depex]
   TRUE


------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to