System Management BIOS

Last updated
System Management BIOS
AbbreviationSMBIOS
StatusPublished
Year started1999;24 years ago (1999)
Latest version3.7.0
July 21, 2023;3 months ago (2023-07-21)
Organization Distributed Management Task Force (DMTF)
Related standards Common Information Model (CIM), Web-Based Enterprise Management (WBEM), Redfish
Domain Systems management
Website www.dmtf.org/standards/smbios

In computing, the System Management BIOS (SMBIOS) specification defines data structures (and access methods) that can be used to read management information produced by the BIOS of a computer. [1] This eliminates the need for the operating system to probe hardware directly to discover what devices are present in the computer. The SMBIOS specification is produced by the Distributed Management Task Force (DMTF), a non-profit standards development organization. The DMTF estimates that two billion client and server systems implement SMBIOS. [2]

Contents

The DMTF released the version 3.6.0 of the specification on June 20, 2022. [3]

SMBIOS was originally known as Desktop Management BIOS (DMIBIOS), since it interacted with the Desktop Management Interface (DMI). [4]

History

Version 1 of the Desktop Management BIOS (DMIBIOS) specification was produced by Phoenix Technologies in or before 1996. [5] [6]

Version 2.0 of the Desktop Management BIOS specification was released on March 6, 1996 by American Megatrends (AMI), Award Software, Dell, Intel, Phoenix Technologies, and SystemSoft Corporation. It introduced 16-bit plug-and-play functions used to access the structures from Windows 95. [7]

The last version to be published directly by vendors was 2.3 on August 12, 1998. The authors were American Megatrends, Award Software, Compaq, Dell, Hewlett-Packard, Intel, International Business Machines (IBM), Phoenix Technologies, and SystemSoft Corporation.

Circa 1999, the Distributed Management Task Force (DMTF) took ownership of the specification. The first version published by the DMTF was 2.3.1 on March 16, 1999. At approximately the same time Microsoft started to require that OEMs and BIOS vendors support the interface/data-set in order to have Microsoft certification.

Version 3.0.0, introduced in February 2015, added a 64-bit entry point, which can coexist with the previously defined 32-bit entry point.

Version 3.4.0 was released in August 2020. [8]

Version 3.5.0 was released in September 2021. [9]

Version 3.6.0 was released in June 2022. [10]

Contents

The SMBIOS table consists of an entry point (two types are defined, 32-bit and 64-bit), and a variable number of structures that describe platform components and features. These structures are occasionally referred to as "tables" or "records" in third-party documentation.

Structure types

As of version 3.3.0, the SMBIOS specification defines the following structure types: [11] [12]

Accessing SMBIOS data

The EFI configuration table (EFI_CONFIGURATION_TABLE) contains entries pointing to the SMBIOS 2 and/or SMBIOS 3 tables. [13] There are several ways to access the data, depending on the platform and operating system.

From UEFI

In the UEFI Shell, the SmbiosView command can retrieve and display the SMBIOS data. [14] [15] One can often enter the UEFI shell by entering the system firmware settings, and then selecting the shell as a boot option (as opposed to a DVD drive or hard drive).

From Unix

For Linux, FreeBSD, etc., the dmidecode utility can be used.

From Windows

Microsoft specifies WMI as the preferred mechanism for accessing SMBIOS information from Microsoft Windows. [16] [17]

On Windows systems that support it (XP and later), some SMBIOS information can be viewed with either the WMIC utility with 'BIOS'/'MEMORYCHIP'/'BASEBOARD' and similar parameters, or by looking in the Windows Registry under HKLM\HARDWARE\DESCRIPTION\System.

Various software utilities can retrieve raw SMBIOS data, including FirmwareTablesView [18] and AIDA64.

Generating SMBIOS data

Table and structure creation is normally up to the system firmware/BIOS. The UEFI Platform Initialization (PI) specification includes an SMBIOS protocol (EFI_SMBIOS_PROTOCOL) that allows components to submit SMBIOS structures for inclusion, and enables the producer to create the SMBIOS table for a platform. [19]

