All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig
@ 2018-02-03 10:23 Goldschmidt Simon
  2018-02-05 13:32 ` Maxime Ripard
  0 siblings, 1 reply; 7+ messages in thread
From: Goldschmidt Simon @ 2018-02-03 10:23 UTC (permalink / raw)
  To: u-boot

On 01.02.2018 20:47, Maxime Ripard wrote:
> On Thu, Feb 01, 2018 at 11:06:14AM +0100, Simon Goldschmidt wrote:
>> 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.
> 
> Is that happening in any of the current defconfig right now? Or is it
> only when you add more environments?

No, this is with my own config. I'm trying out the new feature :-)

> 
>> 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...
> 
> I'm not sure what it could be either, that file looks like it would
> need a quite big rework, in order to be able to operate properly.
> 
> Do you actually need those? Maybe we can just disable those in Kconfig
> to forbid such a combination?

I planned to have the environment in both SPI flash and eMMC to
be able to use a common U-Boot binary accross multiple boards.

I don't need 'tools/envcrc' though. And this is where the build
error is.

Maybe we could disable the combination for 'tools/envcrc' only?

Simon

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig
  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
  0 siblings, 1 reply; 7+ messages in thread
From: Maxime Ripard @ 2018-02-05 13:32 UTC (permalink / raw)
  To: u-boot

On Sat, Feb 03, 2018 at 10:23:12AM +0000, Goldschmidt Simon wrote:
> On 01.02.2018 20:47, Maxime Ripard wrote:
> > On Thu, Feb 01, 2018 at 11:06:14AM +0100, Simon Goldschmidt wrote:
> >> 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.
> > 
> > Is that happening in any of the current defconfig right now? Or is it
> > only when you add more environments?
> 
> No, this is with my own config. I'm trying out the new feature :-)
> 
> > 
> >> 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...
> > 
> > I'm not sure what it could be either, that file looks like it would
> > need a quite big rework, in order to be able to operate properly.
> > 
> > Do you actually need those? Maybe we can just disable those in Kconfig
> > to forbid such a combination?
> 
> I planned to have the environment in both SPI flash and eMMC to
> be able to use a common U-Boot binary accross multiple boards.
> 
> I don't need 'tools/envcrc' though. And this is where the build
> error is.
> 
> Maybe we could disable the combination for 'tools/envcrc' only?

Apparently, envcrc is used to generate the CRC of an embedded
environment image inside the U-Boot image, which would be triggered in
some specific cases.

I'm not sure we can disable it without breaking use cases.

in this particular case, it seems that the u8 typedef is done at the
architecture level, and efi.h doesn't include asm/types.h that define
it. Maybe it's as simple as that. Otherwise, it includes linux/types.h
that defines uint8_t, we can use that instead.

Maxime

-- 
Maxime Ripard, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180205/d25c3c40/attachment.sig>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig
  2018-02-05 13:32 ` Maxime Ripard
@ 2018-02-06  8:24   ` Simon Goldschmidt
  2018-02-06  8:45     ` Maxime Ripard
  0 siblings, 1 reply; 7+ messages in thread
From: Simon Goldschmidt @ 2018-02-06  8:24 UTC (permalink / raw)
  To: u-boot



On 05.02.2018 14:32, Maxime Ripard wrote:
> On Sat, Feb 03, 2018 at 10:23:12AM +0000, Goldschmidt Simon wrote:
>> On 01.02.2018 20:47, Maxime Ripard wrote:
>>> On Thu, Feb 01, 2018 at 11:06:14AM +0100, Simon Goldschmidt wrote:
>>>> 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.
>>> Is that happening in any of the current defconfig right now? Or is it
>>> only when you add more environments?
>> No, this is with my own config. I'm trying out the new feature :-)
>>
>>>> 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...
>>> I'm not sure what it could be either, that file looks like it would
>>> need a quite big rework, in order to be able to operate properly.
>>>
>>> Do you actually need those? Maybe we can just disable those in Kconfig
>>> to forbid such a combination?
>> I planned to have the environment in both SPI flash and eMMC to
>> be able to use a common U-Boot binary accross multiple boards.
>>
>> I don't need 'tools/envcrc' though. And this is where the build
>> error is.
>>
>> Maybe we could disable the combination for 'tools/envcrc' only?
> Apparently, envcrc is used to generate the CRC of an embedded
> environment image inside the U-Boot image, which would be triggered in
> some specific cases.
>
> I'm not sure we can disable it without breaking use cases.

