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