Platform virtualization software can also generate SMBIOS tables for use inside VMs, for instance QEMU. [20]

If the SMBIOS data is not generated and filled correctly then the machine may behave unexpectedly. For example, a Mini PC that advertises Chassis Information | Type = Tablet may behave unexpectedly using Linux. A desktop manager like GNOME will attempt to monitor a non-existent battery and shut down the screen and network interfaces when the missing battery drops below a threshold. Additionally, if the Chassis Information | Manufacturer is not filled in correctly then work-arounds for the incorrect Type = Tablet problem cannot be applied. [21]

See also

Related Research Articles

<span class="mw-page-title-main">BIOS</span> Firmware for hardware initialization and OS runtime services

In computing, BIOS is firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the booting process. The BIOS firmware comes pre-installed on an IBM PC or IBM PC compatible's system board and exists in some UEFI-based systems to maintain compatibility with operating systems that do not support UEFI native operation. The name originates from the Basic Input/Output System used in the CP/M operating system in 1975. The BIOS originally proprietary to the IBM PC has been reverse engineered by some companies looking to create compatible systems. The interface of that original system serves as a de facto standard.

The Portable Executable (PE) format is a file format for executables, object code, DLLs and others used in 32-bit and 64-bit versions of Windows operating systems, and in UEFI environments. The PE format is a data structure that encapsulates the information necessary for the Windows OS loader to manage the wrapped executable code. This includes dynamic library references for linking, API export and import tables, resource management data and thread-local storage (TLS) data. On NT operating systems, the PE format is used for EXE, DLL, SYS, MUI and other file types. The Unified Extensible Firmware Interface (UEFI) specification states that PE is the standard executable format in EFI environments.

<span class="mw-page-title-main">Boot sector</span> Sector of a persistent data storage device

A boot sector is the sector of a persistent data storage device which contains machine code to be loaded into random-access memory (RAM) and then executed by a computer system's built-in firmware.

<span class="mw-page-title-main">Distributed Management Task Force</span> Organization

Distributed Management Task Force (DMTF) is a 501(c)(6) nonprofit industry standards organization that creates open manageability standards spanning diverse emerging and traditional IT infrastructures including cloud, virtualization, network, servers and storage. Member companies and alliance partners collaborate on standards to improve interoperable management of information technologies.

<span class="mw-page-title-main">GNU GRUB</span> Boot loader package

GNU GRUB is a boot loader package from the GNU Project. GRUB is the reference implementation of the Free Software Foundation's Multiboot Specification, which provides a user the choice to boot one of multiple operating systems installed on a computer or select a specific kernel configuration available on a particular operating system's partitions.

<span class="mw-page-title-main">Preboot Execution Environment</span> Standard for booting from a server

In computing, the Preboot eXecution Environment, PXE specification describes a standardized client–server environment that boots a software assembly, retrieved from a network, on PXE-enabled clients. On the client side it requires only a PXE-capable network interface controller (NIC), and uses a small set of industry-standard network protocols such as DHCP and TFTP.

<span class="mw-page-title-main">UEFI</span> Operating system and firmware specification

Unified Extensible Firmware Interface is a specification that defines the architecture of the platform firmware used for booting the computer hardware and its interface for interaction with the operating system. Examples of firmware that implement the specification are AMI Aptio, Phoenix SecureCore, TianoCore EDK II, InsydeH2O. UEFI replaces the BIOS which was present in the boot ROM of all personal computers that are IBM PC compatible, although it can provide backwards compatibility with the BIOS using CSM booting. Intel developed the original Extensible Firmware Interface (EFI) specification. Some of the EFI's practices and data formats mirror those of Microsoft Windows. In 2005, UEFI deprecated EFI 1.10.

<span class="mw-page-title-main">American Megatrends</span> International hardware and software company

American Megatrends International, LLC, doing business as AMI, is an international hardware and software company, specializing in PC hardware and firmware. The company was founded in 1985 by Pat Sarma and Subramonian Shankar. It is headquartered in Building 800 at 3095 Satellite Boulevard in unincorporated Gwinnett County, Georgia, United States, near the city of Duluth, and in the Atlanta metropolitan area.

