]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
ARM: imx8m: support env in fat and ext4
authorRicardo Salveti <ricardo@foundries.io>
Wed, 20 Oct 2021 19:16:26 +0000 (16:16 -0300)
committerStefano Babic <sbabic@denx.de>
Sat, 5 Feb 2022 12:38:38 +0000 (13:38 +0100)
Change boot device logic to also allow environment stored in fat and in
ext4 when booting from SD or from eMMC.

As the boot device check for SD and for eMMC was depending on
ENV_IS_IN_MMC being defined, change the ifdef blocks at env_get_location
to use IS_ENABLED instead for all modes, returning NOWHERE when no valid
mode is found.

Signed-off-by: Ricardo Salveti <ricardo@foundries.io>
Reviewed-by: Oleksandr Suvorov <oleksandr.suvorov@foundries.io>
Reviewed-by: Fabio Estevam <festevam@gmail.com>
arch/arm/mach-imx/imx8m/soc.c

index 863508776dd9bb17e135369b180d80de7e9228f8..0c6e903629fd2915d75db5d8b29116a24703678d 100644 (file)
@@ -1316,40 +1316,35 @@ void do_error(struct pt_regs *pt_regs, unsigned int esr)
 enum env_location env_get_location(enum env_operation op, int prio)
 {
        enum boot_device dev = get_boot_device();
-       enum env_location env_loc = ENVL_UNKNOWN;
 
        if (prio)
-               return env_loc;
+               return ENVL_UNKNOWN;
 
        switch (dev) {
-#ifdef CONFIG_ENV_IS_IN_SPI_FLASH
        case QSPI_BOOT:
-               env_loc = ENVL_SPI_FLASH;
-               break;
-#endif
-#ifdef CONFIG_ENV_IS_IN_NAND
+               if (IS_ENABLED(CONFIG_ENV_IS_IN_SPI_FLASH))
+                       return ENVL_SPI_FLASH;
+               return ENVL_NOWHERE;
        case NAND_BOOT:
-               env_loc = ENVL_NAND;
-               break;
-#endif
-#ifdef CONFIG_ENV_IS_IN_MMC
+               if (IS_ENABLED(CONFIG_ENV_IS_IN_NAND))
+                       return ENVL_NAND;
+               return ENVL_NOWHERE;
        case SD1_BOOT:
        case SD2_BOOT:
        case SD3_BOOT:
        case MMC1_BOOT:
        case MMC2_BOOT:
        case MMC3_BOOT:
-               env_loc =  ENVL_MMC;
-               break;
-#endif
+               if (IS_ENABLED(CONFIG_ENV_IS_IN_MMC))
+                       return ENVL_MMC;
+               else if (IS_ENABLED(CONFIG_ENV_IS_IN_EXT4))
+                       return ENVL_EXT4;
+               else if (IS_ENABLED(CONFIG_ENV_IS_IN_FAT))
+                       return ENVL_FAT;
+               return ENVL_NOWHERE;
        default:
-#if defined(CONFIG_ENV_IS_NOWHERE)
-               env_loc = ENVL_NOWHERE;
-#endif
-               break;
+               return ENVL_NOWHERE;
        }
-
-       return env_loc;
 }
 
 #ifndef ENV_IS_EMBEDDED