]> git.proxmox.com Git - mirror_edk2.git/commitdiff
OvmfPkg: SmbiosVersionLib: recognize SMBIOS 3.x entry point
authorLaszlo Ersek <lersek@redhat.com>
Thu, 6 Aug 2015 10:14:12 +0000 (10:14 +0000)
committerlersek <lersek@Edk2>
Thu, 6 Aug 2015 10:14:12 +0000 (10:14 +0000)
Also set the DocRev field the way QEMU exposes it, because
MdeModulePkg/Universal/SmbiosDxe lets us control that field too.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Wei Huang <wei@redhat.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Gabriel L. Somlo <somlo@cmu.edu>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18182 6f19259b-4bc3-4df7-8a09-765794883524

OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.c
OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.inf
OvmfPkg/OvmfPkgIa32.dsc
OvmfPkg/OvmfPkgIa32X64.dsc
OvmfPkg/OvmfPkgX64.dsc

index 9d5e337e1a3ac1c5777b9b9814df50e489fc70fb..950c3f7e0a317213227d0832650c31c548df1cae 100644 (file)
@@ -27,6 +27,7 @@
 \r
 typedef union {\r
   SMBIOS_TABLE_ENTRY_POINT     V2;\r
+  SMBIOS_TABLE_3_0_ENTRY_POINT V3;\r
 } QEMU_SMBIOS_ANCHOR;\r
 \r
 RETURN_STATUS\r
@@ -73,6 +74,22 @@ DetectSmbiosVersion (
                              QemuAnchor.V2.MinorVersion);\r
     break;\r
 \r
+  case sizeof QemuAnchor.V3:\r
+    QemuFwCfgReadBytes (AnchorSize, &QemuAnchor);\r
+\r
+    if (QemuAnchor.V3.MajorVersion != 3 ||\r
+        QemuAnchor.V3.TableMaximumSize != TablesSize ||\r
+        CompareMem (QemuAnchor.V3.AnchorString, "_SM3_", 5) != 0) {\r
+      return RETURN_SUCCESS;\r
+    }\r
+    SmbiosVersion = (UINT16)(QemuAnchor.V3.MajorVersion << 8 |\r
+                             QemuAnchor.V3.MinorVersion);\r
+\r
+    DEBUG ((EFI_D_INFO, "%a: SMBIOS 3.x DocRev from QEMU: 0x%02x\n",\r
+      __FUNCTION__, QemuAnchor.V3.DocRev));\r
+    PcdSet8 (PcdSmbiosDocRev, QemuAnchor.V3.DocRev);\r
+    break;\r
+\r
   default:\r
     return RETURN_SUCCESS;\r
   }\r
index 8487e73e4683f0c67c2458d2569519183686c07f..45d953a0153a2385baa1bd96601d9db33db1592d 100644 (file)
@@ -49,4 +49,5 @@
 \r
 [Pcd]\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev\r
   gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated\r
index 6353f1da9bb4d0ac6c50b17d32c0cd9e249a56b3..4ab618d39570e8cbfe5f89231ad4e4599f43c263 100644 (file)
   gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480\r
 \r
   gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0208\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0\r
   gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated|FALSE\r
 \r
 ################################################################################\r
index 47baeb80ce2a5e67903997bb9586f166e2e52604..90ca42a4d9be10efefa4b10beefe596afa6647c6 100644 (file)
   gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480\r
 \r
   gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0208\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0\r
   gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated|FALSE\r
 \r
 ################################################################################\r
index dd8148d0a90cfbac47b88d4255c4388d4ff33035..b72eaa92f82e397d54d87dfdce34da7daf814db2 100644 (file)
   gEfiMdeModulePkgTokenSpaceGuid.PcdSetupVideoVerticalResolution|480\r
 \r
   gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion|0x0208\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev|0x0\r
   gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated|FALSE\r
 \r
 ################################################################################\r