<span class="mw-page-title-main">QEMU</span> Free virtualization and emulation software

QEMU is a free and open-source emulator. It emulates a computer's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest operating systems. It can interoperate with Kernel-based Virtual Machine (KVM) to run virtual machines at near-native speed. QEMU can also do emulation for user-level processes, allowing applications compiled for one architecture to run on another.

<span class="mw-page-title-main">UEFI Forum</span> Non-profit corporation based in Oregon

UEFI Forum, Inc. is an alliance between technology companies to coordinate the development of the UEFI specifications. The board of directors includes representatives from twelve promoter companies: AMD, American Megatrends, ARM, Apple, Dell, Hewlett Packard Enterprise, HP Inc., Insyde Software, Intel, Lenovo, Microsoft, and Phoenix Technologies.

Advanced Configuration and Power Interface (ACPI) is an open standard that operating systems can use to discover and configure computer hardware components, to perform power management, auto configuration, and status monitoring. First released in December 1996, ACPI aims to replace Advanced Power Management (APM), the MultiProcessor Specification, and the Plug and Play BIOS (PnP) Specification. ACPI brings power management under the control of the operating system, as opposed to the previous BIOS-centric system that relied on platform-specific firmware to determine power management and configuration policies. The specification is central to the Operating System-directed configuration and Power Management (OSPM) system. ACPI defines hardware abstraction interfaces between the device's firmware, the computer hardware components, and the operating systems.

The Desktop Management Interface (DMI) generates a standard framework for managing and tracking components in a desktop, notebook or server computer, by abstracting these components from the software that manages them. The development of DMI, 2.0 version June 24, 1998, marked the first move by the Distributed Management Task Force (DMTF) into desktop-management standards. Before the introduction of DMI, no standardized source of information could provide details about components in a personal computer.

<span class="mw-page-title-main">GUID Partition Table</span> Computer disk partitioning standard

The GUID Partition Table (GPT) is a standard for the layout of partition tables of a physical computer storage device, such as a hard disk drive or solid-state drive, using universally unique identifiers, which are also known as globally unique identifiers (GUIDs). Forming a part of the Unified Extensible Firmware Interface (UEFI) standard, it is nevertheless also used for some BIOSs, because of the limitations of master boot record (MBR) partition tables, which use 32 bits for logical block addressing (LBA) of traditional 512-byte disk sectors.

<span class="mw-page-title-main">Apple–Intel architecture</span> Unofficial name used for Macintosh models that use Intel x86 processors

The Apple–Intel architecture, or Mactel, is an unofficial name used for Macintosh personal computers developed and manufactured by Apple Inc. that use Intel x86 processors, rather than the PowerPC and Motorola 68000 ("68k") series processors used in their predecessors or the ARM-based Apple silicon SoCs used in their successors. As Apple changed the architecture of its products, they changed the firmware from the Open Firmware used on PowerPC-based Macs to the Intel-designed Extensible Firmware Interface (EFI). With the change in processor architecture to x86, Macs gained the ability to boot into x86-native operating systems, while Intel VT-x brought near-native virtualization with macOS as the host OS.

<span class="mw-page-title-main">Boot Camp (software)</span> Built-in macOS software to natively install Microsoft Windows on a Mac.

Boot Camp Assistant is a multi boot utility included with Apple Inc.'s macOS that assists users in installing Microsoft Windows operating systems on Intel-based Macintosh computers. The utility guides users through non-destructive disk partitioning of their hard disk drive or solid-state drive and installation of Windows device drivers for the Apple hardware. The utility also installs a Windows Control Panel applet for selecting the default boot operating system.

<span class="mw-page-title-main">EFI system partition</span> Partition used by Unified Extensible Firmware Interface

The EFIsystem partition or ESP is a partition on a data storage device that is used by computers having the Unified Extensible Firmware Interface (UEFI). When a computer is booted, UEFI firmware loads files stored on the ESP to start installing operating systems and various utilities.

The multi-stage booting process of Linux is in many ways similar to the BSD and other Unix-style boot processes, from which it derives.

