Blame 0013-dmidecode-Adding-bios-revision-to-s-option.patch

Anton Arapov 48d35d
From 9bce894b7730013120d4c71f964d4cf8402cb956 Mon Sep 17 00:00:00 2001
Anton Arapov 48d35d
From: Erwan Velu <e.velu@criteo.com>
Anton Arapov 48d35d
Date: Mon, 7 Oct 2019 15:36:47 +0200
Anton Arapov 48d35d
Subject: [PATCH 13/18] dmidecode: Adding bios-revision to -s option
Anton Arapov 48d35d
Anton Arapov 48d35d
Some hardware vendors like HPe use the Version field to store the
Anton Arapov 48d35d
bios generation like (U30, U32, A40, ...).  If you want to get the
Anton Arapov 48d35d
"release" version of this bios generation, the bios revision field
Anton Arapov 48d35d
must be considered.
Anton Arapov 48d35d
Anton Arapov 48d35d
A typical output of this kind of server looks like :
Anton Arapov 48d35d
Anton Arapov 48d35d
          BIOS Information
Anton Arapov 48d35d
                  Vendor: HPE
Anton Arapov 48d35d
                  Version: A40
Anton Arapov 48d35d
                  Release Date: 07/20/2019
Anton Arapov 48d35d
                  [...]
Anton Arapov 48d35d
                  BIOS Revision: 2.0
Anton Arapov 48d35d
                  Firmware Revision: 1.45
Anton Arapov 48d35d
Anton Arapov 48d35d
Add a "bios-revision" entry into the '-s' option.
Anton Arapov 48d35d
Anton Arapov 48d35d
A typical usage of this feature looks like :
Anton Arapov 48d35d
Anton Arapov 48d35d
	[root@host] dmidecode -s bios-revision
Anton Arapov 48d35d
	2.0
Anton Arapov 48d35d
Anton Arapov 48d35d
Signed-off-by: Erwan Velu <e.velu@criteo.com>
Anton Arapov 48d35d
Signed-off-by: Jean Delvare <jdelvare@suse.de>
Anton Arapov 48d35d
---
Anton Arapov 48d35d
 dmidecode.c     | 4 ++++
Anton Arapov 48d35d
 dmiopt.c        | 1 +
Anton Arapov 48d35d
 man/dmidecode.8 | 1 +
Anton Arapov 48d35d
 3 files changed, 6 insertions(+)
Anton Arapov 48d35d
Anton Arapov 48d35d
diff --git a/dmidecode.c b/dmidecode.c
Anton Arapov 48d35d
index cff7d3f..e4cd6d8 100644
Anton Arapov 48d35d
--- a/dmidecode.c
Anton Arapov 48d35d
+++ b/dmidecode.c
Anton Arapov 48d35d
@@ -5082,6 +5082,10 @@ static void dmi_table_string(const struct dmi_header *h, const u8 *data, u16 ver
Anton Arapov 48d35d
 	key = (opt.string->type << 8) | offset;
Anton Arapov 48d35d
 	switch (key)
Anton Arapov 48d35d
 	{
Anton Arapov 48d35d
+		case 0x015: /* -s bios-revision */
Anton Arapov 48d35d
+			if (data[key - 1] != 0xFF && data[key] != 0xFF)
Anton Arapov 48d35d
+				printf("%u.%u\n", data[key - 1], data[key]);
Anton Arapov 48d35d
+			break;
Anton Arapov 48d35d
 		case 0x108:
Anton Arapov 48d35d
 			dmi_system_uuid(data + offset, ver);
Anton Arapov 48d35d
 			printf("\n");
Anton Arapov 48d35d
diff --git a/dmiopt.c b/dmiopt.c
Anton Arapov 48d35d
index 2f285f3..9ceb35a 100644
Anton Arapov 48d35d
--- a/dmiopt.c
Anton Arapov 48d35d
+++ b/dmiopt.c
Anton Arapov 48d35d
@@ -151,6 +151,7 @@ static const struct string_keyword opt_string_keyword[] = {
Anton Arapov 48d35d
 	{ "bios-vendor", 0, 0x04 },
Anton Arapov 48d35d
 	{ "bios-version", 0, 0x05 },
Anton Arapov 48d35d
 	{ "bios-release-date", 0, 0x08 },
Anton Arapov 48d35d
+	{ "bios-revision", 0, 0x15 },		/* 0x14 and 0x15 */
Anton Arapov 48d35d
 	{ "system-manufacturer", 1, 0x04 },
Anton Arapov 48d35d
 	{ "system-product-name", 1, 0x05 },
Anton Arapov 48d35d
 	{ "system-version", 1, 0x06 },
Anton Arapov 48d35d
diff --git a/man/dmidecode.8 b/man/dmidecode.8
Anton Arapov 48d35d
index 1f6529d..c3f8713 100644
Anton Arapov 48d35d
--- a/man/dmidecode.8
Anton Arapov 48d35d
+++ b/man/dmidecode.8
Anton Arapov 48d35d
@@ -74,6 +74,7 @@ displayed. Meta-data and handle references are hidden.
Anton Arapov 48d35d
 Only display the value of the \s-1DMI\s0 string identified by \fBKEYWORD\fR.
Anton Arapov 48d35d
 \fBKEYWORD\fR must be a keyword from the following list: \fBbios-vendor\fR,
Anton Arapov 48d35d
 \fBbios-version\fR, \fBbios-release-date\fR,
Anton Arapov 48d35d
+\fBbios-revision\fR,
Anton Arapov 48d35d
 \fBsystem-manufacturer\fR, \fBsystem-product-name\fR,
Anton Arapov 48d35d
 \fBsystem-version\fR, \fBsystem-serial-number\fR,
Anton Arapov 48d35d
 \fBsystem-uuid\fR, \fBsystem-family\fR,
Anton Arapov 48d35d
-- 
Anton Arapov 48d35d
2.24.0
Anton Arapov 48d35d