Re: [U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig

2018-02-06 Thread Maxime Ripard
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


signature.asc
Description: PGP signature
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig

2018-02-06 Thread Simon Goldschmidt



On 05.02.2018 14:32, Maxime Ripard wrote:

On Sat, Feb 03, 2018 at 10:23:12AM +, 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 
Reviewed-by: Lukasz Majewski 
Reviewed-by: Simon Glass 
Signed-off-by: Maxime Ripard 

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
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig

2018-02-05 Thread Maxime Ripard
On Sat, Feb 03, 2018 at 10:23:12AM +, 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 
> >> > Reviewed-by: Lukasz Majewski 
> >> > Reviewed-by: Simon Glass 
> >> > Signed-off-by: Maxime Ripard 
> >>
> >> 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


signature.asc
Description: PGP signature
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig

2018-02-03 Thread Goldschmidt Simon
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 
>> > Reviewed-by: Lukasz Majewski 
>> > Reviewed-by: Simon Glass 
>> > Signed-off-by: Maxime Ripard 
>>
>> 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
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig

2018-02-02 Thread Maxime Ripard
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 
> > Reviewed-by: Lukasz Majewski 
> > Reviewed-by: Simon Glass 
> > Signed-off-by: Maxime Ripard 
> 
> 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


signature.asc
Description: PGP signature
___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


Re: [U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig

2018-02-01 Thread Simon Goldschmidt

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 
Reviewed-by: Lukasz Majewski 
Reviewed-by: Simon Glass 
Signed-off-by: Maxime Ripard 


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=e280.flash"
  
CONFIG_MTDPARTS_DEFAULT="mtdparts=e280.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
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=e280.flash"
  
CONFIG_MTDPARTS_DEFAULT="mtdparts=e280.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
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 

[U-Boot] [PATCH v3 12/15] env: Allow to build multiple environments in Kconfig

2018-01-23 Thread Maxime Ripard
Now that we have everything in place in the code, let's allow to build
multiple environments backend through Kconfig.

Reviewed-by: Andre Przywara 
Reviewed-by: Lukasz Majewski 
Reviewed-by: Simon Glass 
Signed-off-by: Maxime Ripard 
---
 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=e280.flash"
 
CONFIG_MTDPARTS_DEFAULT="mtdparts=e280.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
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=e280.flash"
 
CONFIG_MTDPARTS_DEFAULT="mtdparts=e280.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
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