[ARM,SMBIOS,V2,0/6] SMBIOS Support for ARM

Message ID 20150808001408.GZ18160@bivouac.eciton.net
State New
Headers show

Commit Message

Leif Lindholm Aug. 8, 2015, 12:14 a.m.
Hi Wei,

So, I can verify that this works all the way into Linux userland
dmidecode on arm64.

One question:
This set still leaves the -smbios set of options x86 only.

Would

 @findex -smbios

be relevant to add here (6/6), and would that then be expected to work
for filling in values via command line (because that does not
currently appear to be the case).

/
    Leif 

On Thu, Aug 06, 2015 at 01:14:54PM -0400, Wei Huang wrote:
> 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
> 
>

Patch

--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -1412,7 +1412,7 @@  DEF("smbios", HAS_ARG, QEMU_OPTION_smbios,
     "-smbios
     type=17[,loc_pfx=str][,bank=str][,manufacturer=str][,serial=str]\n"
     "               [,asset=str][,part=str][,speed=%d]\n"
     "                specify SMBIOS type 17 fields\n",
-    QEMU_ARCH_I386)
+    QEMU_ARCH_I386 | QEMU_ARCH_ARM)
 STEXI
 @item -smbios file=@var{binary}