diff mbox series

cmd: tlv_eeprom: fix signature for populate_serial_number function

Message ID 20230516082734.13254-1-josua@solid-run.com
State New
Delegated to: Stefan Roese
Headers show
Series cmd: tlv_eeprom: fix signature for populate_serial_number function | expand

Commit Message

Josua Mayer May 16, 2023, 8:27 a.m. UTC
populate_serial_number is not used internally for the tlv_eeprom
command, but rather provided as a library function for external use..
Remove the devnum that had recently been added by mistake, returning the
function to its original signature.

Instead place a 0-initialised member variable inside the function to
same purpose, along with a node that it only supports reading from the
first EEPROM in the system.

Fixes: dfda0c0 ("cmd: tlv_eeprom: remove use of global variable current_dev")
Signed-off-by: Josua Mayer <josua@solid-run.com>
Cc: Stefan Roese <sr@denx.de>
Cc: Baruch Siach <baruch@tkos.co.il>
Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
---
 cmd/tlv_eeprom.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Heinrich Schuchardt May 16, 2023, 11:21 a.m. UTC | #1
On 5/16/23 10:27, Josua Mayer wrote:
> populate_serial_number is not used internally for the tlv_eeprom
> command, but rather provided as a library function for external use..
> Remove the devnum that had recently been added by mistake, returning the
> function to its original signature.
>
> Instead place a 0-initialised member variable inside the function to
> same purpose, along with a node that it only supports reading from the

%s/node/note/

> first EEPROM in the system.
>
> Fixes: dfda0c0 ("cmd: tlv_eeprom: remove use of global variable current_dev")
> Signed-off-by: Josua Mayer <josua@solid-run.com>
> Cc: Stefan Roese <sr@denx.de>
> Cc: Baruch Siach <baruch@tkos.co.il>
> Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
> ---
>   cmd/tlv_eeprom.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/cmd/tlv_eeprom.c b/cmd/tlv_eeprom.c
> index 79796394c5c..0ca4d714645 100644
> --- a/cmd/tlv_eeprom.c
> +++ b/cmd/tlv_eeprom.c
> @@ -1100,11 +1100,12 @@ int mac_read_from_eeprom(void)
>    *
>    *  This function must be called after relocation.
>    */
> -int populate_serial_number(int devnum)
> +int populate_serial_number(void)

If populate_serial_number() is to be used as a library function, it
should live in lib/ or possibly in drivers/misc/. The definition needs
to be provided in an include file. Otherwise the function should be deleted.

Where will this library function be used?

Shouldn't the EEPROM with the serial number be identified via the
device-tree?

Best regards

Heinrich

