[PATCH 00/12] split tlv_eeprom command into a separate library

Josua Mayer josua at solid-run.com
Mon May 2 16:18:26 CEST 2022


The tlv_eeprom command provides much more than just a cli command:
- de- and encoding tlv format
- for reading and writing eeprom
- setting the eth?addr environment variable
- setting the serial# environment variable

One device (Clearfog) is already using the decoding functionality to
choose the correct memory size based on eeprom data.

This patchset massages the implementation in many places removing
stateful behaviour and global variables as much as possible and changing
some functions to be usable as a library.
Then finally everything but the handling of the cli command is split off
into a separate tlv library that can be used independently from the command.

SolidRun is starting to flash more devices with tlv data at the factory,
and we plan to use this information for device identification purposes
in future board files. This refactoring will make those implementations
easier and reduce the amount of duplicate code to carry around.

Josua Mayer (12):
  cmd: tlv_eeprom: remove use of global variable current_dev
  cmd: tlv_eeprom: remove use of global variable has_been_read
  cmd: tlv_eeprom: do_tlv_eeprom: stop using non-api read_eeprom
    function
  cmd: tlv_eeprom: convert functions used by command to api functions
  cmd: tlv_eeprom: remove empty function implementations from header
  cmd: tlv_eeprom: move missing declarations and defines to header
  cmd: tlv_eeprom: hide access to static tlv_devices array behind
    accessor
  cmd: tlv_eeprom: clean up two defines for one thing
  cmd: tlv_eeprom: add my copyright
  cmd: tlv_eeprom: split off tlv library from command
  arm: mvebu: clearfog: enable tlv library for spl in favour of eeprom
    cmd
  lib: tlv_eeprom: add function for reading one entry into a C string

 cmd/Kconfig                |   2 +
 cmd/tlv_eeprom.c           | 817 ++-----------------------------------
 configs/clearfog_defconfig |   3 +-
 include/tlv_eeprom.h       | 122 +++++-
 lib/Kconfig                |   2 +
 lib/Makefile               |   2 +
 lib/tlv/Kconfig            |  15 +
 lib/tlv/Makefile           |   5 +
 lib/tlv/tlv_eeprom.c       | 775 +++++++++++++++++++++++++++++++++++
 9 files changed, 944 insertions(+), 799 deletions(-)
 create mode 100644 lib/tlv/Kconfig
 create mode 100644 lib/tlv/Makefile
 create mode 100644 lib/tlv/tlv_eeprom.c

Cc: Jon Nettleton <jon at solid-run.com>
-- 
2.34.1



More information about the U-Boot mailing list