[U-Boot] [PATCH 00/12] Introduce layout aware eeprom commands
Nikita Kiryanov
nikita at compulab.co.il
Sat Apr 16 16:55:01 CEST 2016
This series introduces eeprom layout aware capabilities to the existing eeprom
command, and then enables this feature on Compulab boards. It is an import of
the Compulab eeprom-utility (https://github.com/compulab/eeprom-util), and it
introduces 2 new options to the eeprom command:
eeprom print [-l <layout_version>] bus_num device_addr
eeprom update [-l <layout_version>] bus_num device_addr <field_name> <field_value>
The series starts with importing the code in a way that is very separated from
the existing eeprom command code (it uses its own parsing function and its own
command execution code, but does reuse the eeprom_read and eeprom_write
functions), then activates the feature for all Compulab boards, and finally
merges the layout aware code with the layout unaware code so that there is one
parsing function, and one command execution function.
Features:
- print EEPROM layout in a human readable way (field names and formatted data)
- update EEPROM data by specifying the field name and the new data in a human
readable format (same format as shown by the print command)
- Layout can be either auto detected, or manually selected with the -l option
- Completely optional and backwards compatible with current eeprom command
Tested on cm-t43 and cm-fx6. Final result compile tested on arm.
Example of use:
CM-T43 # eeprom print 0 0x50
Major Revision 1.04
Minor Revision 0.00
1st MAC Address 01:02:03:04:05:06
2nd MAC Address ff:ff:ff:ff:ff:ff
Production Date 01/Jan/2016
Serial Number 0000000000000005a0387754
3rd MAC Address (WIFI) ff:ff:ff:ff:ff:ff
4th MAC Address (Bluetooth) ff:ff:ff:ff:ff:ff
Layout Version 02
Reserved fields (83 bytes)
Product Name CM-T43
Product Options #1 C1000M-D1G-N4G-
Product Options #2 E2-A-WB
Product Options #3
Reserved fields (64 bytes)
CM-T43 # eeprom update 0 0x50 "Major Revision" 2.30
CM-T43 # eeprom update 0 0x50 "Product Name" CM-T54
CM-T43 # eeprom update 0 0x50 "Productuction Date" 10/Feb/2017
No such field 'Productuction Date'
CM-T43 # eeprom update 0 0x50 "Production Date" 10/Feb/2017
CM-T43 # eeprom print 0 0x50
Major Revision 2.30
Minor Revision 0.00
1st MAC Address 01:02:03:04:05:06
2nd MAC Address ff:ff:ff:ff:ff:ff
Production Date 10/Feb/2017
Serial Number 0000000000000005a0387754
3rd MAC Address (WIFI) ff:ff:ff:ff:ff:ff
4th MAC Address (Bluetooth) ff:ff:ff:ff:ff:ff
Layout Version 02
Reserved fields (83 bytes)
Product Name CM-T54
Product Options #1 C1000M-D1G-N4G-
Product Options #2 E2-A-WB
Product Options #3
Reserved fields (64 bytes)
CM-T43 # eeprom print -l legacy 0 0x50
MAC address e6:00:ff:ff:01:02
Board Revision 0304
Serial Number 0506ffffffffffff
Board Configuration
�Tw8�
Reserved fields (176 bytes)
CM-T43 #
Cc: Heiko Schocher <hs at denx.de>
Cc: Marek Vasut <marex at denx.de>
Cc: Simon Glass <sjg at chromium.org>
Cc: Igor Grinberg <grinberg at compulab.co.il>
Cc: Tom Rini <trini at konsulko.com>
Nikita Kiryanov (12):
cmd: eeprom: add bus switching support for all i2c drivers
cmd: eeprom: add support for layout aware commands
compulab: add support for layout aware eeprom commands
arm: cm-fx6: add support for eeprom layout comands
arm: cm-t335: add support for eeprom layout comands
arm: cm-t54: add support for eeprom layout comands
arm: cm-t3517: add support for eeprom layout comands
arm: cm-t35: add support for eeprom layout comands
arm: cm-t43: add support for eeprom layout comands
eeprom: refactor i2c bus and devaddr parsing
eeprom: use eeprom_execute_command for all eeprom functions
eeprom: merge cmdline parsing of eeprom commands
README | 1 +
board/compulab/common/eeprom.c | 344 +++++++++++++++++++++++++++++++++++++++++
cmd/eeprom.c | 251 +++++++++++++++++++++++++-----
common/Makefile | 3 +
common/eeprom/eeprom_field.c | 250 ++++++++++++++++++++++++++++++
common/eeprom/eeprom_layout.c | 125 +++++++++++++++
include/configs/cm_fx6.h | 11 ++
include/configs/cm_t335.h | 11 ++
include/configs/cm_t35.h | 11 ++
include/configs/cm_t3517.h | 11 ++
include/configs/cm_t43.h | 11 ++
include/configs/cm_t54.h | 11 ++
include/eeprom_field.h | 39 +++++
include/eeprom_layout.h | 33 ++++
14 files changed, 1077 insertions(+), 35 deletions(-)
create mode 100644 common/eeprom/eeprom_field.c
create mode 100644 common/eeprom/eeprom_layout.c
create mode 100644 include/eeprom_field.h
create mode 100644 include/eeprom_layout.h
--
1.9.1
More information about the U-Boot
mailing list