>   {
>   	char serialstr[257];
>   	int eeprom_index;
>   	struct tlvinfo_tlv *eeprom_tlv;
> +	int devnum = 0; // TODO: support multiple EEPROMs
>
>   	if (env_get("serial#"))
>   		return 0;
Josua Mayer May 16, 2023, 11:49 a.m. UTC | #2
Hi Heinrich,

Am 16.05.23 um 14:21 schrieb Heinrich Schuchardt:
> On 5/16/23 10:27, Josua Mayer wrote:
>> populate_serial_number is not used internally for the tlv_eeprom
>> command, but rather provided as a library function for external use..
>> Remove the devnum that had recently been added by mistake, returning the
>> function to its original signature.
>>
>> Instead place a 0-initialised member variable inside the function to
>> same purpose, along with a node that it only supports reading from the
>
> %s/node/note/
Good find!
>
>> first EEPROM in the system.
>>
>> Fixes: dfda0c0 ("cmd: tlv_eeprom: remove use of global variable 
>> current_dev")
>> Signed-off-by: Josua Mayer <josua@solid-run.com>
>> Cc: Stefan Roese <sr@denx.de>
>> Cc: Baruch Siach <baruch@tkos.co.il>
>> Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
>> ---
>>   cmd/tlv_eeprom.c | 3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/cmd/tlv_eeprom.c b/cmd/tlv_eeprom.c
>> index 79796394c5c..0ca4d714645 100644
>> --- a/cmd/tlv_eeprom.c
>> +++ b/cmd/tlv_eeprom.c
>> @@ -1100,11 +1100,12 @@ int mac_read_from_eeprom(void)
>>    *
>>    *  This function must be called after relocation.
>>    */
>> -int populate_serial_number(int devnum)
>> +int populate_serial_number(void)
>
> If populate_serial_number() is to be used as a library function, it
> should live in lib/ or possibly in drivers/misc/. The definition needs
> to be provided in an include file. Otherwise the function should be 
> deleted.
>
> Where will this library function be used?
I don't know for sure. GitHub search finds its use in board files on 
some old ONIE u-boot forks.

Main purpose of this patch right now is to undo my accidental change and 
restore the default behaviour:
The previous instance of devnum variable inside tlv_eeprom.c would have 
had value 0 by default.


>
> Shouldn't the EEPROM with the serial number be identified via the
> device-tree?
Something like that would be nice.
However we also want to use identical device-tree between Linux and U-Boot.
I am not sure if we have such indication.
>
> Best regards
>
> Heinrich
>
>>   {
>>       char serialstr[257];
>>       int eeprom_index;
>>       struct tlvinfo_tlv *eeprom_tlv;
>> +    int devnum = 0; // TODO: support multiple EEPROMs
>>
>>       if (env_get("serial#"))
>>           return 0;
>

- Josua Mayer
Heinrich Schuchardt May 16, 2023, 12:16 p.m. UTC | #3
On 5/16/23 13:49, Josua Mayer wrote:
> Hi Heinrich,
>
> Am 16.05.23 um 14:21 schrieb Heinrich Schuchardt:
>> On 5/16/23 10:27, Josua Mayer wrote:
>>> populate_serial_number is not used internally for the tlv_eeprom
>>> command, but rather provided as a library function for external use..
>>> Remove the devnum that had recently been added by mistake, returning the
>>> function to its original signature.
>>>
>>> Instead place a 0-initialised member variable inside the function to
>>> same purpose, along with a node that it only supports reading from the
>>
>> %s/node/note/
> Good find!
>>
>>> first EEPROM in the system.
>>>
>>> Fixes: dfda0c0 ("cmd: tlv_eeprom: remove use of global variable
>>> current_dev")
>>> Signed-off-by: Josua Mayer <josua@solid-run.com>
>>> Cc: Stefan Roese <sr@denx.de>
>>> Cc: Baruch Siach <baruch@tkos.co.il>
>>> Cc: Heinrich Schuchardt <xypron.glpk@gmx.de>
>>> ---
>>>   cmd/tlv_eeprom.c | 3 ++-
>>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/cmd/tlv_eeprom.c b/cmd/tlv_eeprom.c
>>> index 79796394c5c..0ca4d714645 100644
>>> --- a/cmd/tlv_eeprom.c
>>> +++ b/cmd/tlv_eeprom.c
>>> @@ -1100,11 +1100,12 @@ int mac_read_from_eeprom(void)
>>>    *
>>>    *  This function must be called after relocation.
>>>    */
>>> -int populate_serial_number(int devnum)
>>> +int populate_serial_number(void)
>>
>> If populate_serial_number() is to be used as a library function, it
>> should live in lib/ or possibly in drivers/misc/. The definition needs
>> to be provided in an include file. Otherwise the function should be
>> deleted.
>>
>> Where will this library function be used?
> I don't know for sure. GitHub search finds its use in board files on
> some old ONIE u-boot forks.
>
> Main purpose of this patch right now is to undo my accidental change and
> restore the default behaviour:
> The previous instance of devnum variable inside tlv_eeprom.c would have
> had value 0 by default.

The right places to call the function might be
board/solidrun/clearfog/clearfog.c and board/kobol/helios4/helios4.c as
these platforms enable CMD_TLV_EEPROM. But I have no such board.

The function has remained unused in upstream U-Boot since 2020. If we do
not plan to use it, it should be removed.

Stefan and Dennis, what are your thoughts?

Best regards

Heinrich

>
>
>>
>> Shouldn't the EEPROM with the serial number be identified via the
>> device-tree?
> Something like that would be nice.
> However we also want to use identical device-tree between Linux and U-Boot.
> I am not sure if we have such indication.
>>
>> Best regards
>>
>> Heinrich
>>
>>>   {
>>>       char serialstr[257];
>>>       int eeprom_index;
>>>       struct tlvinfo_tlv *eeprom_tlv;
>>> +    int devnum = 0; // TODO: support multiple EEPROMs
>>>
>>>       if (env_get("serial#"))
>>>           return 0;
>>
>
> - Josua Mayer
>
diff mbox series

Patch

diff --git a/cmd/tlv_eeprom.c b/cmd/tlv_eeprom.c
index 79796394c5c..0ca4d714645 100644
--- a/cmd/tlv_eeprom.c
+++ b/cmd/tlv_eeprom.c
@@ -1100,11 +1100,12 @@  int mac_read_from_eeprom(void)
  *
  *  This function must be called after relocation.
  */
-int populate_serial_number(int devnum)
+int populate_serial_number(void)
 {
 	char serialstr[257];
 	int eeprom_index;
 	struct tlvinfo_tlv *eeprom_tlv;
+	int devnum = 0; // TODO: support multiple EEPROMs
 
 	if (env_get("serial#"))
 		return 0;