SMBIOS tables present userful system hardware info to management
applications, such as DMI tools. Even though SMBIOS was originally
developed for Intel x86, it has been extended to both Itanium and 
ARM (32bit & 64bit). More and more ARM server releases, such as 
RHEL Server for ARM, start to integrate support for SMBIOS.

This patchset is intendted to provid SMBIOS tables for ARM mach-virt
machine. The SMBIOS tables are created and stored in fw_cfg, relying on
OVMF (AAVMF) to parse/present SMBIOS entry.

RFC version have been tested by Laszlo using his customized version of
AAVMF. We were able to detect SMBIOS 2.8 tables using dmidecode inside
an AArch64 guest VM. Moving forward, it is better to support SMBIOS 3.0
for ARM guest VM. This new version (V2) integrates SMBIOS 3.0 support
for ARM mach-virt. I have tested this version using a customized AAVMF
created by Laszlo, who has submitted his patches to OVMF mailing list.

V1->V2:
 * Add NULL checking for fw_cfg (Shannon Zhao)
 * Init 3.0 entry point table max size to smbios_tables_len (Laszlo)
 * Minor re-arrangement of smbios.h layout with function headers to the bottom
 * Validated SMBIOS 3.0 tables with a customized AAVMF created by Laszlo

RFC->V1:
 * Add SMBIOS 3.0 support for buidling SMBIOS
 * Switch from SMBIOS 2.1 to 3.0 for ARM mach-virt
 * RFC version Tested-by Laszlo Ersek and Acked-by Gabriel Somlo

Thanks,
-Wei

Wei Huang (6):
  smbios: extract x86 smbios building code into a function
  smbios: remove dependency on x86 e820 tables
  smbios: pass ram size as a parameter to build smbios tables
  smbios: move smbios code into a common folder
  smbios: add smbios 3.0 support
  smbios: implement smbios support for mach-virt

 arch_init.c                          |  2 +-
 default-configs/arm-softmmu.mak      |  1 +
 default-configs/i386-softmmu.mak     |  1 +
 default-configs/x86_64-softmmu.mak   |  1 +
 hw/Makefile.objs                     |  1 +
 hw/arm/virt.c                        | 27 ++++++++++
 hw/i386/Makefile.objs                |  2 +-
 hw/i386/pc.c                         | 56 ++++++++++++++-------
 hw/i386/pc_piix.c                    |  5 +-
 hw/i386/pc_q35.c                     |  5 +-
 hw/smbios/Makefile.objs              |  1 +
 hw/{i386 => smbios}/smbios.c         | 96 +++++++++++++++++++++++-------------
 include/hw/arm/virt-acpi-build.h     |  1 +
 include/hw/{i386 => smbios}/smbios.h | 56 ++++++++++++++++-----
 tests/bios-tables-test.c             |  2 +-
 vl.c                                 |  2 +-
 16 files changed, 188 insertions(+), 71 deletions(-)
 create mode 100644 hw/smbios/Makefile.objs
 rename hw/{i386 => smbios}/smbios.c (93%)
 rename include/hw/{i386 => smbios}/smbios.h (83%)

-- 
1.8.3.1


Reply via email to