|
|
3540f1 |
From e1dfe0aec7bf2bc7f906f65ca1d5c82bd23d8f33 Mon Sep 17 00:00:00 2001
|
|
|
3540f1 |
From: Jean Delvare <jdelvare@suse.de>
|
|
|
3540f1 |
Date: Tue, 29 Jan 2019 14:11:42 +0100
|
|
|
3540f1 |
Subject: [PATCH 02/11] dmidecode: Document how the UUID fields are interpreted
|
|
|
3540f1 |
|
|
|
3540f1 |
There has always been a lot of confusion about the byte order of UUID
|
|
|
3540f1 |
fields. While dmidecode is doing "the right thing", documenting it
|
|
|
3540f1 |
can't hurt.
|
|
|
3540f1 |
|
|
|
3540f1 |
This should address bug #55510:
|
|
|
3540f1 |
https://savannah.nongnu.org/bugs/index.php?55510
|
|
|
3540f1 |
|
|
|
3540f1 |
Signed-off-by: Jean Delvare <jdelvare@suse.de>
|
|
|
3540f1 |
---
|
|
|
3540f1 |
man/dmidecode.8 | 14 ++++++++++++++
|
|
|
3540f1 |
1 file changed, 14 insertions(+)
|
|
|
3540f1 |
|
|
|
3540f1 |
diff --git a/man/dmidecode.8 b/man/dmidecode.8
|
|
|
3540f1 |
index 33f7d33bd5ef..52100a82435e 100644
|
|
|
3540f1 |
--- a/man/dmidecode.8
|
|
|
3540f1 |
+++ b/man/dmidecode.8
|
|
|
3540f1 |
@@ -256,6 +256,20 @@ It is crafted to hard-code the table address at offset 0x20.
|
|
|
3540f1 |
.IP \(bu "\w'\(bu'u+1n"
|
|
|
3540f1 |
The DMI table is located at offset 0x20.
|
|
|
3540f1 |
|
|
|
3540f1 |
+.SH UUID FORMAT
|
|
|
3540f1 |
+There is some ambiguity about how to interpret the UUID fields prior to SMBIOS
|
|
|
3540f1 |
+specification version 2.6. There was no mention of byte swapping, and RFC 4122
|
|
|
3540f1 |
+says that no byte swapping should be applied by default. However, SMBIOS
|
|
|
3540f1 |
+specification version 2.6 (and later) explicitly states that the first 3 fields
|
|
|
3540f1 |
+of the UUID should be read as little-endian numbers (byte-swapped).
|
|
|
3540f1 |
+Furthermore, it implies that the same was already true for older versions of
|
|
|
3540f1 |
+the specification, even though it was not mentioned. In practice, many hardware
|
|
|
3540f1 |
+vendors were not byte-swapping the UUID. So, in order to preserve
|
|
|
3540f1 |
+compatibility, it was decided to interpret the UUID fields according to RFC
|
|
|
3540f1 |
+4122 (no byte swapping) when the SMBIOS version is older than 2.6, and to
|
|
|
3540f1 |
+interpret the first 3 fields as little-endian (byte-swapped) when the SMBIOS
|
|
|
3540f1 |
+version is 2.6 or later. The Linux kernel follows the same logic.
|
|
|
3540f1 |
+
|
|
|
3540f1 |
.SH FILES
|
|
|
3540f1 |
.I /dev/mem
|
|
|
3540f1 |
.br
|
|
|
3540f1 |
--
|
|
|
3540f1 |
2.17.1
|
|
|
3540f1 |
|