[ipxe-devel] uuid mangling patch

Michael Brown mbrown at fensystems.co.uk
Tue Mar 19 12:29:02 UTC 2013

On Tuesday 19 Mar 2013 07:00:44 alexandru.bordei at gmail.com wrote:
> I had an issue with UUIDs mangled, on HP DL120 G7. Didn't had it on Dell PE
> R200 nor any IBM's. Anyway what I did was to tweak the uuid a bit. It now
> works as it should. I also added a touppercase conversion since i've seen
> that some BIOSes return it lower case and some uppercase.

A simpler way to achieve the exact same effect would be:

-       sprintf ( buf, "%08x-%04x-%04x-%04x-%02x%02x%02x%02x%02x%02x",
-                 be32_to_cpu ( uuid->canonical.a ),
-                 be16_to_cpu ( uuid->canonical.b ),
-                 be16_to_cpu ( uuid->canonical.c ),
-                 be16_to_cpu ( uuid->canonical.d ),
+       sprintf ( buf, "%08X-%04X-%04X-%04X-%02X%02X%02X%02X%02X%02X",
+                 le32_to_cpu ( uuid->canonical.a ),
+                 le16_to_cpu ( uuid->canonical.b ),
+                 le16_to_cpu ( uuid->canonical.c ),
+                 le16_to_cpu ( uuid->canonical.d ),

Unfortunately, both this and your original patch would have the effect of 
mangling UUIDs on all the machines that are not currently mangled.

I don't know why different BIOSes seem to have different endianness conventions 
for UUIDs.  If other tools (e.g. dmidecode) are able to extract the "correct" 
UUID, then it would be interesting to find out how.


More information about the ipxe-devel mailing list