All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Goldschmidt <sgoldschmidt@de.pepperl-fuchs.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig
Date: Thu, 1 Feb 2018 11:06:14 +0100	[thread overview]
Message-ID: <a78b91f6-a828-4489-2ee9-4eef93cb0f31@de.pepperl-fuchs.com> (raw)
In-Reply-To: <30ac99c8d9f378683fd436cf56a738561c870c29.1516723179.git-series.maxime.ripard@free-electrons.com>

On 23.01.2018 21:17, Maxime Ripard wrote:
> 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>

I get a build error when enabling CONFIG_ENV_IS_IN_SPI_FLASH and 
CONFIG_ENV_IS_IN_MMC at the same time.

The build error is in host tools, not in U-Boot or SPL itself. In fact, 
this is not specific to CONFIG_ENV_IS_IN_SPI_FLASH but to the 
combination of CONFIG_ENV_IS_IN_MMC and any of the environments marked 
as ENVCRC- in tools/Makefile.

The actual error is that the compiler does not know standard types in 
efi.h and mmc.h, e.g.:
In file included from include/blk.h:11:0,
                  from include/part.h:10,
                  from include/mmc.h:16,
                  from include/environment.h:168,
                  from ./tools/../env/embedded.c:16,
                  from tools/env/embedded.c:2:
include/efi.h:32:2: error: unknown type name ‘u8’
   u8 b[16];
   ^~

I can't think of a correct fix right now...

Simon

> ---
>   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

  parent reply	other threads:[~2018-02-01 10:06 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-23 20:16 [U-Boot] [PATCH v3 00/15] env: Multiple env support and env transition for sunxi Maxime Ripard
2018-01-23 20:16 ` [U-Boot] [PATCH v3 01/15] cmd: nvedit: Get rid of the env lookup Maxime Ripard
2018-01-27 19:20   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-23 20:16 ` [U-Boot] [PATCH v3 02/15] env: Rename env_driver_lookup_default and env_get_default_location Maxime Ripard
2018-01-27 19:20   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-23 20:16 ` [U-Boot] [PATCH v3 03/15] env: Pass additional parameters to the env lookup function Maxime Ripard
2018-01-27 19:20   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-04-05 10:48   ` [U-Boot] [PATCH v3 " Simon Goldschmidt
2018-01-23 20:16 ` [U-Boot] [PATCH v3 04/15] env: Make the env save message a bit more explicit Maxime Ripard
2018-01-27 19:20   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-23 20:16 ` [U-Boot] [PATCH v3 05/15] env: Make it explicit where we're loading our environment from Maxime Ripard
2018-01-27 19:20   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-23 20:16 ` [U-Boot] [PATCH v3 06/15] env: fat: Make the debug messages play a little nicer Maxime Ripard
2018-01-27 19:20   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-23 20:16 ` [U-Boot] [PATCH v3 07/15] env: mmc: " Maxime Ripard
2018-01-24 13:52   ` Jaehoon Chung
2018-01-27 19:21   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-23 20:16 ` [U-Boot] [PATCH v3 08/15] env: common: " Maxime Ripard
2018-01-27 19:21   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-23 20:16 ` [U-Boot] [PATCH v3 09/15] env: Support multiple environments Maxime Ripard
2018-01-27 19:21   ` [U-Boot] [U-Boot,v3,09/15] " Tom Rini
2018-01-30  8:19   ` [U-Boot] [PATCH v3 09/15] " Simon Goldschmidt
2018-01-30 19:39     ` York Sun
2018-01-30 20:16       ` York Sun
2018-01-30 23:02         ` York Sun
2018-01-31  6:41           ` Simon Goldschmidt
2018-02-07  8:43           ` Maxime Ripard
2018-02-07 20:18             ` York Sun
2018-02-06  8:09   ` Simon Goldschmidt
2018-02-06  8:20     ` Joakim Tjernlund
2018-02-07  8:18       ` Maxime Ripard
2018-02-07  8:34         ` Joakim Tjernlund
2018-02-07  8:32       ` Simon Goldschmidt
2018-02-07  8:45         ` Joakim Tjernlund
2018-02-07 18:23           ` Maxime Ripard
2018-02-07  8:19     ` Maxime Ripard
2018-02-07  8:25       ` Simon Goldschmidt
2018-02-07 18:48         ` Maxime Ripard
2018-01-23 20:16 ` [U-Boot] [PATCH v3 10/15] env: Initialise all the environments Maxime Ripard
2018-01-27 19:21   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-23 20:17 ` [U-Boot] [PATCH v3 11/15] env: mmc: depends on the MMC framework Maxime Ripard
2018-01-24 13:51   ` Jaehoon Chung
2018-01-27 19:21   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-23 20:17 ` [U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig Maxime Ripard
2018-01-27 19:21   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-02-01 10:06   ` Simon Goldschmidt [this message]
2018-02-02 19:47     ` [U-Boot] [PATCH v3 " Maxime Ripard
2018-01-23 20:17 ` [U-Boot] [PATCH v3 13/15] env: Mark env_get_location as weak Maxime Ripard
2018-01-27 19:21   ` [U-Boot] [U-Boot,v3,13/15] " Tom Rini
2018-01-30  8:12   ` [U-Boot] [PATCH v3 13/15] " Simon Goldschmidt
2018-01-30  8:18     ` Maxime Ripard
2018-01-23 20:17 ` [U-Boot] [PATCH v3 14/15] sunxi: Transition from the MMC to a FAT-based environment Maxime Ripard
2018-01-27 19:21   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-01-23 20:17 ` [U-Boot] [PATCH v3 15/15] env: sunxi: Enable FAT-based environment support by default Maxime Ripard
2018-01-27 19:21   ` [U-Boot] [U-Boot, v3, " Tom Rini
2018-02-03 10:23 [U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig Goldschmidt Simon
2018-02-05 13:32 ` Maxime Ripard
2018-02-06  8:24   ` Simon Goldschmidt
2018-02-06  8:45     ` Maxime Ripard

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a78b91f6-a828-4489-2ee9-4eef93cb0f31@de.pepperl-fuchs.com \
    --to=sgoldschmidt@de.pepperl-fuchs.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.