mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-30 18:47:06 +00:00
537b423d9f
Remove patches adding support for MT7621 which have been merged upsteam. Patches for MT7981 and MT7986 have been merged too, but not in time to be included in the 2022.10 release, so we have to keep carrying them until the 2023.01 release. Signed-off-by: Daniel Golle <daniel@makrotopia.org>
117 lines
2.9 KiB
Diff
117 lines
2.9 KiB
Diff
--- a/cmd/Kconfig
|
|
+++ b/cmd/Kconfig
|
|
@@ -579,6 +579,12 @@ config CMD_ENV_EXISTS
|
|
Check if a variable is defined in the environment for use in
|
|
shell scripting.
|
|
|
|
+config CMD_ENV_READMEM
|
|
+ bool "env readmem"
|
|
+ default y
|
|
+ help
|
|
+ Store memory content into environment variable.
|
|
+
|
|
config CMD_ENV_CALLBACK
|
|
bool "env callbacks - print callbacks and their associated variables"
|
|
help
|
|
--- a/cmd/nvedit.c
|
|
+++ b/cmd/nvedit.c
|
|
@@ -409,6 +409,60 @@ int do_env_ask(struct cmd_tbl *cmdtp, in
|
|
}
|
|
#endif
|
|
|
|
+#if defined(CONFIG_CMD_ENV_READMEM)
|
|
+int do_env_readmem(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
|
|
+{
|
|
+ char varstr[CONFIG_SYS_CBSIZE];
|
|
+ const void *buf;
|
|
+ char *local_args[4];
|
|
+ ulong addr, bytes = 6;
|
|
+ int hexdump = 0;
|
|
+
|
|
+ /*
|
|
+ * Check the syntax:
|
|
+ *
|
|
+ * readmem [-b] name address [size]
|
|
+ */
|
|
+ if (argc < 3)
|
|
+ return CMD_RET_USAGE;
|
|
+
|
|
+ local_args[0] = argv[0];
|
|
+
|
|
+ if (!strncmp(argv[1], "-b", 3))
|
|
+ hexdump = 1;
|
|
+
|
|
+ local_args[1] = argv[hexdump + 1];
|
|
+ local_args[2] = varstr;
|
|
+ local_args[3] = NULL;
|
|
+
|
|
+ addr = simple_strtoul(argv[hexdump + 2], NULL, 16);
|
|
+
|
|
+ if (!hexdump)
|
|
+ bytes = simple_strtoul(argv[hexdump + 3], NULL, 16);
|
|
+
|
|
+ if (bytes < 1)
|
|
+ return 1;
|
|
+
|
|
+ if ((hexdump * 3) * bytes >= CONFIG_SYS_CBSIZE)
|
|
+ return 1;
|
|
+
|
|
+ buf = map_sysmem(addr, bytes);
|
|
+ if (!buf)
|
|
+ return 1;
|
|
+
|
|
+ if (hexdump) {
|
|
+ sprintf(varstr, "%pM", buf);
|
|
+ } else {
|
|
+ memcpy(varstr, buf, bytes);
|
|
+ varstr[bytes] = '\0';
|
|
+ }
|
|
+ unmap_sysmem(buf);
|
|
+
|
|
+ /* Continue calling setenv code */
|
|
+ return _do_env_set(flag, 3, local_args, H_INTERACTIVE);
|
|
+}
|
|
+#endif
|
|
+
|
|
#if defined(CONFIG_CMD_ENV_CALLBACK)
|
|
static int print_static_binding(const char *var_name, const char *callback_name,
|
|
void *priv)
|
|
@@ -1232,6 +1286,9 @@ static struct cmd_tbl cmd_env_sub[] = {
|
|
U_BOOT_CMD_MKENT(load, 1, 0, do_env_load, "", ""),
|
|
#endif
|
|
U_BOOT_CMD_MKENT(print, CONFIG_SYS_MAXARGS, 1, do_env_print, "", ""),
|
|
+#if defined(CONFIG_CMD_ENV_READMEM)
|
|
+ U_BOOT_CMD_MKENT(readmem, CONFIG_SYS_MAXARGS, 3, do_env_readmem, "", ""),
|
|
+#endif
|
|
#if defined(CONFIG_CMD_RUN)
|
|
U_BOOT_CMD_MKENT(run, CONFIG_SYS_MAXARGS, 1, do_run, "", ""),
|
|
#endif
|
|
@@ -1323,6 +1380,9 @@ static char env_help_text[] =
|
|
#if defined(CONFIG_CMD_NVEDIT_EFI)
|
|
"env print -e [-guid guid] [-n] [name ...] - print UEFI environment\n"
|
|
#endif
|
|
+#if defined(CONFIG_CMD_ENV_READMEM)
|
|
+ "env readmem [-b] name address size - read variable from memory\n"
|
|
+#endif
|
|
#if defined(CONFIG_CMD_RUN)
|
|
"env run var [...] - run commands in an environment variable\n"
|
|
#endif
|
|
@@ -1432,6 +1492,17 @@ U_BOOT_CMD(
|
|
);
|
|
#endif
|
|
|
|
+#if defined(CONFIG_CMD_ENV_READMEM)
|
|
+U_BOOT_CMD_COMPLETE(
|
|
+ readmem, CONFIG_SYS_MAXARGS, 3, do_env_readmem,
|
|
+ "get environment variable from memory address",
|
|
+ "name [-b] address size\n"
|
|
+ " - store memory address to env variable\n"
|
|
+ " \"-b\": read binary ethaddr",
|
|
+ var_complete
|
|
+);
|
|
+#endif
|
|
+
|
|
#if defined(CONFIG_CMD_RUN)
|
|
U_BOOT_CMD_COMPLETE(
|
|
run, CONFIG_SYS_MAXARGS, 1, do_run,
|