basebuilder_pel7x64builder0
6 years ago
14 changed files with 2926 additions and 0 deletions
@ -0,0 +1,42 @@ |
|||||||
|
From aad65d8a53a00d5426990fc8b5af9d749fc879b9 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Mika Westerberg <mika.westerberg@linux.intel.com> |
||||||
|
Date: Thu, 1 Jun 2017 14:21:38 +0300 |
||||||
|
Subject: [PATCH 01/10] dmidecode: Add system-family direct string option |
||||||
|
|
||||||
|
This allows users to print system-family using '-s' option. |
||||||
|
|
||||||
|
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> |
||||||
|
Signed-off-by: Jean Delvare <jdelvare@suse.de> |
||||||
|
--- |
||||||
|
dmiopt.c | 1 + |
||||||
|
man/dmidecode.8 | 2 +- |
||||||
|
2 files changed, 2 insertions(+), 1 deletion(-) |
||||||
|
|
||||||
|
diff --git a/dmiopt.c b/dmiopt.c |
||||||
|
index da42546..a36cf16 100644 |
||||||
|
--- a/dmiopt.c |
||||||
|
+++ b/dmiopt.c |
||||||
|
@@ -156,6 +156,7 @@ static const struct string_keyword opt_string_keyword[] = { |
||||||
|
{ "system-version", 1, 0x06 }, |
||||||
|
{ "system-serial-number", 1, 0x07 }, |
||||||
|
{ "system-uuid", 1, 0x08 }, /* dmi_system_uuid() */ |
||||||
|
+ { "system-family", 1, 0x1a }, |
||||||
|
{ "baseboard-manufacturer", 2, 0x04 }, |
||||||
|
{ "baseboard-product-name", 2, 0x05 }, |
||||||
|
{ "baseboard-version", 2, 0x06 }, |
||||||
|
diff --git a/man/dmidecode.8 b/man/dmidecode.8 |
||||||
|
index bef204e..e3b6b2a 100644 |
||||||
|
--- a/man/dmidecode.8 |
||||||
|
+++ b/man/dmidecode.8 |
||||||
|
@@ -74,7 +74,7 @@ Only display the value of the \s-1DMI\s0 string identified by \fBKEYWORD\fR. |
||||||
|
\fBbios-version\fR, \fBbios-release-date\fR, |
||||||
|
\fBsystem-manufacturer\fR, \fBsystem-product-name\fR, |
||||||
|
\fBsystem-version\fR, \fBsystem-serial-number\fR, |
||||||
|
-\fBsystem-uuid\fR, |
||||||
|
+\fBsystem-uuid\fR, \fBsystem-family\fR, |
||||||
|
\fBbaseboard-manufacturer\fR, \fBbaseboard-product-name\fR, |
||||||
|
\fBbaseboard-version\fR, \fBbaseboard-serial-number\fR, |
||||||
|
\fBbaseboard-asset-tag\fR, \fBchassis-manufacturer\fR, |
||||||
|
-- |
||||||
|
2.9.5 |
||||||
|
|
@ -0,0 +1,30 @@ |
|||||||
|
From 174387405e98cd94c627832ae23abcb9be7e5623 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Jean Delvare <jdelvare@suse.de> |
||||||
|
Date: Wed, 31 Jan 2018 18:52:47 +0100 |
||||||
|
Subject: [PATCH 1/3] dmidecode: Fix firmware version of TPM device |
||||||
|
|
||||||
|
Both the operator (detected by clang, reported by Xorg) and the mask |
||||||
|
for the minor firmware version field of TPM devices were wrong. |
||||||
|
|
||||||
|
Signed-off-by: Jean Delvare <jdelvare@suse.de> |
||||||
|
Fixes: 48a8132058a0 ("dmidecode: Add support for structure type 43 (TPM Device)") |
||||||
|
--- |
||||||
|
dmidecode.c | 2 +- |
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-) |
||||||
|
|
||||||
|
diff --git a/dmidecode.c b/dmidecode.c |
||||||
|
index 87faaa9..a593170 100644 |
||||||
|
--- a/dmidecode.c |
||||||
|
+++ b/dmidecode.c |
||||||
|
@@ -4511,7 +4511,7 @@ static void dmi_decode(const struct dmi_header *h, u16 ver) |
||||||
|
case 0x02: |
||||||
|
printf("\tFirmware Revision: %u.%u\n", |
||||||
|
DWORD(data + 0x0A) >> 16, |
||||||
|
- DWORD(data + 0x0A) && 0xFF); |
||||||
|
+ DWORD(data + 0x0A) & 0xFFFF); |
||||||
|
/* |
||||||
|
* We skip the next 4 bytes, as their |
||||||
|
* format is not standardized and their |
||||||
|
-- |
||||||
|
2.9.5 |
||||||
|
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,36 @@ |
|||||||
|
From 2ba4fab210e23cc97db57217af9a6f3b35a9b666 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Jerry Hoemann <jerry.hoemann@hpe.com> |
||||||
|
Date: Wed, 11 Apr 2018 14:33:20 +0200 |
||||||
|
Subject: [PATCH 2/3] dmioem: decode HPE UEFI type 219 Misc Features |
||||||
|
|
||||||
|
The incorrect "Misc Feature" bit in type 219 table was being used to |
||||||
|
identify that the platform is capable of booting with UEFI. |
||||||
|
|
||||||
|
For corresponding kernel change please see: |
||||||
|
|
||||||
|
commit(c42cbe41727a) |
||||||
|
|
||||||
|
in linux. |
||||||
|
|
||||||
|
Signed-off-by: Jerry Hoemann <jerry.hoemann@hpe.com> |
||||||
|
Signed-off-by: Jean Delvare <jdelvare@suse.de> |
||||||
|
--- |
||||||
|
dmioem.c | 2 +- |
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-) |
||||||
|
|
||||||
|
diff --git a/dmioem.c b/dmioem.c |
||||||
|
index 8a72ac9..1742330 100644 |
||||||
|
--- a/dmioem.c |
||||||
|
+++ b/dmioem.c |
||||||
|
@@ -268,7 +268,7 @@ static int dmi_decode_hp(const struct dmi_header *h) |
||||||
|
feat = DWORD(data + 0x10); |
||||||
|
printf("\tMisc. Features: 0x%08x\n", feat); |
||||||
|
printf("\t\tiCRU: %s\n", feat & 0x0001 ? "Yes" : "No"); |
||||||
|
- printf("\t\tUEFI: %s\n", feat & 0x0408 ? "Yes" : "No"); |
||||||
|
+ printf("\t\tUEFI: %s\n", feat & 0x1400 ? "Yes" : "No"); |
||||||
|
break; |
||||||
|
|
||||||
|
default: |
||||||
|
-- |
||||||
|
2.9.5 |
||||||
|
|
@ -0,0 +1,46 @@ |
|||||||
|
From 371056cc0345ba8e950f0c002a0e145a3930b39c Mon Sep 17 00:00:00 2001 |
||||||
|
From: Jean Delvare <jdelvare@suse.de> |
||||||
|
Date: Mon, 17 Jul 2017 09:45:39 +0200 |
||||||
|
Subject: [PATCH 03/10] Fix install-doc target |
||||||
|
|
||||||
|
CHANGELOG was replaced by NEWS but I forgot to update the references |
||||||
|
to that file. |
||||||
|
|
||||||
|
This fixes bug #51475: |
||||||
|
https://savannah.nongnu.org/bugs/?51475 |
||||||
|
|
||||||
|
Fixes: 82a34ddbc524 ("Goodbye CHANGELOG, welcome NEWS") |
||||||
|
--- |
||||||
|
Makefile | 2 +- |
||||||
|
README | 2 +- |
||||||
|
2 files changed, 2 insertions(+), 2 deletions(-) |
||||||
|
|
||||||
|
diff --git a/Makefile b/Makefile |
||||||
|
index 1f54a1f..77c9310 100644 |
||||||
|
--- a/Makefile |
||||||
|
+++ b/Makefile |
||||||
|
@@ -134,7 +134,7 @@ uninstall-man : |
||||||
|
install-doc : |
||||||
|
$(INSTALL_DIR) $(DESTDIR)$(docdir) |
||||||
|
$(INSTALL_DATA) README $(DESTDIR)$(docdir) |
||||||
|
- $(INSTALL_DATA) CHANGELOG $(DESTDIR)$(docdir) |
||||||
|
+ $(INSTALL_DATA) NEWS $(DESTDIR)$(docdir) |
||||||
|
$(INSTALL_DATA) AUTHORS $(DESTDIR)$(docdir) |
||||||
|
|
||||||
|
uninstall-doc : |
||||||
|
diff --git a/README b/README |
||||||
|
index f612b36..c87e52c 100644 |
||||||
|
--- a/README |
||||||
|
+++ b/README |
||||||
|
@@ -56,7 +56,7 @@ Each tool has a manual page, found in the "man" subdirectory. Manual pages |
||||||
|
are installed by "make install". See these manual pages for command line |
||||||
|
interface details and tool specific information. |
||||||
|
|
||||||
|
-For an history of the changes made to dmidecode, see the CHANGELOG file. |
||||||
|
+For an history of the changes made to dmidecode, see the NEWS file. |
||||||
|
|
||||||
|
If you need help, your best chances are to visit the web page (see the |
||||||
|
INSTALLATION section above) or to get in touch with the developers directly. |
||||||
|
-- |
||||||
|
2.9.5 |
||||||
|
|
@ -0,0 +1,36 @@ |
|||||||
|
From aec83995082070c47edf394c4b7f9f17fea7fd16 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Jean Delvare <jdelvare@suse.de> |
||||||
|
Date: Mon, 16 Apr 2018 09:42:25 +0200 |
||||||
|
Subject: [PATCH 3/3] dmidecode: Use lowercase letters for UUID |
||||||
|
|
||||||
|
RFC 4122 asks for letters a-f in UUID to be lowercase. Follow this |
||||||
|
recommendation. |
||||||
|
|
||||||
|
This closes bug #53569: |
||||||
|
https://savannah.nongnu.org/bugs/index.php?53569 |
||||||
|
|
||||||
|
--- |
||||||
|
dmidecode.c | 4 ++-- |
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-) |
||||||
|
|
||||||
|
diff --git a/dmidecode.c b/dmidecode.c |
||||||
|
index a593170..d18a258 100644 |
||||||
|
--- a/dmidecode.c |
||||||
|
+++ b/dmidecode.c |
||||||
|
@@ -445,11 +445,11 @@ static void dmi_system_uuid(const u8 *p, u16 ver) |
||||||
|
* for older versions. |
||||||
|
*/ |
||||||
|
if (ver >= 0x0206) |
||||||
|
- printf("%02X%02X%02X%02X-%02X%02X-%02X%02X-%02X%02X-%02X%02X%02X%02X%02X%02X", |
||||||
|
+ printf("%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", |
||||||
|
p[3], p[2], p[1], p[0], p[5], p[4], p[7], p[6], |
||||||
|
p[8], p[9], p[10], p[11], p[12], p[13], p[14], p[15]); |
||||||
|
else |
||||||
|
- printf("%02X%02X%02X%02X-%02X%02X-%02X%02X-%02X%02X-%02X%02X%02X%02X%02X%02X", |
||||||
|
+ printf("%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", |
||||||
|
p[0], p[1], p[2], p[3], p[4], p[5], p[6], p[7], |
||||||
|
p[8], p[9], p[10], p[11], p[12], p[13], p[14], p[15]); |
||||||
|
} |
||||||
|
-- |
||||||
|
2.9.5 |
||||||
|
|
@ -0,0 +1,136 @@ |
|||||||
|
From 6486331cf66e35bcf01e1c15c4396af68b6eb4d4 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Jean Delvare <jdelvare@suse.de> |
||||||
|
Date: Tue, 25 Jul 2017 11:21:22 +0200 |
||||||
|
Subject: [PATCH 04/10] biosdecode: Add option --pir full |
||||||
|
|
||||||
|
Add an option to decode the details of the PIR table. |
||||||
|
|
||||||
|
This implements support request #109339: |
||||||
|
https://savannah.nongnu.org/support/index.php?109339 |
||||||
|
|
||||||
|
--- |
||||||
|
biosdecode.c | 59 +++++++++++++++++++++++++++++++------------------------- |
||||||
|
man/biosdecode.8 | 3 +++ |
||||||
|
2 files changed, 36 insertions(+), 26 deletions(-) |
||||||
|
|
||||||
|
diff --git a/biosdecode.c b/biosdecode.c |
||||||
|
index ad3d4bc..8293e61 100644 |
||||||
|
--- a/biosdecode.c |
||||||
|
+++ b/biosdecode.c |
||||||
|
@@ -73,12 +73,16 @@ struct opt |
||||||
|
{ |
||||||
|
const char *devmem; |
||||||
|
unsigned int flags; |
||||||
|
+ unsigned char pir; |
||||||
|
}; |
||||||
|
static struct opt opt; |
||||||
|
|
||||||
|
#define FLAG_VERSION (1 << 0) |
||||||
|
#define FLAG_HELP (1 << 1) |
||||||
|
|
||||||
|
+#define PIR_SHORT 0 |
||||||
|
+#define PIR_FULL 1 |
||||||
|
+ |
||||||
|
struct bios_entry { |
||||||
|
const char *anchor; |
||||||
|
size_t anchor_len; /* computed */ |
||||||
|
@@ -386,32 +390,29 @@ static int pir_decode(const u8 *p, size_t len) |
||||||
|
i, p[(i + 1) * 16], p[(i + 1) * 16 + 1] >> 3); |
||||||
|
pir_slot_number(p[(i + 1) * 16 + 14]); |
||||||
|
printf("\n"); |
||||||
|
-/* printf("\tSlot Entry %u\n", i); |
||||||
|
- printf("\t\tID: %02x:%02x\n", |
||||||
|
- p[(i + 1) * 16], p[(i + 1) * 16 + 1] >> 3); |
||||||
|
- printf("\t\tLink Value for INTA#: %u\n", |
||||||
|
- p[(i + 1) * 16 + 2]); |
||||||
|
- printf("\t\tIRQ Bitmap for INTA#:"); |
||||||
|
- pir_irqs(WORD(p + (i + 1) * 16 + 3)); |
||||||
|
- printf("\n"); |
||||||
|
- printf("\t\tLink Value for INTB#: %u\n", |
||||||
|
- p[(i + 1) * 16 + 5]); |
||||||
|
- printf("\t\tIRQ Bitmap for INTB#:"); |
||||||
|
- pir_irqs(WORD(p + (i + 1) * 16 + 6)); |
||||||
|
- printf("\n"); |
||||||
|
- printf("\t\tLink Value for INTC#: %u\n", |
||||||
|
- p[(i + 1) * 16 + 8]); |
||||||
|
- printf("\t\tIRQ Bitmap for INTC#:"); |
||||||
|
- pir_irqs(WORD(p + (i + 1) * 16 + 9)); |
||||||
|
- printf("\n"); |
||||||
|
- printf("\t\tLink Value for INTD#: %u\n", |
||||||
|
- p[(i + 1) * 16 + 11]); |
||||||
|
- printf("\t\tIRQ Bitmap for INTD#:"); |
||||||
|
- pir_irqs(WORD(p + (i + 1) * 16 + 12)); |
||||||
|
- printf("\n"); |
||||||
|
- printf("\t\tSlot Number:"); |
||||||
|
- pir_slot_number(p[(i + 1) * 16 + 14]); |
||||||
|
- printf("\n");*/ |
||||||
|
+ if (opt.pir == PIR_FULL) |
||||||
|
+ { |
||||||
|
+ printf("\t\tLink Value for INTA#: %u\n", |
||||||
|
+ p[(i + 1) * 16 + 2]); |
||||||
|
+ printf("\t\tIRQ Bitmap for INTA#:"); |
||||||
|
+ pir_irqs(WORD(p + (i + 1) * 16 + 3)); |
||||||
|
+ printf("\n"); |
||||||
|
+ printf("\t\tLink Value for INTB#: %u\n", |
||||||
|
+ p[(i + 1) * 16 + 5]); |
||||||
|
+ printf("\t\tIRQ Bitmap for INTB#:"); |
||||||
|
+ pir_irqs(WORD(p + (i + 1) * 16 + 6)); |
||||||
|
+ printf("\n"); |
||||||
|
+ printf("\t\tLink Value for INTC#: %u\n", |
||||||
|
+ p[(i + 1) * 16 + 8]); |
||||||
|
+ printf("\t\tIRQ Bitmap for INTC#:"); |
||||||
|
+ pir_irqs(WORD(p + (i + 1) * 16 + 9)); |
||||||
|
+ printf("\n"); |
||||||
|
+ printf("\t\tLink Value for INTD#: %u\n", |
||||||
|
+ p[(i + 1) * 16 + 11]); |
||||||
|
+ printf("\t\tIRQ Bitmap for INTD#:"); |
||||||
|
+ pir_irqs(WORD(p + (i + 1) * 16 + 12)); |
||||||
|
+ printf("\n"); |
||||||
|
+ } |
||||||
|
} |
||||||
|
|
||||||
|
return 1; |
||||||
|
@@ -616,6 +617,7 @@ static int parse_command_line(int argc, char * const argv[]) |
||||||
|
const char *optstring = "d:hV"; |
||||||
|
struct option longopts[] = { |
||||||
|
{ "dev-mem", required_argument, NULL, 'd' }, |
||||||
|
+ { "pir", required_argument, NULL, 'P' }, |
||||||
|
{ "help", no_argument, NULL, 'h' }, |
||||||
|
{ "version", no_argument, NULL, 'V' }, |
||||||
|
{ NULL, 0, NULL, 0 } |
||||||
|
@@ -627,6 +629,10 @@ static int parse_command_line(int argc, char * const argv[]) |
||||||
|
case 'd': |
||||||
|
opt.devmem = optarg; |
||||||
|
break; |
||||||
|
+ case 'P': |
||||||
|
+ if (strcmp(optarg, "full") == 0) |
||||||
|
+ opt.pir = PIR_FULL; |
||||||
|
+ break; |
||||||
|
case 'h': |
||||||
|
opt.flags |= FLAG_HELP; |
||||||
|
break; |
||||||
|
@@ -646,6 +652,7 @@ static void print_help(void) |
||||||
|
"Usage: biosdecode [OPTIONS]\n" |
||||||
|
"Options are:\n" |
||||||
|
" -d, --dev-mem FILE Read memory from device FILE (default: " DEFAULT_MEM_DEV ")\n" |
||||||
|
+ " --pir full Decode the details of the PCI IRQ routing table\n" |
||||||
|
" -h, --help Display this help text and exit\n" |
||||||
|
" -V, --version Display the version and exit\n"; |
||||||
|
|
||||||
|
diff --git a/man/biosdecode.8 b/man/biosdecode.8 |
||||||
|
index c39d6a0..a96eb68 100644 |
||||||
|
--- a/man/biosdecode.8 |
||||||
|
+++ b/man/biosdecode.8 |
||||||
|
@@ -60,6 +60,9 @@ program. |
||||||
|
.BR "-d" ", " "--dev-mem FILE" |
||||||
|
Read memory from device \fBFILE\fR (default: \fB/dev/mem\fR) |
||||||
|
.TP |
||||||
|
+.BR " " " " "--pir full" |
||||||
|
+Decode the details of the PCI IRQ routing table |
||||||
|
+.TP |
||||||
|
.BR "-h" ", " "--help" |
||||||
|
Display usage information and exit |
||||||
|
.TP |
||||||
|
-- |
||||||
|
2.9.5 |
||||||
|
|
@ -0,0 +1,96 @@ |
|||||||
|
From baeacaa7b9930badc074eaad3700b075ed9d622f Mon Sep 17 00:00:00 2001 |
||||||
|
From: Jean Delvare <jdelvare@suse.de> |
||||||
|
Date: Tue, 25 Jul 2017 11:21:27 +0200 |
||||||
|
Subject: [PATCH 05/10] biosdecode: Clean up the PIR table output |
||||||
|
|
||||||
|
* Remove entry numbers. |
||||||
|
* Use "Device" instead of "ID". |
||||||
|
* Put repeated code in a function. |
||||||
|
* Don't display unconnected links. |
||||||
|
* Shorten "slot number" to just "slot". |
||||||
|
|
||||||
|
--- |
||||||
|
biosdecode.c | 42 ++++++++++++++++++------------------------ |
||||||
|
1 file changed, 18 insertions(+), 24 deletions(-) |
||||||
|
|
||||||
|
diff --git a/biosdecode.c b/biosdecode.c |
||||||
|
index 8293e61..b37e510 100644 |
||||||
|
--- a/biosdecode.c |
||||||
|
+++ b/biosdecode.c |
||||||
|
@@ -355,7 +355,7 @@ static void pir_slot_number(u8 code) |
||||||
|
if (code == 0) |
||||||
|
printf(" on-board"); |
||||||
|
else |
||||||
|
- printf(" slot number %u", code); |
||||||
|
+ printf(" slot %u", code); |
||||||
|
} |
||||||
|
|
||||||
|
static size_t pir_length(const u8 *p) |
||||||
|
@@ -363,6 +363,16 @@ static size_t pir_length(const u8 *p) |
||||||
|
return WORD(p + 6); |
||||||
|
} |
||||||
|
|
||||||
|
+static void pir_link_bitmap(char letter, const u8 *p) |
||||||
|
+{ |
||||||
|
+ if (p[0] == 0) /* Not connected */ |
||||||
|
+ return; |
||||||
|
+ |
||||||
|
+ printf("\t\tINT%c#: Link 0x%02x, IRQ Bitmap", letter, p[0]); |
||||||
|
+ pir_irqs(WORD(p + 1)); |
||||||
|
+ printf("\n"); |
||||||
|
+} |
||||||
|
+ |
||||||
|
static int pir_decode(const u8 *p, size_t len) |
||||||
|
{ |
||||||
|
int i; |
||||||
|
@@ -372,7 +382,7 @@ static int pir_decode(const u8 *p, size_t len) |
||||||
|
|
||||||
|
printf("PCI Interrupt Routing %u.%u present.\n", |
||||||
|
p[5], p[4]); |
||||||
|
- printf("\tRouter ID: %02x:%02x.%1x\n", |
||||||
|
+ printf("\tRouter Device: %02x:%02x.%1x\n", |
||||||
|
p[8], p[9]>>3, p[9] & 0x07); |
||||||
|
printf("\tExclusive IRQs:"); |
||||||
|
pir_irqs(WORD(p + 10)); |
||||||
|
@@ -386,32 +396,16 @@ static int pir_decode(const u8 *p, size_t len) |
||||||
|
|
||||||
|
for (i = 1; i <= (WORD(p + 6) - 32) / 16; i++) |
||||||
|
{ |
||||||
|
- printf("\tSlot Entry %u: ID %02x:%02x,", |
||||||
|
- i, p[(i + 1) * 16], p[(i + 1) * 16 + 1] >> 3); |
||||||
|
+ printf("\tDevice: %02x:%02x,", |
||||||
|
+ p[(i + 1) * 16], p[(i + 1) * 16 + 1] >> 3); |
||||||
|
pir_slot_number(p[(i + 1) * 16 + 14]); |
||||||
|
printf("\n"); |
||||||
|
if (opt.pir == PIR_FULL) |
||||||
|
{ |
||||||
|
- printf("\t\tLink Value for INTA#: %u\n", |
||||||
|
- p[(i + 1) * 16 + 2]); |
||||||
|
- printf("\t\tIRQ Bitmap for INTA#:"); |
||||||
|
- pir_irqs(WORD(p + (i + 1) * 16 + 3)); |
||||||
|
- printf("\n"); |
||||||
|
- printf("\t\tLink Value for INTB#: %u\n", |
||||||
|
- p[(i + 1) * 16 + 5]); |
||||||
|
- printf("\t\tIRQ Bitmap for INTB#:"); |
||||||
|
- pir_irqs(WORD(p + (i + 1) * 16 + 6)); |
||||||
|
- printf("\n"); |
||||||
|
- printf("\t\tLink Value for INTC#: %u\n", |
||||||
|
- p[(i + 1) * 16 + 8]); |
||||||
|
- printf("\t\tIRQ Bitmap for INTC#:"); |
||||||
|
- pir_irqs(WORD(p + (i + 1) * 16 + 9)); |
||||||
|
- printf("\n"); |
||||||
|
- printf("\t\tLink Value for INTD#: %u\n", |
||||||
|
- p[(i + 1) * 16 + 11]); |
||||||
|
- printf("\t\tIRQ Bitmap for INTD#:"); |
||||||
|
- pir_irqs(WORD(p + (i + 1) * 16 + 12)); |
||||||
|
- printf("\n"); |
||||||
|
+ pir_link_bitmap('A', p + (i + 1) * 16 + 2); |
||||||
|
+ pir_link_bitmap('B', p + (i + 1) * 16 + 5); |
||||||
|
+ pir_link_bitmap('C', p + (i + 1) * 16 + 8); |
||||||
|
+ pir_link_bitmap('D', p + (i + 1) * 16 + 11); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
-- |
||||||
|
2.9.5 |
||||||
|
|
@ -0,0 +1,54 @@ |
|||||||
|
From 2b5c925d19e1eeecf6a24809396fed2774ee0695 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Jean Delvare <jdelvare@suse.de> |
||||||
|
Date: Tue, 25 Jul 2017 11:21:30 +0200 |
||||||
|
Subject: [PATCH 06/10] biosdecode: Avoid repeating pointer arithmetic |
||||||
|
|
||||||
|
This makes the code both more efficient and more readable. |
||||||
|
|
||||||
|
--- |
||||||
|
biosdecode.c | 18 +++++++++--------- |
||||||
|
1 file changed, 9 insertions(+), 9 deletions(-) |
||||||
|
|
||||||
|
diff --git a/biosdecode.c b/biosdecode.c |
||||||
|
index b37e510..99a27fe 100644 |
||||||
|
--- a/biosdecode.c |
||||||
|
+++ b/biosdecode.c |
||||||
|
@@ -375,7 +375,7 @@ static void pir_link_bitmap(char letter, const u8 *p) |
||||||
|
|
||||||
|
static int pir_decode(const u8 *p, size_t len) |
||||||
|
{ |
||||||
|
- int i; |
||||||
|
+ int i, n; |
||||||
|
|
||||||
|
if (len < 32 || !checksum(p, WORD(p + 6))) |
||||||
|
return 0; |
||||||
|
@@ -394,18 +394,18 @@ static int pir_decode(const u8 *p, size_t len) |
||||||
|
printf("\tMiniport Data: 0x%08X\n", |
||||||
|
DWORD(p + 16)); |
||||||
|
|
||||||
|
- for (i = 1; i <= (WORD(p + 6) - 32) / 16; i++) |
||||||
|
+ n = (len - 32) / 16; |
||||||
|
+ for (i = 1, p += 32; i <= n; i++, p += 16) |
||||||
|
{ |
||||||
|
- printf("\tDevice: %02x:%02x,", |
||||||
|
- p[(i + 1) * 16], p[(i + 1) * 16 + 1] >> 3); |
||||||
|
- pir_slot_number(p[(i + 1) * 16 + 14]); |
||||||
|
+ printf("\tDevice: %02x:%02x,", p[0], p[1] >> 3); |
||||||
|
+ pir_slot_number(p[14]); |
||||||
|
printf("\n"); |
||||||
|
if (opt.pir == PIR_FULL) |
||||||
|
{ |
||||||
|
- pir_link_bitmap('A', p + (i + 1) * 16 + 2); |
||||||
|
- pir_link_bitmap('B', p + (i + 1) * 16 + 5); |
||||||
|
- pir_link_bitmap('C', p + (i + 1) * 16 + 8); |
||||||
|
- pir_link_bitmap('D', p + (i + 1) * 16 + 11); |
||||||
|
+ pir_link_bitmap('A', p + 2); |
||||||
|
+ pir_link_bitmap('B', p + 5); |
||||||
|
+ pir_link_bitmap('C', p + 8); |
||||||
|
+ pir_link_bitmap('D', p + 11); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
-- |
||||||
|
2.9.5 |
||||||
|
|
@ -0,0 +1,141 @@ |
|||||||
|
From ee07a1b4249560d620d05194eb8ff61b40d3ce23 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Jerry Hoemann <jerry.hoemann@hpe.com> |
||||||
|
Date: Wed, 13 Sep 2017 15:54:22 -0600 |
||||||
|
Subject: [PATCH 07/10] dmioem: Reflect HPE's new company name |
||||||
|
|
||||||
|
After Hewlett Packard Enterprise split from Hewlett-Packard, DMI OEM |
||||||
|
tables reflect the new company name. Gen10 and subsequent systems will |
||||||
|
use HPE. Gen9 and prior systems continue to use the old "HP" name. |
||||||
|
|
||||||
|
Signed-off-by: Jerry Hoemann <jerry.hoemann@hpe.com> |
||||||
|
Signed-off-by: Jean Delvare <jdelvare@suse.de> |
||||||
|
--- |
||||||
|
dmioem.c | 32 +++++++++++++++++++------------- |
||||||
|
1 file changed, 19 insertions(+), 13 deletions(-) |
||||||
|
|
||||||
|
diff --git a/dmioem.c b/dmioem.c |
||||||
|
index 034ad9f..a032344 100644 |
||||||
|
--- a/dmioem.c |
||||||
|
+++ b/dmioem.c |
||||||
|
@@ -35,6 +35,7 @@ enum DMI_VENDORS |
||||||
|
VENDOR_UNKNOWN, |
||||||
|
VENDOR_HP, |
||||||
|
VENDOR_ACER, |
||||||
|
+ VENDOR_HPE, |
||||||
|
}; |
||||||
|
|
||||||
|
static enum DMI_VENDORS dmi_vendor = VENDOR_UNKNOWN; |
||||||
|
@@ -58,12 +59,14 @@ void dmi_set_vendor(const char *s) |
||||||
|
|
||||||
|
if (strncmp(s, "HP", len) == 0 || strncmp(s, "Hewlett-Packard", len) == 0) |
||||||
|
dmi_vendor = VENDOR_HP; |
||||||
|
+ else if (strncmp(s, "HPE", len) == 0 || strncmp(s, "Hewlett Packard Enterprise", len) == 0) |
||||||
|
+ dmi_vendor = VENDOR_HPE; |
||||||
|
else if (strncmp(s, "Acer", len) == 0) |
||||||
|
dmi_vendor = VENDOR_ACER; |
||||||
|
} |
||||||
|
|
||||||
|
/* |
||||||
|
- * HP-specific data structures are decoded here. |
||||||
|
+ * HPE-specific data structures are decoded here. |
||||||
|
* |
||||||
|
* Code contributed by John Cagle and Tyler Bell. |
||||||
|
*/ |
||||||
|
@@ -98,14 +101,15 @@ static int dmi_decode_hp(const struct dmi_header *h) |
||||||
|
u8 *data = h->data; |
||||||
|
int nic, ptr; |
||||||
|
u32 feat; |
||||||
|
+ const char *company = (dmi_vendor == VENDOR_HP) ? "HP" : "HPE"; |
||||||
|
|
||||||
|
switch (h->type) |
||||||
|
{ |
||||||
|
case 204: |
||||||
|
/* |
||||||
|
- * Vendor Specific: HP ProLiant System/Rack Locator |
||||||
|
+ * Vendor Specific: HPE ProLiant System/Rack Locator |
||||||
|
*/ |
||||||
|
- printf("HP ProLiant System/Rack Locator\n"); |
||||||
|
+ printf("%s ProLiant System/Rack Locator\n", company); |
||||||
|
if (h->length < 0x0B) break; |
||||||
|
printf("\tRack Name: %s\n", dmi_string(h, data[0x04])); |
||||||
|
printf("\tEnclosure Name: %s\n", dmi_string(h, data[0x05])); |
||||||
|
@@ -119,7 +123,7 @@ static int dmi_decode_hp(const struct dmi_header *h) |
||||||
|
case 209: |
||||||
|
case 221: |
||||||
|
/* |
||||||
|
- * Vendor Specific: HP ProLiant NIC MAC Information |
||||||
|
+ * Vendor Specific: HPE ProLiant NIC MAC Information |
||||||
|
* |
||||||
|
* This prints the BIOS NIC number, |
||||||
|
* PCI bus/device/function, and MAC address |
||||||
|
@@ -137,9 +141,10 @@ static int dmi_decode_hp(const struct dmi_header *h) |
||||||
|
* |
||||||
|
* Type 221: is deprecated in the latest docs |
||||||
|
*/ |
||||||
|
- printf(h->type == 221 ? |
||||||
|
- "HP BIOS iSCSI NIC PCI and MAC Information\n" : |
||||||
|
- "HP BIOS PXE NIC PCI and MAC Information\n"); |
||||||
|
+ printf("%s %s\n", company, |
||||||
|
+ h->type == 221 ? |
||||||
|
+ "BIOS iSCSI NIC PCI and MAC Information" : |
||||||
|
+ "BIOS PXE NIC PCI and MAC Information"); |
||||||
|
nic = 1; |
||||||
|
ptr = 4; |
||||||
|
while (h->length >= ptr + 8) |
||||||
|
@@ -155,7 +160,7 @@ static int dmi_decode_hp(const struct dmi_header *h) |
||||||
|
|
||||||
|
case 233: |
||||||
|
/* |
||||||
|
- * Vendor Specific: HP ProLiant NIC MAC Information |
||||||
|
+ * Vendor Specific: HPE ProLiant NIC MAC Information |
||||||
|
* |
||||||
|
* This prints the BIOS NIC number, |
||||||
|
* PCI bus/device/function, and MAC address |
||||||
|
@@ -171,7 +176,7 @@ static int dmi_decode_hp(const struct dmi_header *h) |
||||||
|
* 0x08 | MAC | 32B | MAC addr padded w/ 0s |
||||||
|
* 0x28 | Port No| BYTE | Each NIC maps to a Port |
||||||
|
*/ |
||||||
|
- printf("HP BIOS PXE NIC PCI and MAC Information\n"); |
||||||
|
+ printf("%s BIOS PXE NIC PCI and MAC Information\n", company); |
||||||
|
if (h->length < 0x0E) break; |
||||||
|
/* If the record isn't long enough, we don't have an ID |
||||||
|
* use 0xFF to use the internal counter. |
||||||
|
@@ -183,11 +188,11 @@ static int dmi_decode_hp(const struct dmi_header *h) |
||||||
|
|
||||||
|
case 212: |
||||||
|
/* |
||||||
|
- * Vendor Specific: HP 64-bit CRU Information |
||||||
|
+ * Vendor Specific: HPE 64-bit CRU Information |
||||||
|
* |
||||||
|
* Source: hpwdt kernel driver |
||||||
|
*/ |
||||||
|
- printf("HP 64-bit CRU Information\n"); |
||||||
|
+ printf("%s 64-bit CRU Information\n", company); |
||||||
|
if (h->length < 0x18) break; |
||||||
|
printf("\tSignature: 0x%08x", DWORD(data + 0x04)); |
||||||
|
if (is_printable(data + 0x04, 4)) |
||||||
|
@@ -208,11 +213,11 @@ static int dmi_decode_hp(const struct dmi_header *h) |
||||||
|
|
||||||
|
case 219: |
||||||
|
/* |
||||||
|
- * Vendor Specific: HP ProLiant Information |
||||||
|
+ * Vendor Specific: HPE ProLiant Information |
||||||
|
* |
||||||
|
* Source: hpwdt kernel driver |
||||||
|
*/ |
||||||
|
- printf("HP ProLiant Information\n"); |
||||||
|
+ printf("%s ProLiant Information\n", company); |
||||||
|
if (h->length < 0x08) break; |
||||||
|
printf("\tPower Features: 0x%08x\n", DWORD(data + 0x04)); |
||||||
|
if (h->length < 0x0C) break; |
||||||
|
@@ -281,6 +286,7 @@ int dmi_decode_oem(const struct dmi_header *h) |
||||||
|
switch (dmi_vendor) |
||||||
|
{ |
||||||
|
case VENDOR_HP: |
||||||
|
+ case VENDOR_HPE: |
||||||
|
return dmi_decode_hp(h); |
||||||
|
case VENDOR_ACER: |
||||||
|
return dmi_decode_acer(h); |
||||||
|
-- |
||||||
|
2.9.5 |
||||||
|
|
@ -0,0 +1,134 @@ |
|||||||
|
From 6517fa7c8c8a74a9eae9e6192de316ef8952f2a8 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Jean Delvare <jdelvare@suse.de> |
||||||
|
Date: Thu, 14 Sep 2017 10:08:10 +0200 |
||||||
|
Subject: [PATCH 08/10] dmioem: Sort vendor names alphabetically |
||||||
|
|
||||||
|
Signed-off-by: Jean Delvare <jdelvare@suse.de> |
||||||
|
--- |
||||||
|
dmioem.c | 92 ++++++++++++++++++++++++++++++++-------------------------------- |
||||||
|
1 file changed, 46 insertions(+), 46 deletions(-) |
||||||
|
|
||||||
|
diff --git a/dmioem.c b/dmioem.c |
||||||
|
index a032344..8a72ac9 100644 |
||||||
|
--- a/dmioem.c |
||||||
|
+++ b/dmioem.c |
||||||
|
@@ -33,8 +33,8 @@ |
||||||
|
enum DMI_VENDORS |
||||||
|
{ |
||||||
|
VENDOR_UNKNOWN, |
||||||
|
- VENDOR_HP, |
||||||
|
VENDOR_ACER, |
||||||
|
+ VENDOR_HP, |
||||||
|
VENDOR_HPE, |
||||||
|
}; |
||||||
|
|
||||||
|
@@ -57,12 +57,54 @@ void dmi_set_vendor(const char *s) |
||||||
|
while (len && s[len - 1] == ' ') |
||||||
|
len--; |
||||||
|
|
||||||
|
- if (strncmp(s, "HP", len) == 0 || strncmp(s, "Hewlett-Packard", len) == 0) |
||||||
|
+ if (strncmp(s, "Acer", len) == 0) |
||||||
|
+ dmi_vendor = VENDOR_ACER; |
||||||
|
+ else if (strncmp(s, "HP", len) == 0 || strncmp(s, "Hewlett-Packard", len) == 0) |
||||||
|
dmi_vendor = VENDOR_HP; |
||||||
|
else if (strncmp(s, "HPE", len) == 0 || strncmp(s, "Hewlett Packard Enterprise", len) == 0) |
||||||
|
dmi_vendor = VENDOR_HPE; |
||||||
|
- else if (strncmp(s, "Acer", len) == 0) |
||||||
|
- dmi_vendor = VENDOR_ACER; |
||||||
|
+} |
||||||
|
+ |
||||||
|
+/* |
||||||
|
+ * Acer-specific data structures are decoded here. |
||||||
|
+ */ |
||||||
|
+ |
||||||
|
+static int dmi_decode_acer(const struct dmi_header *h) |
||||||
|
+{ |
||||||
|
+ u8 *data = h->data; |
||||||
|
+ u16 cap; |
||||||
|
+ |
||||||
|
+ switch (h->type) |
||||||
|
+ { |
||||||
|
+ case 170: |
||||||
|
+ /* |
||||||
|
+ * Vendor Specific: Acer Hotkey Function |
||||||
|
+ * |
||||||
|
+ * Source: acer-wmi kernel driver |
||||||
|
+ * |
||||||
|
+ * Probably applies to some laptop models of other |
||||||
|
+ * brands, including Fujitsu-Siemens, Medion, Lenovo, |
||||||
|
+ * and eMachines. |
||||||
|
+ */ |
||||||
|
+ printf("Acer Hotkey Function\n"); |
||||||
|
+ if (h->length < 0x0F) break; |
||||||
|
+ cap = WORD(data + 0x04); |
||||||
|
+ printf("\tFunction bitmap for Communication Button: 0x%04hx\n", cap); |
||||||
|
+ printf("\t\tWiFi: %s\n", cap & 0x0001 ? "Yes" : "No"); |
||||||
|
+ printf("\t\t3G: %s\n", cap & 0x0040 ? "Yes" : "No"); |
||||||
|
+ printf("\t\tWiMAX: %s\n", cap & 0x0080 ? "Yes" : "No"); |
||||||
|
+ printf("\t\tBluetooth: %s\n", cap & 0x0800 ? "Yes" : "No"); |
||||||
|
+ printf("\tFunction bitmap for Application Button: 0x%04hx\n", WORD(data + 0x06)); |
||||||
|
+ printf("\tFunction bitmap for Media Button: 0x%04hx\n", WORD(data + 0x08)); |
||||||
|
+ printf("\tFunction bitmap for Display Button: 0x%04hx\n", WORD(data + 0x0A)); |
||||||
|
+ printf("\tFunction bitmap for Others Button: 0x%04hx\n", WORD(data + 0x0C)); |
||||||
|
+ printf("\tCommunication Function Key Number: %d\n", data[0x0E]); |
||||||
|
+ break; |
||||||
|
+ |
||||||
|
+ default: |
||||||
|
+ return 0; |
||||||
|
+ } |
||||||
|
+ return 1; |
||||||
|
} |
||||||
|
|
||||||
|
/* |
||||||
|
@@ -236,48 +278,6 @@ static int dmi_decode_hp(const struct dmi_header *h) |
||||||
|
} |
||||||
|
|
||||||
|
/* |
||||||
|
- * Acer-specific data structures are decoded here. |
||||||
|
- */ |
||||||
|
- |
||||||
|
-static int dmi_decode_acer(const struct dmi_header *h) |
||||||
|
-{ |
||||||
|
- u8 *data = h->data; |
||||||
|
- u16 cap; |
||||||
|
- |
||||||
|
- switch (h->type) |
||||||
|
- { |
||||||
|
- case 170: |
||||||
|
- /* |
||||||
|
- * Vendor Specific: Acer Hotkey Function |
||||||
|
- * |
||||||
|
- * Source: acer-wmi kernel driver |
||||||
|
- * |
||||||
|
- * Probably applies to some laptop models of other |
||||||
|
- * brands, including Fujitsu-Siemens, Medion, Lenovo, |
||||||
|
- * and eMachines. |
||||||
|
- */ |
||||||
|
- printf("Acer Hotkey Function\n"); |
||||||
|
- if (h->length < 0x0F) break; |
||||||
|
- cap = WORD(data + 0x04); |
||||||
|
- printf("\tFunction bitmap for Communication Button: 0x%04hx\n", cap); |
||||||
|
- printf("\t\tWiFi: %s\n", cap & 0x0001 ? "Yes" : "No"); |
||||||
|
- printf("\t\t3G: %s\n", cap & 0x0040 ? "Yes" : "No"); |
||||||
|
- printf("\t\tWiMAX: %s\n", cap & 0x0080 ? "Yes" : "No"); |
||||||
|
- printf("\t\tBluetooth: %s\n", cap & 0x0800 ? "Yes" : "No"); |
||||||
|
- printf("\tFunction bitmap for Application Button: 0x%04hx\n", WORD(data + 0x06)); |
||||||
|
- printf("\tFunction bitmap for Media Button: 0x%04hx\n", WORD(data + 0x08)); |
||||||
|
- printf("\tFunction bitmap for Display Button: 0x%04hx\n", WORD(data + 0x0A)); |
||||||
|
- printf("\tFunction bitmap for Others Button: 0x%04hx\n", WORD(data + 0x0C)); |
||||||
|
- printf("\tCommunication Function Key Number: %d\n", data[0x0E]); |
||||||
|
- break; |
||||||
|
- |
||||||
|
- default: |
||||||
|
- return 0; |
||||||
|
- } |
||||||
|
- return 1; |
||||||
|
-} |
||||||
|
- |
||||||
|
-/* |
||||||
|
* Dispatch vendor-specific entries decoding |
||||||
|
* Return 1 if decoding was successful, 0 otherwise |
||||||
|
*/ |
||||||
|
-- |
||||||
|
2.9.5 |
||||||
|
|
@ -0,0 +1,90 @@ |
|||||||
|
From e629bccb2ced5f9e52e142bd841d310434975c63 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Alexey Dokuchaev <danfe@nsu.ru> |
||||||
|
Date: Thu, 30 Nov 2017 16:27:48 +0100 |
||||||
|
Subject: [PATCH 09/10] UEFI support on FreeBSD |
||||||
|
|
||||||
|
Currently, dmidecode(8) does not work on FreeBSD booted in UEFI mode. |
||||||
|
Previously it was understandable, since there are no things like Linuxish |
||||||
|
/proc/efi/systab or /sys/firmware/efi/systab to read from under FreeBSD. |
||||||
|
|
||||||
|
However, 7 months ago, ambrisko@ had added support for exposing the SMBIOS |
||||||
|
anchor base address via kernel environment: |
||||||
|
|
||||||
|
https://svnweb.freebsd.org/base?view=revision&revision=307326 |
||||||
|
|
||||||
|
I've patched dmidecode.c to try to get the address from hint.smbios.0.mem |
||||||
|
and fall back to traditional address space scanning. I've tested it both |
||||||
|
on EFI (amd64 laptop) and non-EFI (i386 desktop) machines. |
||||||
|
|
||||||
|
--- |
||||||
|
dmidecode.c | 33 +++++++++++++++++++++++++++++++++ |
||||||
|
1 file changed, 33 insertions(+) |
||||||
|
|
||||||
|
diff --git a/dmidecode.c b/dmidecode.c |
||||||
|
index 6559567..aadef75 100644 |
||||||
|
--- a/dmidecode.c |
||||||
|
+++ b/dmidecode.c |
||||||
|
@@ -64,6 +64,11 @@ |
||||||
|
#include <stdlib.h> |
||||||
|
#include <unistd.h> |
||||||
|
|
||||||
|
+#ifdef __FreeBSD__ |
||||||
|
+#include <errno.h> |
||||||
|
+#include <kenv.h> |
||||||
|
+#endif |
||||||
|
+ |
||||||
|
#include "version.h" |
||||||
|
#include "config.h" |
||||||
|
#include "types.h" |
||||||
|
@@ -4934,13 +4939,18 @@ static int legacy_decode(u8 *buf, const char *devmem, u32 flags) |
||||||
|
#define EFI_NO_SMBIOS (-2) |
||||||
|
static int address_from_efi(off_t *address) |
||||||
|
{ |
||||||
|
+#if defined(__linux__) |
||||||
|
FILE *efi_systab; |
||||||
|
const char *filename; |
||||||
|
char linebuf[64]; |
||||||
|
+#elif defined(__FreeBSD__) |
||||||
|
+ char addrstr[KENV_MVALLEN + 1]; |
||||||
|
+#endif |
||||||
|
int ret; |
||||||
|
|
||||||
|
*address = 0; /* Prevent compiler warning */ |
||||||
|
|
||||||
|
+#if defined(__linux__) |
||||||
|
/* |
||||||
|
* Linux up to 2.6.6: /proc/efi/systab |
||||||
|
* Linux 2.6.7 and up: /sys/firmware/efi/systab |
||||||
|
@@ -4972,6 +4982,29 @@ static int address_from_efi(off_t *address) |
||||||
|
|
||||||
|
if (ret == EFI_NO_SMBIOS) |
||||||
|
fprintf(stderr, "%s: SMBIOS entry point missing\n", filename); |
||||||
|
+#elif defined(__FreeBSD__) |
||||||
|
+ /* |
||||||
|
+ * On FreeBSD, SMBIOS anchor base address in UEFI mode is exposed |
||||||
|
+ * via kernel environment: |
||||||
|
+ * https://svnweb.freebsd.org/base?view=revision&revision=307326 |
||||||
|
+ */ |
||||||
|
+ ret = kenv(KENV_GET, "hint.smbios.0.mem", addrstr, sizeof(addrstr)); |
||||||
|
+ if (ret == -1) |
||||||
|
+ { |
||||||
|
+ if (errno != ENOENT) |
||||||
|
+ perror("kenv"); |
||||||
|
+ return EFI_NOT_FOUND; |
||||||
|
+ } |
||||||
|
+ |
||||||
|
+ *address = strtoull(addrstr, NULL, 0); |
||||||
|
+ if (!(opt.flags & FLAG_QUIET)) |
||||||
|
+ printf("# SMBIOS entry point at 0x%08llx\n", |
||||||
|
+ (unsigned long long)*address); |
||||||
|
+ |
||||||
|
+ ret = 0; |
||||||
|
+#else |
||||||
|
+ ret = EFI_NOT_FOUND; |
||||||
|
+#endif |
||||||
|
return ret; |
||||||
|
} |
||||||
|
|
||||||
|
-- |
||||||
|
2.9.5 |
||||||
|
|
@ -0,0 +1,58 @@ |
|||||||
|
From 97d23fb9a642574ef4415e71e4a01387d06744d6 Mon Sep 17 00:00:00 2001 |
||||||
|
From: Jean Delvare <jdelvare@suse.de> |
||||||
|
Date: Thu, 30 Nov 2017 16:27:56 +0100 |
||||||
|
Subject: [PATCH 10/10] dmidecode: Share common EFI code |
||||||
|
|
||||||
|
Avoid duplicating code between OS-specific paths. |
||||||
|
|
||||||
|
--- |
||||||
|
dmidecode.c | 15 ++++++++------- |
||||||
|
1 file changed, 8 insertions(+), 7 deletions(-) |
||||||
|
|
||||||
|
diff --git a/dmidecode.c b/dmidecode.c |
||||||
|
index aadef75..87faaa9 100644 |
||||||
|
--- a/dmidecode.c |
||||||
|
+++ b/dmidecode.c |
||||||
|
@@ -4946,6 +4946,7 @@ static int address_from_efi(off_t *address) |
||||||
|
#elif defined(__FreeBSD__) |
||||||
|
char addrstr[KENV_MVALLEN + 1]; |
||||||
|
#endif |
||||||
|
+ const char *eptype; |
||||||
|
int ret; |
||||||
|
|
||||||
|
*address = 0; /* Prevent compiler warning */ |
||||||
|
@@ -4970,9 +4971,7 @@ static int address_from_efi(off_t *address) |
||||||
|
|| strcmp(linebuf, "SMBIOS") == 0) |
||||||
|
{ |
||||||
|
*address = strtoull(addrp, NULL, 0); |
||||||
|
- if (!(opt.flags & FLAG_QUIET)) |
||||||
|
- printf("# %s entry point at 0x%08llx\n", |
||||||
|
- linebuf, (unsigned long long)*address); |
||||||
|
+ eptype = linebuf; |
||||||
|
ret = 0; |
||||||
|
break; |
||||||
|
} |
||||||
|
@@ -4997,14 +4996,16 @@ static int address_from_efi(off_t *address) |
||||||
|
} |
||||||
|
|
||||||
|
*address = strtoull(addrstr, NULL, 0); |
||||||
|
- if (!(opt.flags & FLAG_QUIET)) |
||||||
|
- printf("# SMBIOS entry point at 0x%08llx\n", |
||||||
|
- (unsigned long long)*address); |
||||||
|
- |
||||||
|
+ eptype = "SMBIOS"; |
||||||
|
ret = 0; |
||||||
|
#else |
||||||
|
ret = EFI_NOT_FOUND; |
||||||
|
#endif |
||||||
|
+ |
||||||
|
+ if (ret == 0 && !(opt.flags & FLAG_QUIET)) |
||||||
|
+ printf("# %s entry point at 0x%08llx\n", |
||||||
|
+ eptype, (unsigned long long)*address); |
||||||
|
+ |
||||||
|
return ret; |
||||||
|
} |
||||||
|
|
||||||
|
-- |
||||||
|
2.9.5 |
||||||
|
|
@ -0,0 +1,253 @@ |
|||||||
|
Summary: Tool to analyse BIOS DMI data |
||||||
|
Name: dmidecode |
||||||
|
Version: 3.1 |
||||||
|
Release: 2%{?dist} |
||||||
|
Epoch: 1 |
||||||
|
Group: System Environment/Base |
||||||
|
License: GPLv2+ |
||||||
|
Source0: %{name}-%{version}.tar.xz |
||||||
|
URL: http://www.nongnu.org/dmidecode/ |
||||||
|
Patch0: 0001-dmidecode-Add-system-family-direct-string-option.patch |
||||||
|
Patch1: 0002-Goodbye-CHANGELOG-welcome-NEWS.patch |
||||||
|
Patch2: 0003-Fix-install-doc-target.patch |
||||||
|
Patch3: 0004-biosdecode-Add-option-pir-full.patch |
||||||
|
Patch4: 0005-biosdecode-Clean-up-the-PIR-table-output.patch |
||||||
|
Patch5: 0006-biosdecode-Avoid-repeating-pointer-arithmetic.patch |
||||||
|
Patch6: 0007-dmioem-Reflect-HPE-s-new-company-name.patch |
||||||
|
Patch7: 0008-dmioem-Sort-vendor-names-alphabetically.patch |
||||||
|
Patch8: 0009-UEFI-support-on-FreeBSD.patch |
||||||
|
Patch9: 0010-dmidecode-Share-common-EFI-code.patch |
||||||
|
Patch10: 0001-dmidecode-Fix-firmware-version-of-TPM-device.patch |
||||||
|
Patch11: 0002-dmioem-decode-HPE-UEFI-type-219-Misc-Features.patch |
||||||
|
Patch12: 0003-dmidecode-Use-lowercase-letters-for-UUID.patch |
||||||
|
|
||||||
|
Buildroot: %{_tmppath}/%{name}-%{version}-root |
||||||
|
BuildRequires: automake autoconf |
||||||
|
ExclusiveArch: %{ix86} x86_64 ia64 aarch64 |
||||||
|
|
||||||
|
%description |
||||||
|
dmidecode reports information about x86 & ia64 hardware as described in the |
||||||
|
system BIOS according to the SMBIOS/DMI standard. This information |
||||||
|
typically includes system manufacturer, model name, serial number, |
||||||
|
BIOS version, asset tag as well as a lot of other details of varying |
||||||
|
level of interest and reliability depending on the manufacturer. |
||||||
|
|
||||||
|
This will often include usage status for the CPU sockets, expansion |
||||||
|
slots (e.g. AGP, PCI, ISA) and memory module slots, and the list of |
||||||
|
I/O ports (e.g. serial, parallel, USB). |
||||||
|
|
||||||
|
%prep |
||||||
|
%setup -q |
||||||
|
%patch0 -p1 -b .add_system_family |
||||||
|
%patch1 -p1 -b .changelog_to_new |
||||||
|
%patch2 -p1 -b .fix_install_doc |
||||||
|
%patch3 -p1 -b .add_option_pir |
||||||
|
%patch4 -p1 -b .clean_up_pir |
||||||
|
%patch5 -p1 -b .avoid_repeating |
||||||
|
%patch6 -p1 -b .reflect_hpe |
||||||
|
%patch7 -p1 -b .sort_vendor_names |
||||||
|
%patch8 -p1 -b .uefi_support_bsd |
||||||
|
%patch9 -p1 -b .share_common_efi |
||||||
|
%patch10 -p1 |
||||||
|
%patch11 -p1 |
||||||
|
%patch12 -p1 |
||||||
|
|
||||||
|
%build |
||||||
|
make %{?_smp_mflags} CFLAGS="$RPM_OPT_FLAGS -fPIE" LDFLAGS="-pie -Wl,-z,now" |
||||||
|
|
||||||
|
%install |
||||||
|
rm -rf ${buildroot} |
||||||
|
make %{?_smp_mflags} DESTDIR=%{buildroot} prefix=%{_prefix} install-bin install-man |
||||||
|
|
||||||
|
%clean |
||||||
|
rm -rf ${buildroot} |
||||||
|
|
||||||
|
%files |
||||||
|
%doc AUTHORS NEWS README |
||||||
|
%{!?_licensedir:%global license %%doc} |
||||||
|
%license LICENSE |
||||||
|
%{_sbindir}/dmidecode |
||||||
|
%ifnarch ia64 aarch64 |
||||||
|
%{_sbindir}/vpddecode |
||||||
|
%{_sbindir}/ownership |
||||||
|
%{_sbindir}/biosdecode |
||||||
|
%endif |
||||||
|
%{_mandir}/man8/* |
||||||
|
|
||||||
|
%changelog |
||||||
|
* Thu Apr 26 2018 Lianbo Jiang <lijiang@redhat.com> - 1:3.1-1 |
||||||
|
- Sync with upstream |
||||||
|
- Resolves: rhbz#1568227 |
||||||
|
|
||||||
|
* Wed May 3 2017 Petr Oros <poros@redhat.com> - 1:3.0-5 |
||||||
|
- Update compiler flags for hardened builds |
||||||
|
- Resolves: #1420763 |
||||||
|
|
||||||
|
* Tue Feb 28 2017 Petr Oros <poros@redhat.com> - 1:3.0-4 |
||||||
|
- Sync with upstream |
||||||
|
- Resolves: #1385884 |
||||||
|
|
||||||
|
* Tue Nov 8 2016 Petr Oros <poros@redhat.com> - 1:3.0-3 |
||||||
|
- Hide irrelevant fixup message |
||||||
|
- Resolves: #1384195 |
||||||
|
|
||||||
|
* Wed Jun 29 2016 Petr Oros <poros@redhat.com> - 1:3.0-2 |
||||||
|
- Unmask LRDIMM in memmory type detail |
||||||
|
- Resolves: #1321342 |
||||||
|
|
||||||
|
* Wed May 4 2016 Petr Oros <poros@redhat.com> - 1:3.0-1 |
||||||
|
- Update to upstream 3.0 release. |
||||||
|
- Resolves: #1273487 |
||||||
|
|
||||||
|
* Mon Sep 21 2015 Petr Oros <poros@redhat.com> - 1:2.12-9 |
||||||
|
- dmioem: Decode Acer-specific DMI type 170 |
||||||
|
- dmioem: Decode HP-specific DMI types 212 and 219 |
||||||
|
- dmioem: Decode HP-specific DMI type 233, and refactored 209 and 221 to use a common function |
||||||
|
- Resolves: #1232501 |
||||||
|
|
||||||
|
* Thu Jul 23 2015 Petr Oros <poros@redhat.com> - 1:2.12-8 |
||||||
|
- Support upstream sysfs filename for smbios entry point (Mark Salter) |
||||||
|
- Resolves: #1232153 |
||||||
|
|
||||||
|
* Thu Jul 16 2015 Petr Oros <poros@redhat.com> - 1:2.12-7 |
||||||
|
- only use SMBIOS3 on aarch64 systems (Jeffrey Bastian) |
||||||
|
- Resolves: #1242409 |
||||||
|
|
||||||
|
* Wed May 13 2015 Petr Oros <poros@redhat.com> - 1:2.12-6 |
||||||
|
- Add preliminary support for SMBIOS 64-bit entry point (Mark Salter) |
||||||
|
- Add support for DDR4 memmory |
||||||
|
|
||||||
|
* Fri Feb 21 2014 Anton Arapov <anton@redhat.com> - 2.12-5 |
||||||
|
- Spec file fixes for the Aarch64. (John Feeney ) |
||||||
|
|
||||||
|
* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 1:2.12-4 |
||||||
|
- Mass rebuild 2013-12-27 |
||||||
|
|
||||||
|
* Thu May 09 2013 Anton Arapov <anton@redhat.com> - 1:2.12-3 |
||||||
|
- Accomodate few more necesary, to enable SMBIOS v2.8, changes from upstream. |
||||||
|
|
||||||
|
* Fri Apr 26 2013 Anton Arapov <anton@redhat.com> - 1:2.12-2 |
||||||
|
- Fixup, so that it actually read SMBIOS 2.8.0 table. |
||||||
|
|
||||||
|
* Wed Apr 17 2013 Anton Arapov <anton@redhat.com> - 1:2.12-1 |
||||||
|
- Update to upstream 2.12 release. |
||||||
|
|
||||||
|
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:2.11-10 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild |
||||||
|
|
||||||
|
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:2.11-9 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild |
||||||
|
|
||||||
|
* Mon Mar 26 2012 Anton Arapov <anton@redhat.com> - 1:2.11-8 |
||||||
|
- Update dmidecode.8 manpage |
||||||
|
|
||||||
|
* Mon Mar 12 2012 Anton Arapov <anton@redhat.com> - 1:2.11-7 |
||||||
|
- Add "PXE" to HP OEM Type 209 record output |
||||||
|
- Properly print the hexadecimal value of invalid string characters |
||||||
|
|
||||||
|
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:2.11-6 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild |
||||||
|
|
||||||
|
* Mon Nov 14 2011 Anton Arapov <anton@redhat.com> - 1:2.11-5 |
||||||
|
- Fix the wrong call of the dmi_chassis_type function call. Thus fix |
||||||
|
an issue on the systems with the chassis lock available, application |
||||||
|
doesn't fall out with the out of spec error anymore. |
||||||
|
|
||||||
|
* Tue May 03 2011 Anton Arapov <anton@redhat.com> - 1:2.11-4 |
||||||
|
- Update to SMBIOS 2.7.1 |
||||||
|
- Fix the boundaries check in type16 |
||||||
|
|
||||||
|
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:2.11-3 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild |
||||||
|
|
||||||
|
* Wed Jan 19 2011 Anton Arapov <anton@redhat.com> - 1:2.11-2 |
||||||
|
- Update to upstream 2.11 release. (#623047) |
||||||
|
|
||||||
|
* Wed Jan 19 2011 Anton Arapov <anton@redhat.com> - 1:2.11-1 |
||||||
|
- Fix the changelog's NVR. |
||||||
|
|
||||||
|
* Mon Nov 08 2010 Prarit Bhargava <prarit@redhat.com> - 1:2.10-3 |
||||||
|
- updated kernel.spec for review [BZ 225698] |
||||||
|
|
||||||
|
* Fri Oct 15 2010 Anton Arapov <aarapov@redhat.com> - 1:2.10-2 |
||||||
|
- Does not build with gnu make v3.82+ (#631407) |
||||||
|
|
||||||
|
* Fri Dec 18 2009 Prarit Bhargava <prarit@redhat.com> - 1:2.10-1.40 |
||||||
|
- Fix rpmlint errors in specfile |
||||||
|
|
||||||
|
* Fri Aug 28 2009 Jarod Wilson <jarod@redhat.com> - 1:2.10-1.39 |
||||||
|
- Fix cache associativity mapping (was missing some commas) |
||||||
|
|
||||||
|
* Mon Aug 24 2009 Jarod Wilson <jarod@redhat.com> - 1:2.10-1.38 |
||||||
|
- Add support for newer sockets, processors and pcie slot types |
||||||
|
|
||||||
|
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:2.10-1.36.2 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild |
||||||
|
|
||||||
|
* Fri Feb 27 2009 Matthias Clasen <mclasen@redhat.com> |
||||||
|
- Build for i586 |
||||||
|
|
||||||
|
* Tue Feb 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:2.10-1.34.1 |
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild |
||||||
|
|
||||||
|
* Mon Feb 09 2009 Prarit Bhargava <prarit@redhat.com> 1:2.10 |
||||||
|
- rebuild with version 2.10 |
||||||
|
|
||||||
|
* Wed Jan 28 2009 Prarit Bhargava <prarit@redhat.com> 1:2.9-1.32 |
||||||
|
- fix Summary field (BZ 225698) |
||||||
|
|
||||||
|
* Wed Jul 16 2008 Tom "spot" Callaway <tcallawa@redhat.com> 1:2.9-1.30 |
||||||
|
- fix license tag |
||||||
|
|
||||||
|
* Fri Mar 14 2008 Doug Chapman <doug.chapman@hp.com> 1:2.9-1.29.1 |
||||||
|
- Do not package vpddecode, ownership and biosdecode on ia64 since those are x86 only |
||||||
|
|
||||||
|
* Tue Feb 19 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 1:2.9-1.27.1 |
||||||
|
- Autorebuild for GCC 4.3 |
||||||
|
|
||||||
|
* Mon Oct 22 2007 Prarit Bhargava <prarit@redhat.com> - 1:2.9 |
||||||
|
- rebuild with version 2.9 |
||||||
|
* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 1:2.7-1.25.1 |
||||||
|
- rebuild |
||||||
|
|
||||||
|
* Thu Feb 09 2006 Dave Jones <davej@redhat.com> |
||||||
|
- rebuild. |
||||||
|
|
||||||
|
* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com> |
||||||
|
- rebuilt |
||||||
|
|
||||||
|
* Mon Nov 28 2005 Dave Jones <davej@redhat.com> |
||||||
|
- Integrate several specfile cleanups from Robert Scheck. (#172543) |
||||||
|
|
||||||
|
* Sat Sep 24 2005 Dave Jones <davej@redhat.com> |
||||||
|
- Revert yesterdays patch, its unneeded in 2.7 |
||||||
|
|
||||||
|
* Fri Sep 23 2005 Dave Jones <davej@redhat.com> |
||||||
|
- Don't try to modify areas mmap'd read-only. |
||||||
|
- Don't build on ia64 any more. |
||||||
|
(It breaks on some boxes very badly, and works on very few). |
||||||
|
|
||||||
|
* Mon Sep 12 2005 Dave Jones <davej@redhat.com> |
||||||
|
- Update to upstream 2.7 |
||||||
|
|
||||||
|
* Fri Apr 15 2005 Florian La Roche <laroche@redhat.com> |
||||||
|
- remove empty scripts |
||||||
|
|
||||||
|
* Wed Mar 2 2005 Dave Jones <davej@redhat.com> |
||||||
|
- Update to upstream 2.6 |
||||||
|
|
||||||
|
* Tue Mar 1 2005 Dave Jones <davej@redhat.com> |
||||||
|
- Rebuild for gcc4 |
||||||
|
|
||||||
|
* Tue Feb 8 2005 Dave Jones <davej@redhat.com> |
||||||
|
- Rebuild with -D_FORTIFY_SOURCE=2 |
||||||
|
|
||||||
|
* Tue Jan 11 2005 Dave Jones <davej@redhat.com> |
||||||
|
- Add missing Obsoletes: kernel-utils |
||||||
|
|
||||||
|
* Mon Jan 10 2005 Dave Jones <davej@redhat.com> |
||||||
|
- Update to upstream 2.5 release. |
||||||
|
|
||||||
|
* Sat Dec 18 2004 Dave Jones <davej@redhat.com> |
||||||
|
- Initial packaging, based upon kernel-utils package. |
||||||
|
|
Loading…
Reference in new issue