[PATCH v2 04/22] board: st: stm32mp2: add env_get_location()

Patrice Chotard patrice.chotard at foss.st.com
Fri Apr 25 15:15:15 CEST 2025


In case of several environment location support, env_get_location
is needed to select the correct location depending of the boot
device .

Signed-off-by: Patrice Chotard <patrice.chotard at foss.st.com>
---

(no changes since v1)

 board/st/stm32mp2/stm32mp2.c | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)

diff --git a/board/st/stm32mp2/stm32mp2.c b/board/st/stm32mp2/stm32mp2.c
index aa7dd31996e..c70ffaf5dbd 100644
--- a/board/st/stm32mp2/stm32mp2.c
+++ b/board/st/stm32mp2/stm32mp2.c
@@ -6,7 +6,7 @@
 #define LOG_CATEGORY LOGC_BOARD
 
 #include <config.h>
-#include <env.h>
+#include <env_internal.h>
 #include <fdt_support.h>
 #include <log.h>
 #include <misc.h>
@@ -59,6 +59,25 @@ int board_init(void)
 	return 0;
 }
 
+enum env_location env_get_location(enum env_operation op, int prio)
+{
+	u32 bootmode = get_bootmode();
+
+	if (prio)
+		return ENVL_UNKNOWN;
+
+	switch (bootmode & TAMP_BOOT_DEVICE_MASK) {
+	case BOOT_FLASH_SD:
+	case BOOT_FLASH_EMMC:
+		if (CONFIG_IS_ENABLED(ENV_IS_IN_MMC))
+			return ENVL_MMC;
+		else
+			return ENVL_NOWHERE;
+	default:
+		return ENVL_NOWHERE;
+	}
+}
+
 int board_late_init(void)
 {
 	const void *fdt_compat;
-- 
2.25.1



More information about the U-Boot mailing list