summaryrefslogtreecommitdiff
path: root/OvmfPkg/Library/SmbiosVersionLib
diff options
context:
space:
mode:
Diffstat (limited to 'OvmfPkg/Library/SmbiosVersionLib')
-rw-r--r--OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.c107
-rw-r--r--OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.inf53
2 files changed, 0 insertions, 160 deletions
diff --git a/OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.c b/OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.c
deleted file mode 100644
index 950c3f7e0a..0000000000
--- a/OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/** @file
-
- A hook-in library for MdeModulePkg/Universal/SmbiosDxe, in order to set
- gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion (and possibly other PCDs)
- just before SmbiosDxe consumes them.
-
- Copyright (C) 2013, 2015, Red Hat, Inc.
- Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.<BR>
-
- This program and the accompanying materials are licensed and made available
- under the terms and conditions of the BSD License which accompanies this
- distribution. The full text of the license may be found at
- http://opensource.org/licenses/bsd-license.php
-
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT
- WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#include <IndustryStandard/SmBios.h>
-
-#include <Base.h>
-#include <Library/BaseMemoryLib.h>
-#include <Library/DebugLib.h>
-#include <Library/PcdLib.h>
-#include <Library/QemuFwCfgLib.h>
-
-typedef union {
- SMBIOS_TABLE_ENTRY_POINT V2;
- SMBIOS_TABLE_3_0_ENTRY_POINT V3;
-} QEMU_SMBIOS_ANCHOR;
-
-RETURN_STATUS
-EFIAPI
-DetectSmbiosVersion (
- VOID
- )
-{
- FIRMWARE_CONFIG_ITEM Anchor, Tables;
- UINTN AnchorSize, TablesSize;
- QEMU_SMBIOS_ANCHOR QemuAnchor;
- UINT16 SmbiosVersion;
-
- if (PcdGetBool (PcdQemuSmbiosValidated)) {
- //
- // Some other module, linked against this library, has already performed
- // the task at hand. This should never happen, but it's easy to handle;
- // just exit early.
- //
- return RETURN_SUCCESS;
- }
-
- if (RETURN_ERROR (QemuFwCfgFindFile (
- "etc/smbios/smbios-anchor", &Anchor, &AnchorSize)) ||
- RETURN_ERROR (QemuFwCfgFindFile (
- "etc/smbios/smbios-tables", &Tables, &TablesSize)) ||
- TablesSize == 0) {
- return RETURN_SUCCESS;
- }
-
- QemuFwCfgSelectItem (Anchor);
-
- switch (AnchorSize) {
- case sizeof QemuAnchor.V2:
- QemuFwCfgReadBytes (AnchorSize, &QemuAnchor);
-
- if (QemuAnchor.V2.MajorVersion != 2 ||
- QemuAnchor.V2.TableLength != TablesSize ||
- CompareMem (QemuAnchor.V2.AnchorString, "_SM_", 4) != 0 ||
- CompareMem (QemuAnchor.V2.IntermediateAnchorString, "_DMI_", 5) != 0) {
- return RETURN_SUCCESS;
- }
- SmbiosVersion = (UINT16)(QemuAnchor.V2.MajorVersion << 8 |
- QemuAnchor.V2.MinorVersion);
- break;
-
- case sizeof QemuAnchor.V3:
- QemuFwCfgReadBytes (AnchorSize, &QemuAnchor);
-
- if (QemuAnchor.V3.MajorVersion != 3 ||
- QemuAnchor.V3.TableMaximumSize != TablesSize ||
- CompareMem (QemuAnchor.V3.AnchorString, "_SM3_", 5) != 0) {
- return RETURN_SUCCESS;
- }
- SmbiosVersion = (UINT16)(QemuAnchor.V3.MajorVersion << 8 |
- QemuAnchor.V3.MinorVersion);
-
- DEBUG ((EFI_D_INFO, "%a: SMBIOS 3.x DocRev from QEMU: 0x%02x\n",
- __FUNCTION__, QemuAnchor.V3.DocRev));
- PcdSet8 (PcdSmbiosDocRev, QemuAnchor.V3.DocRev);
- break;
-
- default:
- return RETURN_SUCCESS;
- }
-
- DEBUG ((EFI_D_INFO, "%a: SMBIOS version from QEMU: 0x%04x\n", __FUNCTION__,
- SmbiosVersion));
- PcdSet16 (PcdSmbiosVersion, SmbiosVersion);
-
- //
- // SMBIOS platform drivers can now fetch and install
- // "etc/smbios/smbios-tables" from QEMU.
- //
- PcdSetBool (PcdQemuSmbiosValidated, TRUE);
- return RETURN_SUCCESS;
-}
diff --git a/OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.inf b/OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.inf
deleted file mode 100644
index 45d953a015..0000000000
--- a/OvmfPkg/Library/SmbiosVersionLib/DetectSmbiosVersionLib.inf
+++ /dev/null
@@ -1,53 +0,0 @@
-## @file
-#
-# A hook-in library for MdeModulePkg/Universal/SmbiosDxe, in order to set
-# gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion (and possibly other PCDs)
-# just before SmbiosDxe consumes them.
-#
-# Copyright (C) 2013, 2015, Red Hat, Inc.
-# Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.<BR>
-#
-# This program and the accompanying materials are licensed and made available
-# under the terms and conditions of the BSD License which accompanies this
-# distribution. The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT
-# WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-##
-
-[Defines]
- INF_VERSION = 0x00010005
- BASE_NAME = DetectSmbiosVersionLib
- FILE_GUID = 6c633bb2-ae33-49ae-9f89-b5aa999fe3ae
- MODULE_TYPE = BASE
- VERSION_STRING = 1.0
- LIBRARY_CLASS = SmbiosVersionLib|DXE_DRIVER
- CONSTRUCTOR = DetectSmbiosVersion
-
-#
-# The following information is for reference only and not required by the build
-# tools.
-#
-# VALID_ARCHITECTURES = IA32 X64 ARM AARCH64
-#
-
-[Sources]
- DetectSmbiosVersionLib.c
-
-[Packages]
- MdePkg/MdePkg.dec
- MdeModulePkg/MdeModulePkg.dec
- OvmfPkg/OvmfPkg.dec
-
-[LibraryClasses]
- BaseMemoryLib
- DebugLib
- PcdLib
- QemuFwCfgLib
-
-[Pcd]
- gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosVersion
- gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosDocRev
- gUefiOvmfPkgTokenSpaceGuid.PcdQemuSmbiosValidated