[PATCH 1/1] smbios: amend the description of smbios_string()

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Mon Oct 25 09:26:10 CEST 2021


On 10/24/21 21:54, Simon Glass wrote:
> Hi Heinrich,
> 
> On Thu, 21 Oct 2021 at 03:16, Heinrich Schuchardt
> <heinrich.schuchardt at canonical.com> wrote:
>>
>> Add a warning that this function only works for strings preceding the first
>> non-string field.
> 
> What is a non-string field? If you mean an int field, for example,
> then that would not have an entry in the string table, so I'm a bit
> unsure about what exactly the problem is?

https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_3.4.0.pdf
Table 6 – BIOS Information (Type 0) structure

"Vendor", "BIOS Version" are strings.
The are followed by "BIOS Starting Address Segment" is a word which may 
contain a zero byte or not.

You can not use smbios_string() to find the string "BIOS Release Date".

Best regards

Heinrich

> 
> Regards,
> Simon
> 
> 
>>
>> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt at canonical.com>
>> ---
>>   include/smbios.h | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/include/smbios.h b/include/smbios.h
>> index aa6b6f3849..b7a1b8e412 100644
>> --- a/include/smbios.h
>> +++ b/include/smbios.h
>> @@ -258,6 +258,10 @@ const struct smbios_header *smbios_header(const struct smbios_entry *entry, int
>>   /**
>>    * smbios_string() - Return string from SMBIOS
>>    *
>> + * This function counts the zero bytes at the end of strings to identify the
>> + * string to retrieve. This only works up to the first non-string field in the
>> + * table.
>> + *
>>    * @header:    pointer to struct smbios_header
>>    * @index:     string index
>>    * @return:    NULL or a valid const char pointer
>> --
>> 2.32.0
>>



More information about the U-Boot mailing list