diff mbox series

[v3,3/3] qemu-options: document SMBIOS type 11 settings

Message ID 20200923133804.2089190-4-berrange@redhat.com
State Superseded
Headers show
Series Add support for loading SMBIOS OEM strings from a file | expand

Commit Message

Daniel P. Berrangé Sept. 23, 2020, 1:38 p.m. UTC
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 qemu-options.hx | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)

Comments

Markus Armbruster Sept. 23, 2020, 3:17 p.m. UTC | #1
Daniel P. Berrangé <berrange@redhat.com> writes:

> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>

> ---

>  qemu-options.hx | 41 +++++++++++++++++++++++++++++++++++++++++

>  1 file changed, 41 insertions(+)

>

> diff --git a/qemu-options.hx b/qemu-options.hx

> index 47f64be0c0..2cb034bce3 100644

> --- a/qemu-options.hx

> +++ b/qemu-options.hx

> @@ -2296,6 +2296,8 @@ DEF("smbios", HAS_ARG, QEMU_OPTION_smbios,

>      "-smbios type=4[,sock_pfx=str][,manufacturer=str][,version=str][,serial=str]\n"

>      "              [,asset=str][,part=str][,max-speed=%d][,current-speed=%d]\n"

>      "                specify SMBIOS type 4 fields\n"

> +    "-smbios type=11[,value=str][,path=filename]\n"

> +    "                specify SMBIOS type 11 fields\n"

>      "-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",

> @@ -2319,6 +2321,45 @@ SRST

>  ``-smbios type=4[,sock_pfx=str][,manufacturer=str][,version=str][,serial=str][,asset=str][,part=str]``

>      Specify SMBIOS type 4 fields

>  

> +``-smbios type=11[,value=str][,path=filename]``

> +    Specify SMBIOS type 11 fields inline


"inline"?

> +

> +    This argument can be repeated multiple times, and values are added in the order they are parsed.

> +    Applications intending to use OEM strings data are encouraged to use their application name as

> +    a prefix for the value string. This facilitates passing information for multiple applications

> +    concurrently.

> +

> +    The ``value=str`` syntax provides the string data inline, while the ``path=filename`` syntax

> +    loads data from a file on disk. Note that the file is not permitted to contain any NUL bytes.


Out of curiosity: what happens when it does?

> +

> +    Both the ``value`` and ``path`` options can be repeated multiple times and will be added to

> +    the SMBIOS table in the order in which they appear.

> +

> +    Note that on the x86 architecture, the total size of all SMBIOS tables is limited to 65535

> +    bytes. Thus the OEM strings data is not suitable for passing large amounts of data into the

> +    guest. Instead it should be used as a indicator to inform the guest where to locate the real

> +    data set, for example, by specifying the serial ID of a block device.

> +

> +    An example passing three strings is

> +

> +    .. parsed-literal::

> +

> +        -smbios type=11,value=cloud-init:ds=nocloud-net;s=http://10.10.0.1:8000/,\\

> +                        value=anaconda:method=http://dl.fedoraproject.org/pub/fedora/linux/releases/25/x86_64/os,\\

> +                        path=/some/file/with/oemstringsdata.txt

> +

> +    In the guest OS this is visible with the ``dmidecode`` command

> +

> +     .. parsed-literal::

> +

> +         $ dmidecode -t 11

> +         Handle 0x0E00, DMI type 11, 5 bytes

> +         OEM Strings

> +              String 1: cloud-init:ds=nocloud-net;s=http://10.10.0.1:8000/

> +              String 2: anaconda:method=http://dl.fedoraproject.org/pub/fedora/linux/releases/25/x86_64/os

> +              String 3: myapp:some extra data

> +

> +

>  ``-smbios type=17[,loc_pfx=str][,bank=str][,manufacturer=str][,serial=str][,asset=str][,part=str][,speed=%d]``

>      Specify SMBIOS type 17 fields

>  ERST
diff mbox series

Patch

diff --git a/qemu-options.hx b/qemu-options.hx
index 47f64be0c0..2cb034bce3 100644
--- a/qemu-options.hx
+++ b/qemu-options.hx
@@ -2296,6 +2296,8 @@  DEF("smbios", HAS_ARG, QEMU_OPTION_smbios,
     "-smbios type=4[,sock_pfx=str][,manufacturer=str][,version=str][,serial=str]\n"
     "              [,asset=str][,part=str][,max-speed=%d][,current-speed=%d]\n"
     "                specify SMBIOS type 4 fields\n"
+    "-smbios type=11[,value=str][,path=filename]\n"
+    "                specify SMBIOS type 11 fields\n"
     "-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",
@@ -2319,6 +2321,45 @@  SRST
 ``-smbios type=4[,sock_pfx=str][,manufacturer=str][,version=str][,serial=str][,asset=str][,part=str]``
     Specify SMBIOS type 4 fields
 
+``-smbios type=11[,value=str][,path=filename]``
+    Specify SMBIOS type 11 fields inline
+
+    This argument can be repeated multiple times, and values are added in the order they are parsed.
+    Applications intending to use OEM strings data are encouraged to use their application name as
+    a prefix for the value string. This facilitates passing information for multiple applications
+    concurrently.
+
+    The ``value=str`` syntax provides the string data inline, while the ``path=filename`` syntax
+    loads data from a file on disk. Note that the file is not permitted to contain any NUL bytes.
+
+    Both the ``value`` and ``path`` options can be repeated multiple times and will be added to
+    the SMBIOS table in the order in which they appear.
+
+    Note that on the x86 architecture, the total size of all SMBIOS tables is limited to 65535
+    bytes. Thus the OEM strings data is not suitable for passing large amounts of data into the
+    guest. Instead it should be used as a indicator to inform the guest where to locate the real
+    data set, for example, by specifying the serial ID of a block device.
+
+    An example passing three strings is
+
+    .. parsed-literal::
+
+        -smbios type=11,value=cloud-init:ds=nocloud-net;s=http://10.10.0.1:8000/,\\
+                        value=anaconda:method=http://dl.fedoraproject.org/pub/fedora/linux/releases/25/x86_64/os,\\
+                        path=/some/file/with/oemstringsdata.txt
+
+    In the guest OS this is visible with the ``dmidecode`` command
+
+     .. parsed-literal::
+
+         $ dmidecode -t 11
+         Handle 0x0E00, DMI type 11, 5 bytes
+         OEM Strings
+              String 1: cloud-init:ds=nocloud-net;s=http://10.10.0.1:8000/
+              String 2: anaconda:method=http://dl.fedoraproject.org/pub/fedora/linux/releases/25/x86_64/os
+              String 3: myapp:some extra data
+
+
 ``-smbios type=17[,loc_pfx=str][,bank=str][,manufacturer=str][,serial=str][,asset=str][,part=str][,speed=%d]``
     Specify SMBIOS type 17 fields
 ERST