mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-27 07:51:38 +00:00
cmd: eeprom: Hide eeprom layout versioning behind a Kconfig option
Add a new Kconfig option EEPROM_LAYOUT_VERSIONS, and hide eeprom layout versionsing code behind it. Only print the relevant help in 'eeprom' command usage if this option is enabled. Enable this new option for cm_fx6_defconfig and cm_t43_defconfig. These are the only boards using EEPROM layout versioning. Signed-off-by: Marek Behún <kabel@kernel.org>
This commit is contained in:
parent
642ec48c76
commit
2d49dafe4a
4 changed files with 25 additions and 6 deletions
|
@ -803,9 +803,16 @@ config CMD_EEPROM_LAYOUT
|
|||
types of eeprom fields. Can be used for defining
|
||||
custom layouts.
|
||||
|
||||
config EEPROM_LAYOUT_VERSIONS
|
||||
bool "Support specifying eeprom layout version"
|
||||
depends on CMD_EEPROM_LAYOUT
|
||||
help
|
||||
Support specifying eeprom layout version in the 'eeprom' command
|
||||
via the -l option.
|
||||
|
||||
config EEPROM_LAYOUT_HELP_STRING
|
||||
string "Tells user what layout names are supported"
|
||||
depends on CMD_EEPROM_LAYOUT
|
||||
depends on EEPROM_LAYOUT_VERSIONS
|
||||
default "<not defined>"
|
||||
help
|
||||
Help printed with the LAYOUT VERSIONS part of the 'eeprom'
|
||||
|
|
20
cmd/eeprom.c
20
cmd/eeprom.c
|
@ -252,10 +252,12 @@ static int parse_i2c_bus_addr(int *i2c_bus, ulong *i2c_addr, int argc,
|
|||
|
||||
#ifdef CONFIG_CMD_EEPROM_LAYOUT
|
||||
|
||||
#ifdef CONFIG_EEPROM_LAYOUT_VERSIONS
|
||||
__weak int eeprom_parse_layout_version(char *str)
|
||||
{
|
||||
return LAYOUT_VERSION_UNRECOGNIZED;
|
||||
}
|
||||
#endif
|
||||
|
||||
static unsigned char eeprom_buf[CONFIG_SYS_EEPROM_SIZE];
|
||||
|
||||
|
@ -359,7 +361,7 @@ int do_eeprom(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
|
|||
if (action == EEPROM_ACTION_INVALID)
|
||||
return CMD_RET_USAGE;
|
||||
|
||||
#ifdef CONFIG_CMD_EEPROM_LAYOUT
|
||||
#ifdef CONFIG_EEPROM_LAYOUT_VERSIONS
|
||||
if (action == EEPROM_PRINT || action == EEPROM_UPDATE) {
|
||||
if (!strcmp(argv[index], "-l")) {
|
||||
NEXT_PARAM(argc, index);
|
||||
|
@ -415,6 +417,12 @@ int do_eeprom(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
|
|||
field_name, field_value, addr, off, cnt);
|
||||
}
|
||||
|
||||
#ifdef CONFIG_EEPROM_LAYOUT_VERSIONS
|
||||
#define EEPROM_LAYOUT_SPEC "[-l <layout_version>] "
|
||||
#else
|
||||
#define EEPROM_LAYOUT_SPEC ""
|
||||
#endif
|
||||
|
||||
U_BOOT_CMD(
|
||||
eeprom, 8, 1, do_eeprom,
|
||||
"EEPROM sub-system",
|
||||
|
@ -423,16 +431,18 @@ U_BOOT_CMD(
|
|||
" - read/write `cnt' bytes from `devaddr` EEPROM at offset `off'"
|
||||
#ifdef CONFIG_CMD_EEPROM_LAYOUT
|
||||
"\n"
|
||||
"eeprom print [-l <layout_version>] [[bus] devaddr]\n"
|
||||
"eeprom print " EEPROM_LAYOUT_SPEC "[[bus] devaddr]\n"
|
||||
" - Print layout fields and their data in human readable format\n"
|
||||
"eeprom update [-l <layout_version>] [[bus] devaddr] field_name field_value\n"
|
||||
"eeprom update " EEPROM_LAYOUT_SPEC "[[bus] devaddr] field_name field_value\n"
|
||||
" - Update a specific eeprom field with new data.\n"
|
||||
" The new data must be written in the same human readable format as shown by the print command.\n"
|
||||
"\n"
|
||||
" The new data must be written in the same human readable format as shown by the print command."
|
||||
#ifdef CONFIG_EEPROM_LAYOUT_VERSIONS
|
||||
"\n\n"
|
||||
"LAYOUT VERSIONS\n"
|
||||
"The -l option can be used to force the command to interpret the EEPROM data using the chosen layout.\n"
|
||||
"If the -l option is omitted, the command will auto detect the layout based on the data in the EEPROM.\n"
|
||||
"The values which can be provided with the -l option are:\n"
|
||||
CONFIG_EEPROM_LAYOUT_HELP_STRING"\n"
|
||||
#endif
|
||||
#endif
|
||||
);
|
||||
|
|
|
@ -46,6 +46,7 @@ CONFIG_SYS_MAXARGS=32
|
|||
CONFIG_CMD_GREPENV=y
|
||||
CONFIG_CMD_EEPROM=y
|
||||
CONFIG_CMD_EEPROM_LAYOUT=y
|
||||
CONFIG_EEPROM_LAYOUT_VERSIONS=y
|
||||
CONFIG_EEPROM_LAYOUT_HELP_STRING="v2, v3"
|
||||
CONFIG_SYS_I2C_EEPROM_BUS=2
|
||||
CONFIG_SYS_EEPROM_PAGE_WRITE_BITS=4
|
||||
|
|
|
@ -50,6 +50,7 @@ CONFIG_SYS_PROMPT="CM-T43 # "
|
|||
CONFIG_CMD_ASKENV=y
|
||||
CONFIG_CMD_EEPROM=y
|
||||
CONFIG_CMD_EEPROM_LAYOUT=y
|
||||
CONFIG_EEPROM_LAYOUT_VERSIONS=y
|
||||
CONFIG_EEPROM_LAYOUT_HELP_STRING="v2, v3"
|
||||
CONFIG_SYS_EEPROM_PAGE_WRITE_BITS=4
|
||||
CONFIG_SYS_EEPROM_PAGE_WRITE_DELAY_MS=5
|
||||
|
|
Loading…
Add table
Reference in a new issue