Message ID | 1466457388-20271-1-git-send-email-hdegoede@redhat.com |
---|---|
State | Accepted |
Commit | 9f823615af919c6b89f0b80197f009f78299dcde |
Delegated to: | Tom Rini |
Headers | show |
2016-06-21 6:16 GMT+09:00 Hans de Goede <hdegoede@redhat.com>: > 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@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 > Changes in v3: > -Rebase on latest master > --- > Kconfig | 17 +++++++++++++++++ > arch/arm/Kconfig | 9 --------- > doc/README.distro | 6 ++++++ > 3 files changed, 23 insertions(+), 9 deletions(-) > > diff --git a/Kconfig b/Kconfig > index 817f4f0..3ceff25 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 If we want to allow users to disable distro, and do not want ARCH_SUNXI appear in a generic config entry, perhaps we can do like this. config ARCH_SUNXI bool select ARCH_SUPPORTS_DISTRO config DISTRO_DEFAULTS bool "Select defaults suitable for booting general purpose Linux distributions" default y if ARCH_SUPPORTS_DISTRO Currently it is just fine, but we might want to do something in the future when we have more platforms to migrate to this way... config DISTRO_DEFAULTS bool "Select defaults suitable for booting general purpose Linux distributions" default y if (ARCH_SUNXI || ARCH_TEGRA || ARCH_HISI || ARCH_ZYNQMP ... ) > + 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 Do you mean all of these commands are mandatory for disto? Or just recommended?
On Mon, Jun 20, 2016 at 11:16:28PM +0200, Hans de Goede wrote: > 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@redhat.com> Applied to u-boot/master, thanks! And I thought I had already applied this, sorry!
On Tue, Jun 21, 2016 at 11:22:38AM +0900, Masahiro Yamada wrote: > 2016-06-21 6:16 GMT+09:00 Hans de Goede <hdegoede@redhat.com>: > > 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@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 > > Changes in v3: > > -Rebase on latest master > > --- > > Kconfig | 17 +++++++++++++++++ > > arch/arm/Kconfig | 9 --------- > > doc/README.distro | 6 ++++++ > > 3 files changed, 23 insertions(+), 9 deletions(-) > > > > diff --git a/Kconfig b/Kconfig > > index 817f4f0..3ceff25 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 > > > > If we want to allow users to disable distro, > and do not want ARCH_SUNXI appear in a generic config entry, > perhaps we can do like this. > > > config ARCH_SUNXI > bool > select ARCH_SUPPORTS_DISTRO > > > config DISTRO_DEFAULTS > bool "Select defaults suitable for booting general purpose > Linux distributions" > default y if ARCH_SUPPORTS_DISTRO > > > > Currently it is just fine, > but we might want to do something in the future > when we have more platforms to migrate to this way... > > config DISTRO_DEFAULTS > bool "Select defaults suitable for booting general purpose Linux > distributions" > default y if (ARCH_SUNXI || ARCH_TEGRA || ARCH_HISI || ARCH_ZYNQMP ... ) I suppose that in the long run we'll want to move towards adding in many SUPPORTS_xxx type things to make there be less possible merge conflicts in the main Kconfig files. We may even want to introduce CONFIG_EXPERT and make certain things default unless that's set as we have both the use case of "bring up a new board, easily, that does what I mean" and "I need my board to be as compact as possible" and even "I know exactly what I do and don't want enabled".
diff --git a/Kconfig b/Kconfig index 817f4f0..3ceff25 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 f48be96..e9d2fc9 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -610,16 +610,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 @@ -627,7 +619,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/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: ------------------------------------------------------------
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@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 Changes in v3: -Rebase on latest master --- Kconfig | 17 +++++++++++++++++ arch/arm/Kconfig | 9 --------- doc/README.distro | 6 ++++++ 3 files changed, 23 insertions(+), 9 deletions(-)