]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
cmd: eeprom: Hide eeprom layout versioning behind a Kconfig option
authorMarek Behún <kabel@kernel.org>
Tue, 21 May 2024 07:13:30 +0000 (09:13 +0200)
committerTom Rini <trini@konsulko.com>
Fri, 7 Jun 2024 16:47:59 +0000 (10:47 -0600)
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>
cmd/Kconfig
cmd/eeprom.c
configs/cm_fx6_defconfig
configs/cm_t43_defconfig

index b026439c773118372e8164d024f73d98957105ec..8c370993f674e48147de282f90b7029596a7e4fe 100644 (file)
@@ -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'
index 0d604832e445cdac998442eb49093b6484a8fb06..d610dc99317c0e0176cee3a77e573b9aac10c833 100644 (file)
@@ -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
 );
index a4d5f91b35f557bb3f6aaa9037b82f0e511296d8..386616cc420f78cf1faf00912ebfdb0c3b6e056c 100644 (file)
@@ -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
index 93e667292c85b17fb344b362713dc4f86be56a80..32f126a51744653d3a5c9e8eba32f3f4f257afb6 100644 (file)
@@ -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