[PATCH v2 11/13] smbios: Fill UUID from sysinfo when available

Jan Kiszka jan.kiszka at siemens.com
Tue Oct 22 21:41:07 CEST 2024


On 22.10.24 19:00, Simon Glass wrote:
> On Tue, 22 Oct 2024 at 08:06, Jan Kiszka <jan.kiszka at siemens.com> wrote:
>>
>> From: Jan Kiszka <jan.kiszka at siemens.com>
>>
>> Allow for the sysinfo drivers to provide a system UUID to SMBIOS. Will
>> be first used by the IOT2050 boards.
>>
>> Based on original patch by Li Hua Qian.
>>
>> Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
>> ---
>>  include/sysinfo.h | 1 +
>>  lib/smbios.c      | 4 ++++
>>  2 files changed, 5 insertions(+)
> 
> Reviewed-by: Simon Glass <sjg at chromium.org>
> 
> What is this used for? Would you mind adding a comment for it? Should
> mention that it is a struct uuid
> 

What exactly is unclear here? The System UUID is a part of the SMBIOS
spec that U-Boot just ignored so far.

Jan

>>
>> diff --git a/include/sysinfo.h b/include/sysinfo.h
>> index 8a77ef44856..1c5008b5f23 100644
>> --- a/include/sysinfo.h
>> +++ b/include/sysinfo.h
>> @@ -49,6 +49,7 @@ enum sysinfo_id {
>>         SYSINFO_ID_SMBIOS_SYSTEM_SERIAL,
>>         SYSINFO_ID_SMBIOS_SYSTEM_SKU,
>>         SYSINFO_ID_SMBIOS_SYSTEM_FAMILY,
>> +       SYSINFO_ID_SMBIOS_SYSTEM_UUID,
>>         SYSINFO_ID_SMBIOS_BASEBOARD_MANUFACTURER,
>>         SYSINFO_ID_SMBIOS_BASEBOARD_PRODUCT,
>>         SYSINFO_ID_SMBIOS_BASEBOARD_VERSION,
>> diff --git a/lib/smbios.c b/lib/smbios.c
>> index 7c24ea129eb..1441fa4cde6 100644
>> --- a/lib/smbios.c
>> +++ b/lib/smbios.c
>> @@ -387,6 +387,7 @@ static int smbios_write_type1(ulong *current, int handle,
>>         struct smbios_type1 *t;
>>         int len = sizeof(struct smbios_type1);
>>         char *serial_str = env_get("serial#");
>> +       char uuid[sizeof(t->uuid)];
>>
>>         t = map_sysmem(*current, len);
>>         memset(t, 0, sizeof(struct smbios_type1));
>> @@ -409,6 +410,9 @@ static int smbios_write_type1(ulong *current, int handle,
>>                                                       SYSINFO_ID_SMBIOS_SYSTEM_SERIAL,
>>                                                       NULL);
>>         }
>> +       if (!sysinfo_get_str(ctx->dev, SYSINFO_ID_SMBIOS_SYSTEM_UUID,
>> +                            sizeof(uuid), uuid))
>> +               strncpy((char *)t->uuid, uuid, sizeof(t->uuid));
>>         t->wakeup_type = SMBIOS_WAKEUP_TYPE_UNKNOWN;
>>         t->sku_number = smbios_add_prop_si(ctx, "sku",
>>                                            SYSINFO_ID_SMBIOS_SYSTEM_SKU, NULL);
>> --
>> 2.43.0
>>
> 
> Regards,
> SImon


-- 
Siemens AG, Technology
Linux Expert Center


More information about the U-Boot mailing list