env: Allow to build multiple environments in Kconfig

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>
This commit is contained in:
Maxime Ripard 2018-01-23 21:17:01 +01:00 committed by Tom Rini
parent d282a1db6a
commit fb69464eae
5 changed files with 35 additions and 34 deletions

View 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

View 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

View 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

View 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

65
env/Kconfig vendored
View 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