[U-Boot] [PATCH v2] Kconfig: Add a new DISTRO_DEFAULTS Kconfig option

Hans de Goede hdegoede at redhat.com
Sun Jun 12 11:36:34 CEST 2016


DISTRO_DEFAULTS is intended to mirror / replace
include/config_distro_defaults.h.

The intend is for boards which include this file to select this from
their Kconfig files and when moving setting to Kconfig which are #define-ed
in config_distro_defaults.h to select this from DISTRO_DEFAULTS so that
boards which have selected DISTRO_DEFAULTS will keep the same configuration
as before without needing any defconfig file changes.

The initial list of selected things matches all settings recently removed
from config_distro_defaults.h because they have been converted to Kconfig,
with the exception of CMD_ELF and CMD_NET, which have a default of y, if
the default of these ever changes they should be selected by DISTRO_DEFAULTS
too.

For testing and example purposes this commit also converts ARCH_SUNXI
to use DISTRO_DEFAULT instead of selecting everything it needs itself.

Signed-off-by: Hans de Goede <hdegoede at redhat.com>
---
Changes in v2:
-Use "default y if ARCH_SUNXI" instead of selecting DISTRO_DEFAULT for sunxi
-Document how to enable DISTRO_DEFAULT in doc/README.distro
---
 Kconfig           | 17 +++++++++++++++++
 arch/arm/Kconfig  |  9 ---------
 common/Kconfig    |  1 +
 doc/README.distro |  6 ++++++
 4 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/Kconfig b/Kconfig
index 4b46216..e26048d 100644
--- a/Kconfig
+++ b/Kconfig
@@ -53,6 +53,23 @@ config CC_OPTIMIZE_FOR_SIZE
 
 	  This option is enabled by default for U-Boot.
 
+config DISTRO_DEFAULTS
+	bool "Select defaults suitable for booting general purpose Linux distributions"
+	default y if ARCH_SUNXI
+	default n
+	select CMD_BOOTZ
+	select CMD_DHCP
+	select CMD_EXT2
+	select CMD_EXT4
+	select CMD_FAT
+	select CMD_FS_GENERIC
+	select CMD_MII
+	select CMD_PING
+	select HUSH_PARSER
+	help
+	  Select this to enable various options and commands which are suitable
+	  for building u-boot for booting general purpose Linux distributions.
+
 config SYS_MALLOC_F
 	bool "Enable malloc() pool before relocation"
 	default y if DM
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 4aeb4d2..a3b673f 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -584,16 +584,8 @@ config TARGET_CM_T43
 
 config ARCH_SUNXI
 	bool "Support sunxi (Allwinner) SoCs"
-	select CMD_BOOTZ
-	select CMD_DHCP
-	select CMD_EXT2
-	select CMD_EXT4
-	select CMD_FAT
-	select CMD_FS_GENERIC
 	select CMD_GPIO
-	select CMD_MII
 	select CMD_MMC if MMC
-	select CMD_PING
 	select CMD_USB
 	select DM
 	select DM_ETH
@@ -601,7 +593,6 @@ config ARCH_SUNXI
 	select DM_KEYBOARD
 	select DM_SERIAL
 	select DM_USB
-	select HUSH_PARSER
 	select OF_BOARD_SETUP
 	select OF_CONTROL
 	select OF_SEPARATE
diff --git a/common/Kconfig b/common/Kconfig
index 4d17b10..f86c5a2 100644
--- a/common/Kconfig
+++ b/common/Kconfig
@@ -99,6 +99,7 @@ endmenu
 
 config BOOTDELAY
 	int "delay in seconds before automatically booting"
+	default 2 if DISTRO_DEFAULTS
 	default 0
 	help
 	  Delay before automatically running bootcmd;
diff --git a/doc/README.distro b/doc/README.distro
index e1b7216..77d5c6d 100644
--- a/doc/README.distro
+++ b/doc/README.distro
@@ -162,6 +162,12 @@ U-Boot Implementation
 Enabling the distro options
 ---------------------------
 
+In your board's defconfig, enable the DISTRO_DEFAULTS option by adding
+a line with "CONFIG_DISTRO_DEFAULTS=y". If you want to enable this
+from Kconfig itself, for e.g. all boards using a specific SoC then
+add a "default y if ARCH_FOO" to the DISTRO_DEFAULTS section of
+the Kconfig file in the root of the u-boot sources.
+
 In your board configuration file, include the following:
 
 ------------------------------------------------------------
-- 
2.7.4



More information about the U-Boot mailing list