[SeaBIOS] [PATCH] biostables: Support SMBIOS 2.6+ UUID format

Cole Robinson crobinso at redhat.com
Thu Jan 14 18:24:29 CET 2016


On 01/14/2016 12:22 PM, Kevin O'Connor wrote:
> On Tue, Jan 12, 2016 at 02:22:41PM -0500, Cole Robinson wrote:
>> SMBIOS 2.6+ stores the UUID in a different format, with the first 3
>> fields in little endian format. This is what modern qemu delivers
>> and what dmidecode also handles, so let's follow suit too. More
>> info at this thread:
>>
>> http://www.seabios.org/pipermail/seabios/2015-November/010031.html
>>
>> The only place this affects is when reporting the UUID at startup.
>>
>> https://bugzilla.redhat.com/show_bug.cgi?id=1284259
>> ---
>>  src/fw/biostables.c | 51 ++++++++++++++++++++++++++++++++++++++++-----------
>>  1 file changed, 40 insertions(+), 11 deletions(-)
>>
>> diff --git a/src/fw/biostables.c b/src/fw/biostables.c
>> index cb74396..2e15f82 100644
>> --- a/src/fw/biostables.c
>> +++ b/src/fw/biostables.c
>> @@ -306,17 +306,46 @@ display_uuid(void)
>>              if (memcmp(uuid, empty_uuid, sizeof(empty_uuid)) == 0)
>>                  return;
>>  
>> -            printf("Machine UUID"
>> -                   " %02x%02x%02x%02x"
>> -                   "-%02x%02x"
>> -                   "-%02x%02x"
>> -                   "-%02x%02x"
>> -                   "-%02x%02x%02x%02x%02x%02x\n"
>> -                   , uuid[ 0], uuid[ 1], uuid[ 2], uuid[ 3]
>> -                   , uuid[ 4], uuid[ 5]
>> -                   , uuid[ 6], uuid[ 7]
>> -                   , uuid[ 8], uuid[ 9]
>> -                   , uuid[10], uuid[11], uuid[12], uuid[13], uuid[14], uuid[15]);
>> +            /*
>> +            * comment borrowed from dmidecode:
>> +            *
>> +            * As of version 2.6 of the SMBIOS specification, the first 3
>> +            * fields of the UUID are supposed to be encoded on little-endian.
>> +            * The specification says that this is the defacto standard,
>> +            * however I've seen systems following RFC 4122 instead and use
>> +            * network byte order, so I am reluctant to apply the byte-swapping
>> +            * for older versions.
>> +            */
> 
> I find this comment confusing - how about something like:
> 
> According to SMBIOS v2.6 the first three fields are encoded in
> little-endian format.  Versions prior to v2.6 did not specify the
> encoding, but we follow dmidecode and assume big-endian encoding.
> 

That would be fine with me. If Gerd gives his ACK do you want to fix up the
comment or should I post a v2?

Thanks,
Cole



More information about the SeaBIOS mailing list