
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@solid-run.com