env: Allow to build multiple environments in Kconfig
authorMaxime Ripard <maxime.ripard@free-electrons.com>
Tue, 23 Jan 2018 20:17:01 +0000 (21:17 +0100)
committerTom Rini <trini@konsulko.com>
Sat, 27 Jan 2018 14:23:22 +0000 (09:23 -0500)
Now that we have everything in place in the code, let's allow to build
multiple environments backend through Kconfig.

Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
configs/MPC8313ERDB_NAND_33_defconfig
configs/MPC8313ERDB_NAND_66_defconfig
configs/cl-som-imx7_defconfig
configs/microblaze-generic_defconfig
env/Kconfig

index 8230015..b761516 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_CMD_DATE=y
 CONFIG_CMD_MTDPARTS=y
 CONFIG_MTDIDS_DEFAULT="nand0=e2800000.flash"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=e2800000.flash:512k(uboot),128k(env),6m@1m(kernel),-(fs)"
+# CONFIG_ENV_IS_IN_FLASH is not set
 CONFIG_ENV_IS_IN_NAND=y
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
index 2639926..0f2a675 100644 (file)
@@ -22,6 +22,7 @@ CONFIG_CMD_DATE=y
 CONFIG_CMD_MTDPARTS=y
 CONFIG_MTDIDS_DEFAULT="nand0=e2800000.flash"
 CONFIG_MTDPARTS_DEFAULT="mtdparts=e2800000.flash:512k(uboot),128k(env),6m@1m(kernel),-(fs)"
+# CONFIG_ENV_IS_IN_FLASH is not set
 CONFIG_ENV_IS_IN_NAND=y
 # CONFIG_MMC is not set
 CONFIG_MTD_NOR_FLASH=y
index d37c82c..0c93159 100644 (file)
@@ -41,6 +41,7 @@ CONFIG_CMD_EXT4=y
 CONFIG_CMD_EXT4_WRITE=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_FS_GENERIC=y
+# CONFIG_ENV_IS_IN_MMC is not set
 CONFIG_ENV_IS_IN_SPI_FLASH=y
 CONFIG_SPI_FLASH=y
 CONFIG_SPI_FLASH_STMICRO=y
index 5254c0d..cc80e8a 100644 (file)
@@ -40,7 +40,6 @@ CONFIG_CMD_UBI=y
 # CONFIG_CMD_UBIFS is not set
 CONFIG_SPL_OF_CONTROL=y
 CONFIG_OF_EMBED=y
-CONFIG_ENV_IS_IN_FLASH=y
 CONFIG_NETCONSOLE=y
 CONFIG_SPL_DM=y
 CONFIG_MTD_NOR_FLASH=y
index 7966210..ed039ef 100644 (file)
@@ -1,38 +1,18 @@
 menu "Environment"
 
-choice
-       prompt "Select the location of the environment"
-       default ENV_IS_IN_MMC if ARCH_SUNXI
-       default ENV_IS_IN_MMC if ARCH_EXYNOS4
-       default ENV_IS_IN_MMC if MX6SX || MX7D
-       default ENV_IS_IN_MMC if TEGRA30 || TEGRA124
-       default ENV_IS_IN_MMC if TEGRA_ARMV8_COMMON
-       default ENV_IS_IN_FLASH if ARCH_CINTEGRATOR
-       default ENV_IS_IN_FLASH if ARCH_INTEGRATOR_CP
-       default ENV_IS_IN_FLASH if M548x || M547x || M5282 || MCF547x_8x
-       default ENV_IS_IN_FLASH if MCF532x || MCF52x2
-       default ENV_IS_IN_FLASH if MPC86xx || MPC83xx
-       default ENV_IS_IN_FLASH if ARCH_MPC8572 || ARCH_MPC8548 || ARCH_MPC8641
-       default ENV_IS_IN_FLASH if SH && !CPU_SH4
-       default ENV_IS_IN_SPI_FLASH if ARMADA_XP
-       default ENV_IS_IN_SPI_FLASH if INTEL_BAYTRAIL
-       default ENV_IS_IN_SPI_FLASH if INTEL_BRASWELL
-       default ENV_IS_IN_SPI_FLASH if INTEL_BROADWELL
-       default ENV_IS_IN_SPI_FLASH if NORTHBRIDGE_INTEL_IVYBRIDGE
-       default ENV_IS_IN_SPI_FLASH if INTEL_QUARK
-       default ENV_IS_IN_SPI_FLASH if INTEL_QUEENSBAY
-       default ENV_IS_IN_FAT if ARCH_BCM283X
-       default ENV_IS_IN_FAT if MMC_OMAP_HS && TI_COMMON_CMD_OPTIONS
-       default ENV_IS_NOWHERE
-       help
-         At present the environment can be stored in only one place. Use this
-         option to select the location. This is either a device (where the
-         environemnt information is simply written to a fixed location or
-         partition on the device) or a filesystem (where the environment
-         information is written to a file).
-
 config ENV_IS_NOWHERE
        bool "Environment is not stored"
