[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen master] hvmloader: support system enclosure asset tag (SMBIOS type 3)



commit cd3ed39b9df088f89a7dab69053c323a2b490330
Author:     Vivek Kumar Chaubey <vivekkumar.chaubey@xxxxxxxxxx>
AuthorDate: Mon Aug 21 15:49:36 2017 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Mon Aug 21 15:49:36 2017 +0200

    hvmloader: support system enclosure asset tag (SMBIOS type 3)
    
    Allow setting system enclosure asset tag for HVM guest. Guest OS can
    check and perform desired operation like support installation.
    Also added documentation of '~/bios-string/*' xenstore keys into
    docs/misc/xenstore-paths.markdown
    
    Signed-off-by: Vivek Kumar Chaubey <vivekkumar.chaubey@xxxxxxxxxx>
    Acked-by: Jan Beulich <jbeulich@xxxxxxxx>
---
 docs/misc/xenstore-paths.markdown       | 22 ++++++++++++++++++++++
 tools/firmware/hvmloader/smbios.c       | 14 +++++++++++---
 xen/include/public/hvm/hvm_xs_strings.h |  1 +
 3 files changed, 34 insertions(+), 3 deletions(-)

diff --git a/docs/misc/xenstore-paths.markdown 
b/docs/misc/xenstore-paths.markdown
index 6c80a9e..7be2592 100644
--- a/docs/misc/xenstore-paths.markdown
+++ b/docs/misc/xenstore-paths.markdown
@@ -211,6 +211,28 @@ will not relocate guest memory.
 
 The BIOS used by this domain.
 
+#### ~/bios-strings/bios-vendor = STRING [HVM,INTERNAL]
+#### ~/bios-strings/bios-version = STRING [HVM,INTERNAL]
+#### ~/bios-strings/system-manufacturer = STRING [HVM,INTERNAL]
+#### ~/bios-strings/system-product-name = STRING [HVM,INTERNAL]
+#### ~/bios-strings/system-version = STRING [HVM,INTERNAL]
+#### ~/bios-strings/system-serial-number = STRING [HVM,INTERNAL]
+#### ~/bios-strings/enclosure-manufacturer = STRING [HVM,INTERNAL]
+#### ~/bios-strings/enclosure-serial-number = STRING [HVM,INTERNAL]
+#### ~/bios-strings/enclosure-asset-tag = STRING [HVM,INTERNAL]
+#### ~/bios-strings/battery-manufacturer = STRING [HVM,INTERNAL]
+#### ~/bios-strings/battery-device-name = STRING [HVM,INTERNAL]
+
+These xenstore values are used to override some of the default string
+values in the SMBIOS table constructed in hvmloader. See the SMBIOS
+table specification at http://www.dmtf.org/standards/smbios/ 
+
+#### ~/bios-strings/oem-* = STRING [HVM,INTERNAL]
+
+1 to 99 OEM strings can be set in xenstore using values of the form
+'~/bios-strings/oem-1' to '~/bios-strings/oem-99'. These strings will be
+loaded into the SMBIOS type 11 structure.
+
 #### ~/platform/* = ("0"|"1") [HVM,INTERNAL]
 
 Various boolean platform properties.
diff --git a/tools/firmware/hvmloader/smbios.c 
b/tools/firmware/hvmloader/smbios.c
index 210c7b0..154747d 100644
--- a/tools/firmware/hvmloader/smbios.c
+++ b/tools/firmware/hvmloader/smbios.c
@@ -531,6 +531,7 @@ smbios_type_3_init(void *start)
     const char *s;
     void *pts;
     uint32_t length;
+    uint32_t counter = 0;
 
     pts = get_smbios_pt_struct(3, &length);
     if ( (pts != NULL)&&(length > 0) )
@@ -546,7 +547,7 @@ smbios_type_3_init(void *start)
     p->header.length = sizeof(struct smbios_type_3);
     p->header.handle = SMBIOS_HANDLE_TYPE3;
 
-    p->manufacturer_str = 1;
+    p->manufacturer_str = ++counter;
     p->type = 0x01; /* other */
     p->version_str = 0;
     p->serial_number_str = 0;
@@ -562,13 +563,20 @@ smbios_type_3_init(void *start)
     strcpy((char *)start, s);
     start += strlen(s) + 1;
 
-    /* No internal defaults for this if the value is not set */
+    /* No internal defaults for following ones if the value is not set */
     s = xenstore_read(HVM_XS_ENCLOSURE_SERIAL_NUMBER, NULL);
     if ( (s != NULL)&&(*s != '\0') )
     {
         strcpy((char *)start, s);
         start += strlen(s) + 1;
-        p->serial_number_str = 2;
+        p->serial_number_str = ++counter;
+    }
+    s = xenstore_read(HVM_XS_ENCLOSURE_ASSET_TAG, NULL);
+    if ( (s != NULL) && (*s != '\0') )
+    {
+        strcpy(start, s);
+        start += strlen(s) + 1;
+        p->asset_tag_str = ++counter;
     }
 
     *((uint8_t *)start) = 0;
diff --git a/xen/include/public/hvm/hvm_xs_strings.h 
b/xen/include/public/hvm/hvm_xs_strings.h
index 146b0b0..fea1dd4 100644
--- a/xen/include/public/hvm/hvm_xs_strings.h
+++ b/xen/include/public/hvm/hvm_xs_strings.h
@@ -71,6 +71,7 @@
 #define HVM_XS_SYSTEM_SERIAL_NUMBER    "bios-strings/system-serial-number"
 #define HVM_XS_ENCLOSURE_MANUFACTURER  "bios-strings/enclosure-manufacturer"
 #define HVM_XS_ENCLOSURE_SERIAL_NUMBER "bios-strings/enclosure-serial-number"
+#define HVM_XS_ENCLOSURE_ASSET_TAG     "bios-strings/enclosure-asset-tag"
 #define HVM_XS_BATTERY_MANUFACTURER    "bios-strings/battery-manufacturer"
 #define HVM_XS_BATTERY_DEVICE_NAME     "bios-strings/battery-device-name"
 
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.