<span class="mw-page-title-main">SeaBIOS</span> Open-source implementation of x86 BIOS

SeaBIOS is an open-source implementation of an x86 BIOS, serving as a freely available firmware for x86 systems. Aiming for compatibility, it supports standard BIOS features and calling interfaces that are implemented by a typical proprietary x86 BIOS. SeaBIOS can either run on bare hardware as a coreboot payload, or can be used directly in emulators such as QEMU and Bochs.

fwupd is an open-source daemon for managing the installation of firmware updates on Linux-based systems, developed by GNOME maintainer Richard Hughes. It is designed primarily for servicing the Unified Extensible Firmware Interface (UEFI) firmware on supported devices via EFI System Resource Table (ESRT) and UEFI Capsule, which is supported in Linux kernel 4.2 and later. Previously, the initiation of UEFI firmware updates within an operating system could, on most systems, only be performed using Microsoft Windows or DOS-specific software. ESRT allows the firmware to expose updatable components to the operating system, which can pass a UEFI capsule with updated firmware for processing and installation on the next boot. Updates can be exposed via a command line tool, or within graphical package managers via a D-Bus interface.

<span class="mw-page-title-main">TianoCore EDK II</span> Reference software implementation for UEFI

TianoCore EDK II is the reference implementation of UEFI by Intel. EDK is the abbreviation for EFI Development Kit and is developed by the TianoCore community. TianoCore EDK II is the de facto standard generic UEFI services implementation.

References

  1. "Libsmbios Library Documentation". dell.com. 2007-04-11. Archived from the original on 2016-09-18. Retrieved 2016-02-02.
  2. DMTF press release on SMBIOS 3.2: https://www.dmtf.org/content/dmtf-releases-smbios-32
  3. "All Published Versions of SMBIOS Reference Specification". dmtf.org. Jun 2022. Retrieved 2022-06-27.
  4. "Desktop Management BIOS Specification, Version 2.0" (PDF). uni-regensburg.de. 1996-03-06. Archived from the original (PDF) on 2017-02-13. Retrieved 2016-02-02.
  5. "Phoenix BIOS help and support".
  6. "Phoenix Technologies Produces the First Commercially Available IBM PC Compatible ROM Bios : History of Information".
  7. "Desktop Management BIOS Specification, Version 2.0" (PDF). uni-regensburg.de. 1996-03-06. Archived from the original (PDF) on 2017-02-13. Retrieved 2016-02-02.
  8. DMTF Releases SMBIOS 3.4
  9. DMTF Releases SMBIOS 3.5
  10. DMTF Releases SMBIOS 3.6
  11. Ken Hess (2010-04-23). "Linux System Information Decoded". linux-mag.com. Archived from the original on July 17, 2010. Retrieved 2016-02-02.{{cite web}}: CS1 maint: unfit URL (link)
  12. SMBIOS Specification, version 3.3.0, Sep 2019, https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.3.0.pdf
  13. UEFI Specification, version 2.6, section 4.6
  14. "smbiosview (HP UEFI System Utilities and Shell Command Mobile Help for HP ProLiant Gen9 Servers)". hp.com. 2015-09-22. Retrieved 2016-02-02.
  15. "Tianocore /edk2/ShellPkg/Library/UefiShellDebug1CommandsLib/SmbiosView". sourceforge.net. Retrieved 2015-01-27.
  16. wjfrancis (2008-03-27). "SMBIOS Peek - CodeProject". Codeproject.com. Retrieved 2012-05-12.
  17. SMBIOS Support in Windows, Microsoft paper, updated April 25, 2005
  18. "FirmwareTablesView". NirSoft. Retrieved 2020-12-02.
  19. Platform Initialization Specification, volume 5, section 6, SMBIOS Protocol
  20. QEMU version 2.12.50 User Documentation, https://qemu.weilnetz.de/doc/qemu-doc.html Archived 2019-04-27 at the Wayback Machine
  21. "5 to 20 minutes shutdowns on Cherry Trail machine". Red Hat Issue Tracker. March 21, 2019. Retrieved March 21, 2019.