diff options
author | Frieder Schrempf <frieder.schrempf@kontron.de> | 2022-08-24 16:59:08 +0300 |
---|---|---|
committer | Stefano Babic <sbabic@denx.de> | 2022-10-20 18:35:51 +0300 |
commit | 3f7f73165379feaf002e07b4ed676e36992173f7 (patch) | |
tree | 2c1611b35b085c624734226390ff5e52dcaffe9e /board/kontron/sl-mx8mm/sl-mx8mm.c | |
parent | 2a6f0230619a821eae034c741fc20d586776b9ad (diff) | |
download | u-boot-3f7f73165379feaf002e07b4ed676e36992173f7.tar.xz |
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/kontron/sl-mx8mm/sl-mx8mm.c')
-rw-r--r-- | board/kontron/sl-mx8mm/sl-mx8mm.c | 31 |
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 |