From: "Marek Behún" <kabel@kernel.org>
To: Tom Rini <trini@konsulko.com>,
u-boot@lists.denx.de, Stefan Roese <sr@denx.de>
Cc: "Simon Glass" <sjg@chromium.org>,
"Ilias Apalodimas" <ilias.apalodimas@linaro.org>,
"Nikita Kiryanov" <nikita@compulab.co.il>,
"Marek Behún" <kabel@kernel.org>
Subject: [PATCH 06/11] cmd: eeprom: Hide eeprom layout versioning behind a Kconfig option
Date: Tue, 21 May 2024 09:13:30 +0200 [thread overview]
Message-ID: <20240521071335.4193-7-kabel@kernel.org> (raw)
In-Reply-To: <20240521071335.4193-1-kabel@kernel.org>
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 | 9 ++++++++-
cmd/eeprom.c | 20 +++++++++++++++-----
configs/cm_fx6_defconfig | 1 +
configs/cm_t43_defconfig | 1 +
4 files changed, 25 insertions(+), 6 deletions(-)
diff --git a/cmd/Kconfig b/cmd/Kconfig
index b026439c77..8c370993f6 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -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'
diff --git a/cmd/eeprom.c b/cmd/eeprom.c
index 0d604832e4..d610dc9931 100644
--- a/cmd/eeprom.c
+++ b/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
);
diff --git a/configs/cm_fx6_defconfig b/configs/cm_fx6_defconfig
index a4d5f91b35..386616cc42 100644
--- a/configs/cm_fx6_defconfig
+++ b/configs/cm_fx6_defconfig
@@ -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
diff --git a/configs/cm_t43_defconfig b/configs/cm_t43_defconfig
index 93e667292c..32f126a517 100644
--- a/configs/cm_t43_defconfig
+++ b/configs/cm_t43_defconfig
@@ -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
--
2.44.1
next prev parent reply other threads:[~2024-05-21 7:14 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-21 7:13 [PATCH 00/11] 'eeprom' command improvements Marek Behún
2024-05-21 7:13 ` [PATCH 01/11] common: eeprom_layout: Assign default layout methods and parameters before specific ones Marek Behún
2024-05-21 7:13 ` [PATCH 02/11] common: eeprom_layout: Split field finding code from the field update function Marek Behún
2024-05-21 7:13 ` [PATCH 03/11] common: eeprom_field: Fix updating binary field Marek Behún
2024-05-21 7:13 ` [PATCH 04/11] common: eeprom_field: Drop unnecessary comparison Marek Behún
2024-05-21 7:13 ` [PATCH 05/11] cmd: eeprom: Fix usage help for the eeprom command Marek Behún
2024-05-21 7:13 ` Marek Behún [this message]
2024-05-21 7:13 ` [PATCH 07/11] cmd: eeprom: Deduplicate parse_i2c_bus_addr() calls Marek Behún
2024-05-21 7:13 ` [PATCH 08/11] cmd: eeprom: Refactor eeprom device specifier parsing Marek Behún
2024-05-21 7:13 ` [PATCH 09/11] cmd: eeprom: Refactor command execution into function by action Marek Behún
2024-05-21 7:13 ` [PATCH 10/11] cmd: eeprom: Don't read/write whole EEPROM if not necessary Marek Behún
2024-05-21 7:13 ` [PATCH 11/11] cmd: eeprom: Extend to EEPROMs probed via driver model Marek Behún
2024-06-07 18:57 ` [PATCH 00/11] 'eeprom' command improvements Tom Rini
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240521071335.4193-7-kabel@kernel.org \
--to=kabel@kernel.org \
--cc=ilias.apalodimas@linaro.org \
--cc=nikita@compulab.co.il \
--cc=sjg@chromium.org \
--cc=sr@denx.de \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox