Initial commit
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
Some checks failed
Build Kernel / Build all affected Kernels (push) Has been cancelled
Build all core packages / Build all core packages for selected target (push) Has been cancelled
Build and Push prebuilt tools container / Build and Push all prebuilt containers (push) Has been cancelled
Build Toolchains / Build Toolchains for each target (push) Has been cancelled
Build host tools / Build host tools for linux and macos based systems (push) Has been cancelled
Coverity scan build / Coverity x86/64 build (push) Has been cancelled
This commit is contained in:
116
package/boot/uboot-mediatek/patches/220-cmd-env-readmem.patch
Normal file
116
package/boot/uboot-mediatek/patches/220-cmd-env-readmem.patch
Normal file
@@ -0,0 +1,116 @@
|
||||
--- a/cmd/Kconfig
|
||||
+++ b/cmd/Kconfig
|
||||
@@ -676,6 +676,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
|
||||
@@ -273,6 +273,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 env_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)
|
||||
@@ -1089,6 +1143,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
|
||||
@@ -1172,6 +1229,9 @@ U_BOOT_LONGHELP(env,
|
||||
#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
|
||||
@@ -1280,6 +1340,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,
|
||||
Reference in New Issue
Block a user