I didn't want to suggest removing envcrc. I'd rather wanted to somehow 
prevent including "mmc.h" when compiling for envcrc... Anyway, that 
would be a hack to make it work for me.

> in this particular case, it seems that the u8 typedef is done at the
> architecture level, and efi.h doesn't include asm/types.h that define
> it. Maybe it's as simple as that. Otherwise, it includes linux/types.h
> that defines uint8_t, we can use that instead.

Digging into this again, it seems clear that this doesn't work since 
'u8' is meant for kernel space while user space should use '__u8'. 
Envcrc *is* userspace, so using uint8_t everywhere makes more sense.


Simon

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig
  2018-02-06  8:24   ` Simon Goldschmidt
@ 2018-02-06  8:45     ` Maxime Ripard
  0 siblings, 0 replies; 7+ messages in thread
From: Maxime Ripard @ 2018-02-06  8:45 UTC (permalink / raw)
  To: u-boot

On Tue, Feb 06, 2018 at 09:24:02AM +0100, Simon Goldschmidt wrote:
> > in this particular case, it seems that the u8 typedef is done at the
> > architecture level, and efi.h doesn't include asm/types.h that define
> > it. Maybe it's as simple as that. Otherwise, it includes linux/types.h
> > that defines uint8_t, we can use that instead.
> 
> Digging into this again, it seems clear that this doesn't work since 'u8' is
> meant for kernel space while user space should use '__u8'. Envcrc *is*
> userspace, so using uint8_t everywhere makes more sense.

Yes, but the offending variable is in include/efi.h, which would be
included by both (but probably not intentionally in the envcrc case).

Maxime

-- 
Maxime Ripard, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180206/ffdeb7f1/attachment.sig>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig
  2018-02-01 10:06   ` Simon Goldschmidt
@ 2018-02-02 19:47     ` Maxime Ripard
  0 siblings, 0 replies; 7+ messages in thread
From: Maxime Ripard @ 2018-02-02 19:47 UTC (permalink / raw)
  To: u-boot

On Thu, Feb 01, 2018 at 11:06:14AM +0100, Simon Goldschmidt wrote:
> 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.

Is that happening in any of the current defconfig right now? Or is it
only when you add more environments?

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

I'm not sure what it could be either, that file looks like it would
need a quite big rework, in order to be able to operate properly.

Do you actually need those? Maybe we can just disable those in Kconfig
to forbid such a combination?

Maxime

-- 
Maxime Ripard, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20180202/a2ec6fd6/attachment.sig>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig
  2018-01-23 20:17 ` [U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig Maxime Ripard
@ 2018-02-01 10:06   ` Simon Goldschmidt
  2018-02-02 19:47     ` Maxime Ripard
  0 siblings, 1 reply; 7+ messages in thread
From: Simon Goldschmidt @ 2018-02-01 10:06 UTC (permalink / raw)
  To: u-boot

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

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig
  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:17 ` Maxime Ripard
  2018-02-01 10:06   ` Simon Goldschmidt
  0 siblings, 1 reply; 7+ messages in thread
From: Maxime Ripard @ 2018-01-23 20:17 UTC (permalink / raw)
  To: u-boot

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

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2018-02-06  8:45 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
  -- strict thread matches above, loose matches on Subject: below --
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:17 ` [U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig Maxime Ripard
2018-02-01 10:06   ` Simon Goldschmidt
2018-02-02 19:47     ` Maxime Ripard

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.