[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |