]> git.sur5r.net Git - u-boot/commitdiff
common: Move environment choice to Kconfig
authorMaxime Ripard <maxime.ripard@free-electrons.com>
Mon, 27 Feb 2017 17:22:03 +0000 (18:22 +0100)
committerJagan Teki <jagan@amarulasolutions.com>
Fri, 7 Apr 2017 05:53:45 +0000 (11:23 +0530)
The environment location is something that might change per board
(depending on what storage options are availaible there) or depending on
the user choice (when we have several options).

Instead of hardcoding it in our configuration header, create a Kconfig
choice with the options we use for now, and the symbols that depend on it.

Once done, also remove the irrelevant sunxi defines.

Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Jagan Teki <jagan@openedev.com>
common/Kconfig
include/configs/sunxi-common.h
include/environment.h

index 1e0c6273419f0c3edad242d2079d4b32b43630e1..04a73e07a22a7c13d765a6881a9316661421fc54 100644 (file)
@@ -158,6 +158,75 @@ config SPI_BOOT
 
 endmenu
 
+menu "Environment"
+
+if ARCH_SUNXI
+
+choice
+       prompt "Environment Device"
+       default ENV_IS_IN_MMC if ARCH_SUNXI
+
+config ENV_IS_IN_MMC
+       bool "Environment in an MMC device"
+       depends on CMD_MMC
+       help
+         Define this if you have an MMC device which you want to use for the
+         environment.
+
+config ENV_IS_IN_NAND
+       bool "Environment in a NAND device"
+       depends on CMD_NAND
+       help
+         Define this if you have a NAND device which you want to use for the
+         environment.
+
+config ENV_IS_IN_UBI
+       bool "Environment in a UBI volume"
+       depends on CMD_UBI
+       depends on CMD_MTDPARTS
+       help
+         Define this if you have a UBI volume which you want to use for the
+         environment.
+
+config ENV_IS_NOWHERE
+       bool "Environment is not stored"
+       help
+         Define this if you don't want to or can't have an environment stored
+         on a storage medium
+
+endchoice
+
+config ENV_OFFSET
+       hex "Environment Offset"
+       depends on !ENV_IS_IN_UBI
+       depends on !ENV_IS_NOWHERE
+       default 0x88000 if ARCH_SUNXI
+       help
+         Offset from the start of the device (or partition)
+
+config ENV_SIZE
+       hex "Environment Size"
+       depends on !ENV_IS_NOWHERE
+       default 0x20000 if ARCH_SUNXI
+       help
+         Size of the environment storage area
+
+config ENV_UBI_PART
+       string "UBI partition name"
+       depends on ENV_IS_IN_UBI
+       help
+         MTD partition containing the UBI device
+
+config ENV_UBI_VOLUME
+       string "UBI volume name"
+       depends on ENV_IS_IN_UBI
+       help
+         Name of the volume that you want to store the environment in.
+
+endif
+
+endmenu
+
 config BOOTDELAY
        int "delay in seconds before automatically booting"
        default 2
index 377ae00a7baaa3668d064a73d9947cdbf6c543c2..bebbe94088fb1d87827ceb048924c7f669d17284 100644 (file)
 /* mmc config */
 #ifdef CONFIG_MMC
 #define CONFIG_MMC_SUNXI_SLOT          0
-#define CONFIG_ENV_IS_IN_MMC
+#endif
+
+#if defined(CONFIG_ENV_IS_IN_MMC)
 #define CONFIG_SYS_MMC_ENV_DEV         0       /* first detected MMC controller */
 #define CONFIG_SYS_MMC_MAX_DEVICE      4
 #endif
 
 #define CONFIG_SYS_MONITOR_LEN         (768 << 10)     /* 768 KiB */
 
-#define CONFIG_ENV_OFFSET              (544 << 10) /* (8 + 24 + 512) KiB */
-#define CONFIG_ENV_SIZE                        (128 << 10)     /* 128 KiB */
-
 #define CONFIG_FAT_WRITE       /* enable write access */
 
 #define CONFIG_SPL_FRAMEWORK
@@ -330,13 +329,6 @@ extern int soft_i2c_gpio_scl;
 #define CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE
 #endif
 
-#if !defined CONFIG_ENV_IS_IN_MMC && \
-    !defined CONFIG_ENV_IS_IN_NAND && \
-    !defined CONFIG_ENV_IS_IN_FAT && \
-    !defined CONFIG_ENV_IS_IN_SPI_FLASH
-#define CONFIG_ENV_IS_NOWHERE
-#endif
-
 #define CONFIG_MISC_INIT_R
 
 #ifndef CONFIG_SPL_BUILD
index b602e8ac46b6be055e6811697023006b9f3b48fd..6f94986c6b3e0fca6c4954ed83fb0f9cf148cc78 100644 (file)
@@ -8,6 +8,8 @@
 #ifndef _ENVIRONMENT_H_
 #define _ENVIRONMENT_H_
 
+#include <linux/kconfig.h>
+
 /**************************************************************************
  *
  * The "environment" is stored as a list of '\0' terminated