[Armadeus-commitlog] armadeus/u-boot branch, armadeus-2020.07, updated. fc8061cdeb41ab9c4bdd2b5668
Brought to you by:
sszy
|
From: sszy <ss...@us...> - 2026-06-08 14:53:33
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus/u-boot".
The branch, armadeus-2020.07 has been updated
via fc8061cdeb41ab9c4bdd2b566845a8999b3737d2 (commit)
via 46ef754c72524bf0b202849e1b8f2d22b45f9028 (commit)
via 28a5420bf8942234e23b6df5fd73ba98edeff9f8 (commit)
via 4eff36fb07bf36684fa74900cbe2535a276c2dc4 (commit)
via e59d88b95477fd8ec84dbde253a22ec63aba8117 (commit)
via 0c00376ca2a30894be38c71739ffb6a010765718 (commit)
via 4e8bbd57a4f548a9d004d7588fcdc9a2f23280d0 (commit)
via b17b1d35992dda641bae4133e47febafe0aca821 (commit)
via 602d7d0b927fe039d3b7646e513e3412cf431905 (commit)
from 10604757e21c1bc814a8bda2743dee85779cafd9 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit fc8061cdeb41ab9c4bdd2b566845a8999b3737d2
Author: Sébastien Szymanski <seb...@ar...>
Date: Mon Jun 8 16:52:27 2026 +0200
opos8mmdev_defconfig: enable CONFIG_CMD_ERASEENV
Signed-off-by: Sébastien Szymanski <seb...@ar...>
commit 46ef754c72524bf0b202849e1b8f2d22b45f9028
Author: Sébastien Szymanski <seb...@ar...>
Date: Wed Jun 3 19:00:20 2026 +0200
imx8m: opos8mm: don't load environment variables when booting from USB
Signed-off-by: Sébastien Szymanski <seb...@ar...>
commit 28a5420bf8942234e23b6df5fd73ba98edeff9f8
Author: Marek Vasut <mar...@ma...>
Date: Wed Dec 17 20:57:38 2025 +0100
cmd: nvedit: Validate argument count before use
Avoid NULL pointer dereference in case 'env select' is invoked
without parameters, check the arg count and make sure it is at
least 2, otherwise print usage.
The crash is easy to trigger e.g. in sandbox:
$ ./u-boot -Tc "env select"
Fixes: a97d22ebba23 ("cmd: env: add env select command")
Signed-off-by: Marek Vasut <mar...@ma...>
Tested-by: Vincent Stehlé <vin...@ar...>
Reviewed-by: Ilias Apalodimas <ili...@li...>
(cherry picked from commit 2333d446b7b133ddfb9dea2d53996d560796ecd9)
commit 4eff36fb07bf36684fa74900cbe2535a276c2dc4
Author: Patrick Delaunay <pat...@st...>
Date: Tue Jul 28 11:51:21 2020 +0200
cmd: env: add env select command
Add the new command 'env select' to force the persistent storage
of environment, saved in gd->env_load_prio.
Signed-off-by: Patrick Delaunay <pat...@st...>
(cherry picked from commit a97d22ebba2305f2d0aee714544c72c6a53026d9)
commit e59d88b95477fd8ec84dbde253a22ec63aba8117
Author: Patrick Delaunay <pat...@st...>
Date: Tue Jul 28 11:51:20 2020 +0200
cmd: env: add env load command
Add the new command env load to load the environment from
the current location gd->env_load_prio.
Signed-off-by: Patrick Delaunay <pat...@st...>
(cherry picked from commit 0115dd3a6a144e9c974e00a9f3f41c5bb053236e)
commit 0c00376ca2a30894be38c71739ffb6a010765718
Author: Sébastien Szymanski <seb...@ar...>
Date: Wed Jun 3 19:08:42 2026 +0200
arm: imx: imx8mm: use SYSTEM_PLL1_DIV10 as source for UART root clock
Signed-off-by: Sébastien Szymanski <seb...@ar...>
commit 4e8bbd57a4f548a9d004d7588fcdc9a2f23280d0
Author: Marek Vasut <ma...@de...>
Date: Wed Apr 13 00:41:52 2022 +0200
ARM: imx: Enable instruction cache early on on i.MX8M
Enable instruction cache early on to speed up the boot process on i.MX8M.
Signed-off-by: Marek Vasut <ma...@de...>
Cc: Fabio Estevam <fes...@gm...>
Cc: Peng Fan <pen...@nx...>
Cc: Stefano Babic <sb...@de...>
(cherry picked from commit 2fa763baa1c594c74473063292efd37e6e541ea4)
commit b17b1d35992dda641bae4133e47febafe0aca821
Author: Marek Vasut <ma...@de...>
Date: Tue Jan 25 03:49:22 2022 +0100
arm64: dts: imx8mm: Add missing MX8MM_IOMUXC_NAND_READY_B_SD3_RESET_B
The i.MX8M Mini Application Processor Reference Manual, Rev. 3, 11/2020
documents AF MX8MM_IOMUXC_NAND_READY_B_SD3_RESET_B , add it into the
pinmux tables.
Signed-off-by: Marek Vasut <ma...@de...>
Cc: Fabio Estevam <fes...@gm...>
Cc: Stefano Babic <sb...@de...>
Reviewed-by: Fabio Estevam <fes...@gm...>
(cherry picked from commit dd4b3ca52c9b7ee9895e58d886fc2a23cb9c9ebc)
commit 602d7d0b927fe039d3b7646e513e3412cf431905
Author: Oliver Stäbler <oli...@by...>
Date: Tue Jan 25 03:48:54 2022 +0100
arm64: dts: imx8mm/q: Fix pad control of SD1_DATA0
Fix address of the pad control register
(IOMUXC_SW_PAD_CTL_PAD_SD1_DATA0) for SD1_DATA0_GPIO2_IO2. This seems
to be a typo but it leads to an exception when pinctrl is applied due to
wrong memory address access.
Signed-off-by: Oliver Stäbler <oli...@by...>
Reviewed-by: Fabio Estevam <fes...@gm...>
Acked-by: Rob Herring <ro...@ke...>
Fixes: c1c9d41319c3 ("dt-bindings: imx: Add pinctrl binding doc for imx8mm")
Fixes: 748f908cc882 ("arm64: add basic DTS for i.MX8MQ")
Signed-off-by: Shawn Guo <sha...@ke...>
Signed-off-by: Marek Vasut <ma...@de...> # Picked from Linux 5cfad4f45806f ("arm64: dts: imx8mm/q: Fix pad control of SD1_DATA0")
(cherry picked from commit 9aac5c3c7e79821bd977f5da9f8ee3cea74e479c)
-----------------------------------------------------------------------
Summary of changes:
arch/arm/dts/imx8mm-pinfunc.h | 3 +-
arch/arm/mach-imx/imx8m/clock_imx8mm.c | 12 +++---
arch/arm/mach-imx/imx8m/opos8mm.c | 28 ++++++++++++++
arch/arm/mach-imx/imx8m/soc.c | 5 +++
cmd/Kconfig | 11 ++++++
cmd/nvedit.c | 32 ++++++++++++++++
configs/opos8mmdev_defconfig | 5 +++
env/env.c | 70 ++++++++++++++++++++++++++++++++++
include/configs/opos8mmdev.h | 2 +-
include/env.h | 15 +++++++-
10 files changed, 174 insertions(+), 9 deletions(-)
diff --git a/arch/arm/dts/imx8mm-pinfunc.h b/arch/arm/dts/imx8mm-pinfunc.h
index 5ccc4cc919..a7411c800b 100644
--- a/arch/arm/dts/imx8mm-pinfunc.h
+++ b/arch/arm/dts/imx8mm-pinfunc.h
@@ -124,7 +124,7 @@
#define MX8MM_IOMUXC_SD1_CMD_USDHC1_CMD 0x0A4 0x30C 0x000 0x0 0x0
#define MX8MM_IOMUXC_SD1_CMD_GPIO2_IO1 0x0A4 0x30C 0x000 0x5 0x0
#define MX8MM_IOMUXC_SD1_DATA0_USDHC1_DATA0 0x0A8 0x310 0x000 0x0 0x0
-#define MX8MM_IOMUXC_SD1_DATA0_GPIO2_IO2 0x0A8 0x31 0x000 0x5 0x0
+#define MX8MM_IOMUXC_SD1_DATA0_GPIO2_IO2 0x0A8 0x310 0x000 0x5 0x0
#define MX8MM_IOMUXC_SD1_DATA1_USDHC1_DATA1 0x0AC 0x314 0x000 0x0 0x0
#define MX8MM_IOMUXC_SD1_DATA1_GPIO2_IO3 0x0AC 0x314 0x000 0x5 0x0
#define MX8MM_IOMUXC_SD1_DATA2_USDHC1_DATA2 0x0B0 0x318 0x000 0x0 0x0
@@ -248,6 +248,7 @@
#define MX8MM_IOMUXC_NAND_RE_B_GPIO3_IO15 0x130 0x398 0x000 0x5 0x0
#define MX8MM_IOMUXC_NAND_RE_B_SIM_M_HADDR11 0x130 0x398 0x000 0x7 0x0
#define MX8MM_IOMUXC_NAND_READY_B_RAWNAND_READY_B 0x134 0x39C 0x000 0x0 0x0
+#define MX8MM_IOMUXC_NAND_READY_B_SD3_RESET_B 0x134 0x39C 0x000 0x2 0x0
#define MX8MM_IOMUXC_NAND_READY_B_GPIO3_IO16 0x134 0x39C 0x000 0x5 0x0
#define MX8MM_IOMUXC_NAND_READY_B_SIM_M_HADDR12 0x134 0x39C 0x000 0x7 0x0
#define MX8MM_IOMUXC_NAND_WE_B_RAWNAND_WE_B 0x138 0x3A0 0x000 0x0 0x0
diff --git a/arch/arm/mach-imx/imx8m/clock_imx8mm.c b/arch/arm/mach-imx/imx8m/clock_imx8mm.c
index cff3182cb4..3a64a568e5 100644
--- a/arch/arm/mach-imx/imx8m/clock_imx8mm.c
+++ b/arch/arm/mach-imx/imx8m/clock_imx8mm.c
@@ -184,31 +184,31 @@ void init_uart_clk(u32 index)
{
/*
* set uart clock root
- * 24M OSC
+ * SYSTEM_PLL1_DIV10 (== 80MHz)
*/
switch (index) {
case 0:
clock_enable(CCGR_UART1, 0);
clock_set_target_val(UART1_CLK_ROOT, CLK_ROOT_ON |
- CLK_ROOT_SOURCE_SEL(0));
+ CLK_ROOT_SOURCE_SEL(1));
clock_enable(CCGR_UART1, 1);
return;
case 1:
clock_enable(CCGR_UART2, 0);
clock_set_target_val(UART2_CLK_ROOT, CLK_ROOT_ON |
- CLK_ROOT_SOURCE_SEL(0));
+ CLK_ROOT_SOURCE_SEL(1));
clock_enable(CCGR_UART2, 1);
return;
case 2:
clock_enable(CCGR_UART3, 0);
clock_set_target_val(UART3_CLK_ROOT, CLK_ROOT_ON |
- CLK_ROOT_SOURCE_SEL(0));
+ CLK_ROOT_SOURCE_SEL(1));
clock_enable(CCGR_UART3, 1);
return;
case 3:
clock_enable(CCGR_UART4, 0);
clock_set_target_val(UART4_CLK_ROOT, CLK_ROOT_ON |
- CLK_ROOT_SOURCE_SEL(0));
+ CLK_ROOT_SOURCE_SEL(1));
clock_enable(CCGR_UART4, 1);
return;
default:
@@ -283,7 +283,7 @@ int clock_init(void)
u32 imx_get_uartclk(void)
{
- return 24000000U;
+ return 80000000U;
}
static u32 decode_intpll(enum clk_root_src intpll)
diff --git a/arch/arm/mach-imx/imx8m/opos8mm.c b/arch/arm/mach-imx/imx8m/opos8mm.c
index 46081f2f00..10469a2cfc 100644
--- a/arch/arm/mach-imx/imx8m/opos8mm.c
+++ b/arch/arm/mach-imx/imx8m/opos8mm.c
@@ -6,8 +6,11 @@
#include <asm/arch/imx8mm_pins.h>
#include <asm/arch/imx-regs.h>
#include <asm/arch/sys_proto.h>
+#include <asm/mach-imx/boot_mode.h>
#include <asm/mach-imx/iomux-v3.h>
#include <common.h>
+#include <env.h>
+#include <env_internal.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -54,6 +57,12 @@ int __weak opos8mm_board_late_init(void)
int board_late_init(void)
{
+ enum boot_device dev = get_boot_device();
+
+ if (dev == USB_BOOT) {
+ env_set("preboot", "");
+ }
+
return opos8mm_board_late_init();
}
@@ -102,6 +111,25 @@ int board_early_init_f(void)
return opos8mm_board_early_init_f();
}
+enum env_location env_get_location(enum env_operation op, int prio)
+{
+ enum boot_device dev = get_boot_device();
+
+ if (dev == USB_BOOT) {
+ if (prio == 0)
+ return ENVL_NOWHERE;
+ else if (prio == 1)
+ return ENVL_MMC;
+ else
+ return ENVL_UNKNOWN;
+ }
+
+ if (prio == 0)
+ return ENVL_MMC;
+
+ return ENVL_UNKNOWN;
+}
+
#ifdef CONFIG_SPL_BUILD
#include <asm/arch/ddr.h>
#include <asm/mach-imx/boot_mode.h>
diff --git a/arch/arm/mach-imx/imx8m/soc.c b/arch/arm/mach-imx/imx8m/soc.c
index 1d2c8e6db2..0b21ffc407 100644
--- a/arch/arm/mach-imx/imx8m/soc.c
+++ b/arch/arm/mach-imx/imx8m/soc.c
@@ -292,6 +292,11 @@ int arch_cpu_init_dm(void)
int arch_cpu_init(void)
{
struct ocotp_regs *ocotp = (struct ocotp_regs *)OCOTP_BASE_ADDR;
+
+#if !CONFIG_IS_ENABLED(SYS_ICACHE_OFF)
+ icache_enable();
+#endif
+
/*
* ROM might disable clock for SCTR,
* enable the clock before timer_init.
diff --git a/cmd/Kconfig b/cmd/Kconfig
index 32bab49d08..26a681ad38 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -609,6 +609,17 @@ config CMD_NVEDIT_INFO
[-p] : evaluate whether environment can be persisted
The result of multiple evaluations will be combined with AND.
+config CMD_NVEDIT_LOAD
+ bool "env load"
+ help
+ Load all environment variables from the compiled-in persistent
+ storage.
+
+config CMD_NVEDIT_SELECT
+ bool "env select"
+ help
+ Select the compiled-in persistent storage of environment variables.
+
endmenu
menu "Memory commands"
diff --git a/cmd/nvedit.c b/cmd/nvedit.c
index 08d49df220..5e606f49f0 100644
--- a/cmd/nvedit.c
+++ b/cmd/nvedit.c
@@ -794,6 +794,26 @@ U_BOOT_CMD(
);
#endif
#endif
+
+#if defined(CONFIG_CMD_NVEDIT_LOAD)
+static int do_env_load(struct cmd_tbl *cmdtp, int flag, int argc,
+ char *const argv[])
+{
+ return env_reload() ? 1 : 0;
+}
+#endif
+
+#if defined(CONFIG_CMD_NVEDIT_SELECT)
+static int do_env_select(struct cmd_tbl *cmdtp, int flag, int argc,
+ char *const argv[])
+{
+ if (argc < 2)
+ return CMD_RET_USAGE;
+
+ return env_select(argv[1]) ? 1 : 0;
+}
+#endif
+
#endif /* CONFIG_SPL_BUILD */
int env_match(uchar *s1, int i2)
@@ -1327,6 +1347,9 @@ static struct cmd_tbl cmd_env_sub[] = {
#endif
#if defined(CONFIG_CMD_NVEDIT_INFO)
U_BOOT_CMD_MKENT(info, 2, 0, do_env_info, "", ""),
+#endif
+#if defined(CONFIG_CMD_NVEDIT_LOAD)
+ 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_RUN)
@@ -1337,6 +1360,9 @@ static struct cmd_tbl cmd_env_sub[] = {
#if defined(CONFIG_CMD_ERASEENV)
U_BOOT_CMD_MKENT(erase, 1, 0, do_env_erase, "", ""),
#endif
+#endif
+#if defined(CONFIG_CMD_NVEDIT_SELECT)
+ U_BOOT_CMD_MKENT(select, 2, 0, do_env_select, "", ""),
#endif
U_BOOT_CMD_MKENT(set, CONFIG_SYS_MAXARGS, 0, do_env_set, "", ""),
#if defined(CONFIG_CMD_ENV_EXISTS)
@@ -1421,6 +1447,12 @@ static char env_help_text[] =
"env erase - erase environment\n"
#endif
#endif
+#if defined(CONFIG_CMD_NVEDIT_LOAD)
+ "env load - load environment\n"
+#endif
+#if defined(CONFIG_CMD_NVEDIT_SELECT)
+ "env select [target] - select environment target\n"
+#endif
#if defined(CONFIG_CMD_NVEDIT_EFI)
"env set -e [-nv][-bs][-rt][-at][-a][-i addr,size][-v] name [arg ...]\n"
" - set UEFI variable; unset if '-i' or 'arg' not specified\n"
diff --git a/configs/opos8mmdev_defconfig b/configs/opos8mmdev_defconfig
index cc9e6ba78b..c289ddaa4e 100644
--- a/configs/opos8mmdev_defconfig
+++ b/configs/opos8mmdev_defconfig
@@ -46,6 +46,10 @@ CONFIG_SYS_PROMPT="BIOS> "
CONFIG_CMD_BOOTZ=y
# CONFIG_CMD_EXPORTENV is not set
# CONFIG_CMD_IMPORTENV is not set
+CONFIG_CMD_ERASEENV=y
+CONFIG_CMD_ENV_CALLBACK=y
+CONFIG_CMD_NVEDIT_INFO=y
+CONFIG_CMD_NVEDIT_SELECT=y
# CONFIG_CMD_CRC32 is not set
CONFIG_CMD_CLK=y
CONFIG_CMD_FUSE=y
@@ -78,6 +82,7 @@ CONFIG_ISO_PARTITION=y
CONFIG_OF_CONTROL=y
CONFIG_SPL_OF_CONTROL=y
CONFIG_DEFAULT_DEVICE_TREE="imx8mm-opos8mmdev"
+CONFIG_ENV_IS_NOWHERE=y
CONFIG_ENV_IS_IN_MMC=y
CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
CONFIG_SYS_RELOC_GD_ENV_ADDR=y
diff --git a/env/env.c b/env/env.c
index dcc25c030b..63b77c9edd 100644
--- a/env/env.c
+++ b/env/env.c
@@ -232,6 +232,34 @@ int env_load(void)
return -ENODEV;
}
+int env_reload(void)
+{
+ struct env_driver *drv;
+
+ drv = env_driver_lookup(ENVOP_LOAD, gd->env_load_prio);
+ if (drv) {
+ int ret;
+
+ printf("Loading Environment from %s... ", drv->name);
+
+ if (!env_has_inited(drv->location)) {
+ printf("not initialized\n");
+ return -ENODEV;
+ }
+
+ ret = drv->load();
+ if (ret)
+ printf("Failed (%d)\n", ret);
+ else
+ printf("OK\n");
+
+ if (!ret)
+ return 0;
+ }
+
+ return -ENODEV;
+}
+
int env_save(void)
{
struct env_driver *drv;
@@ -314,3 +342,45 @@ int env_init(void)
return ret;
}
+
+int env_select(const char *name)
+{
+ struct env_driver *drv;
+ const int n_ents = ll_entry_count(struct env_driver, env_driver);
+ struct env_driver *entry;
+ int prio;
+ bool found = false;
+
+ printf("Select Environment on %s: ", name);
+
+ /* search ENV driver by name */
+ drv = ll_entry_start(struct env_driver, env_driver);
+ for (entry = drv; entry != drv + n_ents; entry++) {
+ if (!strcmp(entry->name, name)) {
+ found = true;
+ break;
+ }
+ }
+
+ if (!found) {
+ printf("driver not found\n");
+ return -ENODEV;
+ }
+
+ /* search priority by driver */
+ for (prio = 0; (drv = env_driver_lookup(ENVOP_INIT, prio)); prio++) {
+ if (entry->location == env_get_location(ENVOP_LOAD, prio)) {
+ /* when priority change, reset the ENV flags */
+ if (gd->env_load_prio != prio) {
+ gd->env_load_prio = prio;
+ gd->env_valid = ENV_INVALID;
+ gd->flags &= ~GD_FLG_ENV_DEFAULT;
+ }
+ printf("OK\n");
+ return 0;
+ }
+ }
+ printf("priority not found\n");
+
+ return -ENODEV;
+}
diff --git a/include/configs/opos8mmdev.h b/include/configs/opos8mmdev.h
index ec53a26073..049b8e1c6f 100644
--- a/include/configs/opos8mmdev.h
+++ b/include/configs/opos8mmdev.h
@@ -111,7 +111,7 @@
" change suggests: run flash_reset_env; reset\"; " \
"env default flash_reset_env; " \
"else exit; fi; \0" \
- "flash_reset_env=env default -f -a && saveenv && " \
+ "flash_reset_env=env default -f -a && env select MMC && saveenv && " \
"echo Environment variables erased!\0" \
"download_uboot_spl=tftpboot ${loadaddr} ${board_name}-u-boot.spl\0" \
"flash_uboot_spl=" \
diff --git a/include/env.h b/include/env.h
index d6c2d751d6..665857f032 100644
--- a/include/env.h
+++ b/include/env.h
@@ -265,6 +265,13 @@ int env_set_default_vars(int nvars, char *const vars[], int flags);
*/
int env_load(void);
+/**
+ * env_reload() - Re-Load the environment from current storage
+ *
+ * @return 0 if OK, -ve on error
+ */
+int env_reload(void);
+
/**
* env_save() - Save the environment to storage
*
@@ -279,6 +286,13 @@ int env_save(void);
*/
int env_erase(void);
+/**
+ * env_select() - Select the environment storage
+ *
+ * @return 0 if OK, -ve on error
+ */
+int env_select(const char *name);
+
/**
* env_import() - Import from a binary representation into hash table
*
@@ -342,5 +356,4 @@ int env_get_char(int index);
* This is used for those unfortunate archs with crappy toolchains
*/
void env_reloc(void);
-
#endif
hooks/post-receive
--
armadeus/u-boot
|