summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorFrieder Schrempf <frieder.schrempf@kontron.de>2022-08-24 15:59:08 +0200
committerStefano Babic <sbabic@denx.de>2022-10-20 17:35:51 +0200
commit3f7f73165379feaf002e07b4ed676e36992173f7 (patch)
tree2c1611b35b085c624734226390ff5e52dcaffe9e /board
parent2a6f0230619a821eae034c741fc20d586776b9ad (diff)
downloadu-boot-3f7f73165379feaf002e07b4ed676e36992173f7.tar.gz
u-boot-3f7f73165379feaf002e07b4ed676e36992173f7.tar.bz2
u-boot-3f7f73165379feaf002e07b4ed676e36992173f7.zip
imx: kontron-sl-mx8mm: Enable environment in MMC
In case we boot from SD card or eMMC, we also want to load the environment from the according boot device. Signed-off-by: Frieder Schrempf <frieder.schrempf@kontron.de> Reviewed-by: Fabio Estevam <festevam@denx.de>
Diffstat (limited to 'board')
-rw-r--r--board/kontron/sl-mx8mm/sl-mx8mm.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/board/kontron/sl-mx8mm/sl-mx8mm.c b/board/kontron/sl-mx8mm/sl-mx8mm.c
index fea9327837..416c4cbb40 100644
--- a/board/kontron/sl-mx8mm/sl-mx8mm.c
+++ b/board/kontron/sl-mx8mm/sl-mx8mm.c
@@ -4,10 +4,13 @@
*/
#include <asm/arch/imx-regs.h>
+#include <asm/arch/sys_proto.h>
#include <asm/global_data.h>
#include <asm/io.h>
+#include <asm/mach-imx/boot_mode.h>
#include <efi.h>
#include <efi_loader.h>
+#include <env_internal.h>
#include <fdt_support.h>
#include <linux/errno.h>
#include <linux/kernel.h>
@@ -117,3 +120,31 @@ int board_init(void)
{
return 0;
}
+
+enum env_location env_get_location(enum env_operation op, int prio)
+{
+ enum boot_device boot_dev = get_boot_device();
+
+ if (prio)
+ return ENVL_UNKNOWN;
+
+ /*
+ * Make sure that the environment is loaded from
+ * the MMC if we are running from SD card or eMMC.
+ */
+ if (CONFIG_IS_ENABLED(ENV_IS_IN_MMC) &&
+ (boot_dev == SD1_BOOT || boot_dev == SD2_BOOT))
+ return ENVL_MMC;
+
+ if (CONFIG_IS_ENABLED(ENV_IS_IN_SPI_FLASH))
+ return ENVL_SPI_FLASH;
+
+ return ENVL_NOWHERE;
+}
+
+#if defined(CONFIG_ENV_IS_IN_MMC)
+int board_mmc_get_env_dev(int devno)
+{
+ return devno;
+}
+#endif