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 <jo...@solid-run.com>
Cc: Stefan Roese <s...@denx.de>
Cc: Baruch Siach <bar...@tkos.co.il>
Cc: Heinrich Schuchardt <xypron.g...@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


Reply via email to