forked from dlink-dir_819/openwrt
The following upstreamed / superseded patches were dropped:
060-01-clk-mediatek-mt7629-fix-parent-clock-of-some-top-clo.patch
060-02-arm-dts-mt7629-fix-sgmii-clock-selection-for-etherne.patch
060-03-net-mediatek-use-correct-register-field-for-SGMII-sp.patch
060-04-net-mediatek-correct-register-name-of-ethsys-syscfg1.patch
060-05-net-mediatek-fix-sgmii-selection-for-mt7622.patch
060-06-net-mediatek-fix-gmac2-usability-for-mt7629.patch
060-07-net-mediatek-add-support-for-10GBASE-R.patch
060-08-net-mediatek-make-sgmii-usxgmii-optional.patch
060-09-net-mediatek-don-t-enable-GDMA-cpu-bridge-unconditio.patch
060-10-net-mediatek-fix-usability-with-wget-command.patch
061-01-net-mediatek-split-ethernet-switch-code-from-mtk_eth.patch
061-02-net-mediatek-add-support-for-MediaTek-MT7987-SoC.patch
061-03-net-mediatek-add-support-for-Airoha-AN8855-ethernet-.patch
070-01-board-mediatek-mt7622-remove-board_late_init.patch
070-02-clk-mediatek-fix-uninitialized-fields-issue-in-INFRA.patch
070-03-configs-mt7629-move-image-load-address-to-0x42000000.patch
070-04-configs-mt7988-move-image-load-address-to-0x44000000.patch
070-05-spi-mtk_spim-add-support-to-use-DT-live-tree.patch
070-06-spi-mtk_spim-check-slave-device-mode-in-spi-mem-s-su.patch
070-07-arm-dts-mediatek-add-quad-mode-capabilities-for-SPI-.patch
070-08-pwm-mediatek-add-pwm3-support-for-mt7981.patch
070-09-pci-mediatek-add-support-for-multiple-ports-in-media.patch
070-10-arm-dts-mediatek-add-pcie-support-for-mt7988.patch
070-11-arm-dts-medaitek-fix-internal-switch-link-speed-of-m.patch
070-12-arm-dts-mediatek-add-support-for-all-three-GMACs-for.patch
070-13-arm-dts-medaitek-add-flash-interface-driving-setting.patch
070-14-arm-dts-mediatek-update-mt7981-mmc-node.patch
070-15-MAINTAINERS-update-file-list-for-MediaTek-ARM-platfo.patch
071-01-pinctrl-mediatek-update-mt7981-pinctrl-driver-based-.patch
100-18-board-mt7629-add-support-for-booting-from-SPI-NAND.patch
290-mt7981-add-USB-nodes.patch
Refreshed all the patches needing it.
Run-tested: GatoNetworks GDSP, Arcadyan Mozart (ynezz),
Zbt WG3526 (dangowrt)
Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz> [patch refresh, Mozart testing]
Signed-off-by: Daniel Golle <daniel@makrotopia.org> [rebased, tested on MT7621]
117 lines
2.9 KiB
Diff
117 lines
2.9 KiB
Diff
--- a/cmd/Kconfig
|
|
+++ b/cmd/Kconfig
|
|
@@ -707,6 +707,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 @@ static int do_env_ask(struct cmd_tbl *cm
|
|
}
|
|
#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)
|
|
@@ -1092,6 +1146,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
|
|
@@ -1176,6 +1233,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
|
|
@@ -1284,6 +1344,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,
|