+       depends on !ENV_IS_IN_EEPROM
+       depends on !ENV_IS_IN_FAT
+       depends on !ENV_IS_IN_FLASH
+       depends on !ENV_IS_IN_MMC
+       depends on !ENV_IS_IN_NAND
+       depends on !ENV_IS_IN_NVRAM
+       depends on !ENV_IS_IN_ONENAND
+       depends on !ENV_IS_IN_REMOTE
+       depends on !ENV_IS_IN_SPI_FLASH
+       depends on !ENV_IS_IN_UBI
+       default y
        help
          Define this if you don't want to or can't have an environment stored
          on a storage medium. In this case the environemnt will still exist
@@ -74,6 +54,8 @@ config ENV_IS_IN_EEPROM
 config ENV_IS_IN_FAT
        bool "Environment is in a FAT filesystem"
        depends on !CHAIN_OF_TRUST
+       default y if ARCH_BCM283X
+       default y if MMC_OMAP_HS && TI_COMMON_CMD_OPTIONS
        select FS_FAT
        select FAT_WRITE
        help
@@ -89,6 +71,13 @@ config ENV_IS_IN_EXT4
 config ENV_IS_IN_FLASH
        bool "Environment in flash memory"
        depends on !CHAIN_OF_TRUST
+       default y if ARCH_CINTEGRATOR
+       default y if ARCH_INTEGRATOR_CP
+       default y if M548x || M547x || M5282 || MCF547x_8x
+       default y if MCF532x || MCF52x2
+       default y if MPC86xx || MPC83xx
+       default y if ARCH_MPC8572 || ARCH_MPC8548 || ARCH_MPC8641
+       default y if SH && !CPU_SH4
        help
          Define this if you have a flash device which you want to use for the
          environment.
@@ -162,6 +151,11 @@ config ENV_IS_IN_MMC
        bool "Environment in an MMC device"
        depends on !CHAIN_OF_TRUST
        depends on MMC
+       default y if ARCH_SUNXI
+       default y if ARCH_EXYNOS4
+       default y if MX6SX || MX7D
+       default y if TEGRA30 || TEGRA124
+       default y if TEGRA_ARMV8_COMMON
        help
          Define this if you have an MMC device which you want to use for the
          environment.
@@ -299,6 +293,13 @@ config ENV_IS_IN_REMOTE
 config ENV_IS_IN_SPI_FLASH
        bool "Environment is in SPI flash"
        depends on !CHAIN_OF_TRUST
+       default y if ARMADA_XP
+       default y if INTEL_BAYTRAIL
+       default y if INTEL_BRASWELL
+       default y if INTEL_BROADWELL
+       default y if NORTHBRIDGE_INTEL_IVYBRIDGE
+       default y if INTEL_QUARK
+       default y if INTEL_QUEENSBAY
        help
          Define this if you have a SPI Flash memory device which you
          want to use for the environment.
@@ -364,8 +365,6 @@ config ENV_IS_IN_UBI
          You will probably want to define these to avoid a really noisy system
          when storing the env in UBI.
 
-endchoice
-
 config ENV_FAT_INTERFACE
        string "Name of the block device for the environment"
        depends on ENV_IS_IN_FAT