[U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig
Maxime Ripard
maxime.ripard at free-electrons.com
Tue Jan 23 20:17:01 UTC 2018
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 at arm.com>
Reviewed-by: Lukasz Majewski <lukma at denx.de>
Reviewed-by: Simon Glass <sjg at chromium.org>
Signed-off-by: Maxime Ripard <maxime.ripard at free-electrons.com>
---
configs/MPC8313ERDB_NAND_33_defconfig | 1 +-
configs/MPC8313ERDB_NAND_66_defconfig | 1 +-
configs/cl-som-imx7_defconfig | 1 +-
configs/microblaze-generic_defconfig | 1 +-
env/Kconfig | 65 +++++++++++++---------------
5 files changed, 35 insertions(+), 34 deletions(-)
diff --git a/configs/MPC8313ERDB_NAND_33_defconfig b/configs/MPC8313ERDB_NAND_33_defconfig
index 823001583447..b761516d126a 100644
--- a/configs/MPC8313ERDB_NAND_33_defconfig
+++ b/configs/MPC8313ERDB_NAND_33_defconfig
@@ -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 at 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
diff --git a/configs/MPC8313ERDB_NAND_66_defconfig b/configs/MPC8313ERDB_NAND_66_defconfig
index 2639926ab814..0f2a675ae2cf 100644
--- a/configs/MPC8313ERDB_NAND_66_defconfig
+++ b/configs/MPC8313ERDB_NAND_66_defconfig
@@ -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 at 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
diff --git a/configs/cl-som-imx7_defconfig b/configs/cl-som-imx7_defconfig
index d37c82cafac1..0c93159032e5 100644
--- a/configs/cl-som-imx7_defconfig
+++ b/configs/cl-som-imx7_defconfig
@@ -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
diff --git a/configs/microblaze-generic_defconfig b/configs/microblaze-generic_defconfig
index 5254c0da790a..cc80e8a027c8 100644
--- a/configs/microblaze-generic_defconfig
+++ b/configs/microblaze-generic_defconfig
@@ -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
diff --git a/env/Kconfig b/env/Kconfig
index ad5ccc253762..6e2fbf416c12 100644
--- a/env/Kconfig
+++ b/env/Kconfig
@@ -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 FAT_WRITE
help
Define this if you want to use the FAT file system for the environment.
@@ -84,6 +66,13 @@ config ENV_IS_IN_FAT
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.
@@ -157,6 +146,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.
@@ -294,6 +288,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.
@@ -359,8 +360,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
--
git-series 0.9.1
More information about the U-Boot
mailing list