diff mbox

[U-Boot,v3,1/2] arch: Make board selection choices optional

Message ID 1431459984-7788-1-git-send-email-joe.hershberger@ni.com
State Accepted
Delegated to: Tom Rini
Headers show

Commit Message

Joe Hershberger May 12, 2015, 7:46 p.m. UTC
By making the board selections optional, every defconfig will include
the board selection when running savedefconfig so if a new board is
added to the top of the list of choices the former top's defconfig will
still be correct.

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Stephen Warren <swarren@wwwdotorg.org>
Cc: Tom Rini <trini@konsulko.com>

---

Changes in v3:
-Add optional to the arch/m68k/Kconfig target selection

Changes in v2:
-New to prevent lost defconfig settings

 arch/arc/Kconfig                     | 1 +
 arch/arm/Kconfig                     | 1 +
 arch/arm/cpu/armv7/exynos/Kconfig    | 1 +
 arch/arm/cpu/armv7/mx5/Kconfig       | 1 +
 arch/arm/cpu/armv7/mx6/Kconfig       | 1 +
 arch/arm/cpu/armv7/omap3/Kconfig     | 1 +
 arch/arm/cpu/armv7/omap4/Kconfig     | 1 +
 arch/arm/cpu/armv7/omap5/Kconfig     | 1 +
 arch/arm/cpu/armv7/rmobile/Kconfig   | 1 +
 arch/arm/cpu/armv7/s5pc1xx/Kconfig   | 1 +
 arch/arm/mach-at91/Kconfig           | 1 +
 arch/arm/mach-bcm283x/Kconfig        | 1 +
 arch/arm/mach-davinci/Kconfig        | 1 +
 arch/arm/mach-integrator/Kconfig     | 2 ++
 arch/arm/mach-keystone/Kconfig       | 1 +
 arch/arm/mach-kirkwood/Kconfig       | 1 +
 arch/arm/mach-nomadik/Kconfig        | 1 +
 arch/arm/mach-orion5x/Kconfig        | 1 +
 arch/arm/mach-socfpga/Kconfig        | 1 +
 arch/arm/mach-tegra/Kconfig          | 1 +
 arch/arm/mach-tegra/tegra114/Kconfig | 1 +
 arch/arm/mach-tegra/tegra124/Kconfig | 1 +
 arch/arm/mach-tegra/tegra20/Kconfig  | 1 +
 arch/arm/mach-tegra/tegra30/Kconfig  | 1 +
 arch/arm/mach-uniphier/Kconfig       | 1 +
 arch/arm/mach-zynq/Kconfig           | 1 +
 arch/avr32/Kconfig                   | 1 +
 arch/blackfin/Kconfig                | 1 +
 arch/m68k/Kconfig                    | 1 +
 arch/microblaze/Kconfig              | 1 +
 arch/mips/Kconfig                    | 1 +
 arch/nds32/Kconfig                   | 1 +
 arch/nios2/Kconfig                   | 1 +
 arch/openrisc/Kconfig                | 1 +
 arch/powerpc/Kconfig                 | 1 +
 arch/powerpc/cpu/mpc512x/Kconfig     | 1 +
 arch/powerpc/cpu/mpc5xx/Kconfig      | 1 +
 arch/powerpc/cpu/mpc5xxx/Kconfig     | 1 +
 arch/powerpc/cpu/mpc8260/Kconfig     | 1 +
 arch/powerpc/cpu/mpc83xx/Kconfig     | 1 +
 arch/powerpc/cpu/mpc85xx/Kconfig     | 1 +
 arch/powerpc/cpu/mpc86xx/Kconfig     | 1 +
 arch/powerpc/cpu/mpc8xx/Kconfig      | 1 +
 arch/powerpc/cpu/ppc4xx/Kconfig      | 1 +
 arch/sh/Kconfig                      | 1 +
 arch/sparc/Kconfig                   | 1 +
 board/amcc/canyonlands/Kconfig       | 1 +
 board/coreboot/Kconfig               | 1 +
 board/dbau1x00/Kconfig               | 1 +
 board/google/Kconfig                 | 1 +
 board/intel/Kconfig                  | 1 +
 board/micronas/vct/Kconfig           | 1 +
 board/seco/Kconfig                   | 2 ++
 board/sunxi/Kconfig                  | 1 +
 54 files changed, 56 insertions(+)

Comments

Stephen Warren May 12, 2015, 9:55 p.m. UTC | #1
On 05/12/2015 01:46 PM, Joe Hershberger wrote:
> By making the board selections optional, every defconfig will include
> the board selection when running savedefconfig so if a new board is
> added to the top of the list of choices the former top's defconfig will
> still be correct.

The series,
Acked-by: Stephen Warren <swarren@nvidia.com>
Joe Hershberger May 12, 2015, 10:06 p.m. UTC | #2
Hi Tom,

On Tue, May 12, 2015 at 4:55 PM, Stephen Warren <swarren@wwwdotorg.org> wrote:
> On 05/12/2015 01:46 PM, Joe Hershberger wrote:
>>
>> By making the board selections optional, every defconfig will include
>> the board selection when running savedefconfig so if a new board is
>> added to the top of the list of choices the former top's defconfig will
>> still be correct.
>
>
> The series,
> Acked-by: Stephen Warren <swarren@nvidia.com>

Please pull this in ASAP.

Thanks,
-Joe
Tom Rini May 12, 2015, 10:12 p.m. UTC | #3
On Tue, May 12, 2015 at 02:46:23PM -0500, Joe Hershberger wrote:

> By making the board selections optional, every defconfig will include
> the board selection when running savedefconfig so if a new board is
> added to the top of the list of choices the former top's defconfig will
> still be correct.
> 
> Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
> Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
> Acked-by: Stephen Warren <swarren@wwwdotorg.org>
> Cc: Tom Rini <trini@konsulko.com>
> 

Applied to u-boot/master, thanks!
Masahiro Yamada May 13, 2015, 1:11 a.m. UTC | #4
Hi Joe,

2015-05-13 7:12 GMT+09:00 Tom Rini <trini@konsulko.com>:

> diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
> index c044ad4..85fddd2 100644
> --- a/arch/arc/Kconfig
> +++ b/arch/arc/Kconfig
> @@ -132,6 +132,7 @@ config ARC_CACHE_LINE_SHIFT
>
>  choice
>         prompt "Target select"
> +       optional
>
>  config TARGET_DUMMY
>         bool "Dummy target"


You do not need to add "optional" to the ARC board select
because Alexey intentionally added TARGET_DUMMY
to the top of the board select list.

This is another solution to not lose any CONFIG_BOARD_
by savedefconfig although I personally prefer this idea very much.
Alexey Brodkin July 29, 2015, 5:25 p.m. UTC | #5
Hi Joe,

On Wed, 2015-05-13 at 10:11 +0900, Masahiro Yamada wrote:
> Hi Joe,
> 
> 2015-05-13 7:12 GMT+09:00 Tom Rini <trini@konsulko.com>:
> 
> > diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
> > index c044ad4..85fddd2 100644
> > --- a/arch/arc/Kconfig
> > +++ b/arch/arc/Kconfig
> > @@ -132,6 +132,7 @@ config ARC_CACHE_LINE_SHIFT
> > 
> >  choice
> >         prompt "Target select"
> > +       optional
> > 
> >  config TARGET_DUMMY
> >         bool "Dummy target"
> 
> 
> You do not need to add "optional" to the ARC board select
> because Alexey intentionally added TARGET_DUMMY
> to the top of the board select list.
> 
> This is another solution to not lose any CONFIG_BOARD_
> by savedefconfig although I personally prefer this idea very much.

Looks like I discover an issue that happens with that change.
If one attempts to do something like:
------------------>8------------------
"yes "" | make oldconfig" on defconfig
------------------>8------------------
(that trick is done by automated build frameworks like Buildroot that prefer to
not do "xxx_defconfig" explicitly, but modify that defconfig and later expand it
to a full-scale .config) target won't be set because on prompt you'll see
something like that:
------------------>8------------------
Target select [N/y] (NEW)
------------------>8------------------

See default answer here is No!
Which later on attempt to do a build causes:
------------------>8------------------
$ make
scripts/kconfig/conf --silentoldconfig Kconfig
#
# configuration written to .config
#
  CHK     include/config.h
  UPD     include/config.h
  GEN     include/autoconf.mk
In file included from ./include/common.h:18:0:
include/config.h:5:22: fatal error: configs/.h: No such file or directory
 #include <configs/.h>
                      ^
compilation terminated.
scripts/Makefile.autoconf:72: recipe for target 'include/autoconf.mk' failed
make[1]: *** [include/autoconf.mk] Error 1
------------------>8------------------

If "optional" is removed from "choice -> prompt "Target select"" then
target is selected by default and build runs smoothly.

Any thoughts on how to fix it?

-Alexey
Alexey Brodkin July 29, 2015, 5:32 p.m. UTC | #6
Hi Joe, Masahiro-san,

On Wed, 2015-07-29 at 20:25 +0300, Alexey Brodkin wrote:
> Hi Joe,
> 
> On Wed, 2015-05-13 at 10:11 +0900, Masahiro Yamada wrote:
> > Hi Joe,
> > 
> > 2015-05-13 7:12 GMT+09:00 Tom Rini <trini@konsulko.com>:
> > 
> > > diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
> > > index c044ad4..85fddd2 100644
> > > --- a/arch/arc/Kconfig
> > > +++ b/arch/arc/Kconfig
> > > @@ -132,6 +132,7 @@ config ARC_CACHE_LINE_SHIFT
> > > 
> > >  choice
> > >         prompt "Target select"
> > > +       optional
> > > 
> > >  config TARGET_DUMMY
> > >         bool "Dummy target"
> > 
> > 
> > You do not need to add "optional" to the ARC board select
> > because Alexey intentionally added TARGET_DUMMY
> > to the top of the board select list.
> > 
> > This is another solution to not lose any CONFIG_BOARD_
> > by savedefconfig although I personally prefer this idea very much.

It looks like I'm not the only one suffering from that change.
For UniPhier that issue was resolved by Masahiro with replacement of
"optional" with explicit default option.

And probably that's the way we'll need to go for all other affected
Kconfigs.

Still all proposals are more than welcome.

-Alexey
Masahiro Yamada Aug. 1, 2015, 7:46 a.m. UTC | #7
Hi Alexey,


2015-07-30 2:32 GMT+09:00 Alexey Brodkin <Alexey.Brodkin@synopsys.com>:
> Hi Joe, Masahiro-san,
>
> On Wed, 2015-07-29 at 20:25 +0300, Alexey Brodkin wrote:
>> Hi Joe,
>>
>> On Wed, 2015-05-13 at 10:11 +0900, Masahiro Yamada wrote:
>> > Hi Joe,
>> >
>> > 2015-05-13 7:12 GMT+09:00 Tom Rini <trini@konsulko.com>:
>> >
>> > > diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
>> > > index c044ad4..85fddd2 100644
>> > > --- a/arch/arc/Kconfig
>> > > +++ b/arch/arc/Kconfig
>> > > @@ -132,6 +132,7 @@ config ARC_CACHE_LINE_SHIFT
>> > >
>> > >  choice
>> > >         prompt "Target select"
>> > > +       optional
>> > >
>> > >  config TARGET_DUMMY
>> > >         bool "Dummy target"
>> >
>> >
>> > You do not need to add "optional" to the ARC board select
>> > because Alexey intentionally added TARGET_DUMMY
>> > to the top of the board select list.
>> >
>> > This is another solution to not lose any CONFIG_BOARD_
>> > by savedefconfig although I personally prefer this idea very much.
>
> It looks like I'm not the only one suffering from that change.
> For UniPhier that issue was resolved by Masahiro with replacement of
> "optional" with explicit default option.
>
> And probably that's the way we'll need to go for all other affected
> Kconfigs.
>
> Still all proposals are more than welcome.
>


Alexey, you are not alone.

I am also opposed to "optional"  in SoC/board select menu.

Maybe, we should choose a reasonable default in each select menu?
(or simply choose the first choice in the menu?)

I posted two patches:
http://patchwork.ozlabs.org/patch/502793/
http://patchwork.ozlabs.org/patch/502794/

I hope these two are not bad choice.
diff mbox

Patch

diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
index c044ad4..85fddd2 100644
--- a/arch/arc/Kconfig
+++ b/arch/arc/Kconfig
@@ -132,6 +132,7 @@  config ARC_CACHE_LINE_SHIFT
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_DUMMY
 	bool "Dummy target"
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index cee3126..1c7cf7f 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -64,6 +64,7 @@  config SEMIHOSTING
 
 choice
 	prompt "Target select"
+	optional
 
 config ARCH_AT91
 	bool "Atmel AT91"
diff --git a/arch/arm/cpu/armv7/exynos/Kconfig b/arch/arm/cpu/armv7/exynos/Kconfig
index f6084ac..c614425 100644
--- a/arch/arm/cpu/armv7/exynos/Kconfig
+++ b/arch/arm/cpu/armv7/exynos/Kconfig
@@ -2,6 +2,7 @@  if ARCH_EXYNOS
 
 choice
 	prompt "EXYNOS board select"
+	optional
 
 config TARGET_SMDKV310
 	select SUPPORT_SPL
diff --git a/arch/arm/cpu/armv7/mx5/Kconfig b/arch/arm/cpu/armv7/mx5/Kconfig
index 2d6c0ce..9f250c6 100644
--- a/arch/arm/cpu/armv7/mx5/Kconfig
+++ b/arch/arm/cpu/armv7/mx5/Kconfig
@@ -12,6 +12,7 @@  config MX53
 
 choice
 	prompt "MX5 board select"
+	optional
 
 config TARGET_USBARMORY
 	bool "Support USB armory"
diff --git a/arch/arm/cpu/armv7/mx6/Kconfig b/arch/arm/cpu/armv7/mx6/Kconfig
index 076ba52..1282be3 100644
--- a/arch/arm/cpu/armv7/mx6/Kconfig
+++ b/arch/arm/cpu/armv7/mx6/Kconfig
@@ -27,6 +27,7 @@  config MX6SX
 
 choice
 	prompt "MX6 board select"
+	optional
 
 config TARGET_SECOMX6
 	bool "Support secomx6 boards"
diff --git a/arch/arm/cpu/armv7/omap3/Kconfig b/arch/arm/cpu/armv7/omap3/Kconfig
index cc82c50..b32a6b0 100644
--- a/arch/arm/cpu/armv7/omap3/Kconfig
+++ b/arch/arm/cpu/armv7/omap3/Kconfig
@@ -2,6 +2,7 @@  if OMAP34XX
 
 choice
 	prompt "OMAP3 board select"
+	optional
 
 config TARGET_AM3517_EVM
 	bool "AM3517 EVM"
diff --git a/arch/arm/cpu/armv7/omap4/Kconfig b/arch/arm/cpu/armv7/omap4/Kconfig
index eccf897..df27ea1 100644
--- a/arch/arm/cpu/armv7/omap4/Kconfig
+++ b/arch/arm/cpu/armv7/omap4/Kconfig
@@ -2,6 +2,7 @@  if OMAP44XX
 
 choice
 	prompt "OMAP4 board select"
+	optional
 
 config TARGET_DUOVERO
 	bool "OMAP4430 Gumstix Duovero"
diff --git a/arch/arm/cpu/armv7/omap5/Kconfig b/arch/arm/cpu/armv7/omap5/Kconfig
index aca862d..20c3bd9 100644
--- a/arch/arm/cpu/armv7/omap5/Kconfig
+++ b/arch/arm/cpu/armv7/omap5/Kconfig
@@ -2,6 +2,7 @@  if OMAP54XX
 
 choice
 	prompt "OMAP5 board select"
+	optional
 
 config TARGET_CM_T54
 	bool "CompuLab CM-T54"
diff --git a/arch/arm/cpu/armv7/rmobile/Kconfig b/arch/arm/cpu/armv7/rmobile/Kconfig
index 57dccec..ae23078 100644
--- a/arch/arm/cpu/armv7/rmobile/Kconfig
+++ b/arch/arm/cpu/armv7/rmobile/Kconfig
@@ -2,6 +2,7 @@  if RMOBILE
 
 choice
 	prompt "Renesus ARM SoCs board select"
+	optional
 
 config TARGET_ARMADILLO_800EVA
 	bool "armadillo 800 eva board"
diff --git a/arch/arm/cpu/armv7/s5pc1xx/Kconfig b/arch/arm/cpu/armv7/s5pc1xx/Kconfig
index bc73813..04acdaa 100644
--- a/arch/arm/cpu/armv7/s5pc1xx/Kconfig
+++ b/arch/arm/cpu/armv7/s5pc1xx/Kconfig
@@ -2,6 +2,7 @@  if ARCH_S5PC1XX
 
 choice
 	prompt "S5PC1XX board select"
+	optional
 
 config TARGET_S5P_GONI
 	bool "S5P Goni board"
diff --git a/arch/arm/mach-at91/Kconfig b/arch/arm/mach-at91/Kconfig
index b660a5b..7dfa520 100644
--- a/arch/arm/mach-at91/Kconfig
+++ b/arch/arm/mach-at91/Kconfig
@@ -2,6 +2,7 @@  if ARCH_AT91
 
 choice
 	prompt "Atmel AT91 board select"
+	optional
 
 config TARGET_AT91RM9200EK
 	bool "Atmel AT91RM9200 evaluation kit"
diff --git a/arch/arm/mach-bcm283x/Kconfig b/arch/arm/mach-bcm283x/Kconfig
index c740180..99779df 100644
--- a/arch/arm/mach-bcm283x/Kconfig
+++ b/arch/arm/mach-bcm283x/Kconfig
@@ -3,6 +3,7 @@  menu "Broadcom BCM283X family"
 
 choice
 	prompt "Broadcom BCM283X board select"
+	optional
 
 config TARGET_RPI
 	bool "Raspberry Pi"
diff --git a/arch/arm/mach-davinci/Kconfig b/arch/arm/mach-davinci/Kconfig
index 3ef55d3..e6cb390 100644
--- a/arch/arm/mach-davinci/Kconfig
+++ b/arch/arm/mach-davinci/Kconfig
@@ -2,6 +2,7 @@  if ARCH_DAVINCI
 
 choice
 	prompt "DaVinci board select"
+	optional
 
 config TARGET_ENBW_CMC
 	bool "EnBW CMC board"
diff --git a/arch/arm/mach-integrator/Kconfig b/arch/arm/mach-integrator/Kconfig
index 8ffc544..c54d69d 100644
--- a/arch/arm/mach-integrator/Kconfig
+++ b/arch/arm/mach-integrator/Kconfig
@@ -3,6 +3,7 @@  menu "Integrator Options"
 
 choice
 	prompt "Integrator platform select"
+	optional
 
 config ARCH_INTEGRATOR_AP
 	bool "Support Integrator/AP platform"
@@ -18,6 +19,7 @@  config ARCH_CINTEGRATOR
 
 choice
 	prompt "Integrator core module select"
+	optional
 
 config CM720T
 	bool "Core Module for ARM720T"
diff --git a/arch/arm/mach-keystone/Kconfig b/arch/arm/mach-keystone/Kconfig
index 134ae87..67f1a33 100644
--- a/arch/arm/mach-keystone/Kconfig
+++ b/arch/arm/mach-keystone/Kconfig
@@ -2,6 +2,7 @@  if ARCH_KEYSTONE
 
 choice
 	prompt "TI Keystone board select"
+	optional
 
 config TARGET_K2HK_EVM
 	bool "TI Keystone 2 Kepler/Hawking EVM"
diff --git a/arch/arm/mach-kirkwood/Kconfig b/arch/arm/mach-kirkwood/Kconfig
index 45c6687..1261885 100644
--- a/arch/arm/mach-kirkwood/Kconfig
+++ b/arch/arm/mach-kirkwood/Kconfig
@@ -2,6 +2,7 @@  if KIRKWOOD
 
 choice
 	prompt "Marvell Kirkwood board select"
+	optional
 
 config TARGET_OPENRD
 	bool "Marvell OpenRD Board"
diff --git a/arch/arm/mach-nomadik/Kconfig b/arch/arm/mach-nomadik/Kconfig
index 265f336..ba72a41 100644
--- a/arch/arm/mach-nomadik/Kconfig
+++ b/arch/arm/mach-nomadik/Kconfig
@@ -2,6 +2,7 @@  if ARCH_NOMADIK
 
 choice
 	prompt "Nomadik board select"
+	optional
 
 config NOMADIK_NHK8815
 	bool "ST 8815 Nomadik Hardware Kit"
diff --git a/arch/arm/mach-orion5x/Kconfig b/arch/arm/mach-orion5x/Kconfig
index 291c511..7644b8d 100644
--- a/arch/arm/mach-orion5x/Kconfig
+++ b/arch/arm/mach-orion5x/Kconfig
@@ -2,6 +2,7 @@  if ORION5X
 
 choice
 	prompt "Marvell Orion board select"
+	optional
 
 config TARGET_EDMINIV2
 	bool "LaCie Ethernet Disk mini V2"
diff --git a/arch/arm/mach-socfpga/Kconfig b/arch/arm/mach-socfpga/Kconfig
index 204efca..e46c348 100644
--- a/arch/arm/mach-socfpga/Kconfig
+++ b/arch/arm/mach-socfpga/Kconfig
@@ -2,6 +2,7 @@  if ARCH_SOCFPGA
 
 choice
 	prompt "Altera SOCFPGA board select"
+	optional
 
 config TARGET_SOCFPGA_ARRIA5
 	bool "Altera SOCFPGA Arria V"
diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
index 8bab594..9b42871 100644
--- a/arch/arm/mach-tegra/Kconfig
+++ b/arch/arm/mach-tegra/Kconfig
@@ -2,6 +2,7 @@  if TEGRA
 
 choice
 	prompt "Tegra SoC select"
+	optional
 
 config TEGRA20
 	bool "Tegra20 family"
diff --git a/arch/arm/mach-tegra/tegra114/Kconfig b/arch/arm/mach-tegra/tegra114/Kconfig
index 31012bc..1047b92 100644
--- a/arch/arm/mach-tegra/tegra114/Kconfig
+++ b/arch/arm/mach-tegra/tegra114/Kconfig
@@ -2,6 +2,7 @@  if TEGRA114
 
 choice
 	prompt "Tegra114 board select"
+	optional
 
 config TARGET_DALMORE
 	bool "NVIDIA Tegra114 Dalmore evaluation board"
diff --git a/arch/arm/mach-tegra/tegra124/Kconfig b/arch/arm/mach-tegra/tegra124/Kconfig
index 88f627c..36bb636 100644
--- a/arch/arm/mach-tegra/tegra124/Kconfig
+++ b/arch/arm/mach-tegra/tegra124/Kconfig
@@ -2,6 +2,7 @@  if TEGRA124
 
 choice
 	prompt "Tegra124 board select"
+	optional
 
 config TARGET_JETSON_TK1
 	bool "NVIDIA Tegra124 Jetson TK1 board"
diff --git a/arch/arm/mach-tegra/tegra20/Kconfig b/arch/arm/mach-tegra/tegra20/Kconfig
index 7f09f81..1bb8dff 100644
--- a/arch/arm/mach-tegra/tegra20/Kconfig
+++ b/arch/arm/mach-tegra/tegra20/Kconfig
@@ -2,6 +2,7 @@  if TEGRA20
 
 choice
 	prompt "Tegra20 board select"
+	optional
 
 config TARGET_HARMONY
 	bool "NVIDIA Tegra20 Harmony evaluation board"
diff --git a/arch/arm/mach-tegra/tegra30/Kconfig b/arch/arm/mach-tegra/tegra30/Kconfig
index 3abdc7b..e78331e 100644
--- a/arch/arm/mach-tegra/tegra30/Kconfig
+++ b/arch/arm/mach-tegra/tegra30/Kconfig
@@ -2,6 +2,7 @@  if TEGRA30
 
 choice
 	prompt "Tegra30 board select"
+	optional
 
 config TARGET_APALIS_T30
 	bool "Toradex Apalis T30 board"
diff --git a/arch/arm/mach-uniphier/Kconfig b/arch/arm/mach-uniphier/Kconfig
index 288e6ab..2d27c49 100644
--- a/arch/arm/mach-uniphier/Kconfig
+++ b/arch/arm/mach-uniphier/Kconfig
@@ -9,6 +9,7 @@  config UNIPHIER_SMP
 
 choice
 	prompt "UniPhier SoC select"
+	optional
 
 config MACH_PH1_PRO4
 	bool "PH1-Pro4"
diff --git a/arch/arm/mach-zynq/Kconfig b/arch/arm/mach-zynq/Kconfig
index 1046ece..483c3a0 100644
--- a/arch/arm/mach-zynq/Kconfig
+++ b/arch/arm/mach-zynq/Kconfig
@@ -2,6 +2,7 @@  if ARCH_ZYNQ
 
 choice
 	prompt "Xilinx Zynq board select"
+	optional
 
 config TARGET_ZYNQ_ZED
 	bool "Zynq ZedBoard"
diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
index 66de2ad..c69654c 100644
--- a/arch/avr32/Kconfig
+++ b/arch/avr32/Kconfig
@@ -6,6 +6,7 @@  config SYS_ARCH
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_ATNGW100
 	bool "Support atngw100"
diff --git a/arch/blackfin/Kconfig b/arch/blackfin/Kconfig
index 31913fe..0a2fb4d 100644
--- a/arch/blackfin/Kconfig
+++ b/arch/blackfin/Kconfig
@@ -6,6 +6,7 @@  config SYS_ARCH
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_BCT_BRETTL2
 	bool "Support bct-brettl2"
diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig
index 69cb0f7..26509b7 100644
--- a/arch/m68k/Kconfig
+++ b/arch/m68k/Kconfig
@@ -114,6 +114,7 @@  config M548x
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_M52277EVB
 	bool "Support M52277EVB"
diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
index 6f419f0..077b2a7 100644
--- a/arch/microblaze/Kconfig
+++ b/arch/microblaze/Kconfig
@@ -6,6 +6,7 @@  config SYS_ARCH
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_MICROBLAZE_GENERIC
 	bool "Support microblaze-generic"
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index b0a8a43..feb2f68 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -13,6 +13,7 @@  config USE_PRIVATE_LIBGCC
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_QEMU_MIPS
 	bool "Support qemu-mips"
diff --git a/arch/nds32/Kconfig b/arch/nds32/Kconfig
index 81b0a01..98b0282 100644
--- a/arch/nds32/Kconfig
+++ b/arch/nds32/Kconfig
@@ -6,6 +6,7 @@  config SYS_ARCH
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_ADP_AG101
 	bool "Support adp-ag101"
diff --git a/arch/nios2/Kconfig b/arch/nios2/Kconfig
index b3be7b5..8ae7f6e 100644
--- a/arch/nios2/Kconfig
+++ b/arch/nios2/Kconfig
@@ -6,6 +6,7 @@  config SYS_ARCH
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_NIOS2_GENERIC
 	bool "Support nios2-generic"
diff --git a/arch/openrisc/Kconfig b/arch/openrisc/Kconfig
index 4d62b4c..11014d1 100644
--- a/arch/openrisc/Kconfig
+++ b/arch/openrisc/Kconfig
@@ -6,6 +6,7 @@  config SYS_ARCH
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_OPENRISC_GENERIC
 	bool "Support openrisc-generic"
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 8e5a3e2..3b3f446 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -6,6 +6,7 @@  config SYS_ARCH
 
 choice
 	prompt "CPU select"
+	optional
 
 config MPC512X
 	bool "MPC512X"
diff --git a/arch/powerpc/cpu/mpc512x/Kconfig b/arch/powerpc/cpu/mpc512x/Kconfig
index a0f0ede..53450ae 100644
--- a/arch/powerpc/cpu/mpc512x/Kconfig
+++ b/arch/powerpc/cpu/mpc512x/Kconfig
@@ -6,6 +6,7 @@  config SYS_CPU
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_PDM360NG
 	bool "Support pdm360ng"
diff --git a/arch/powerpc/cpu/mpc5xx/Kconfig b/arch/powerpc/cpu/mpc5xx/Kconfig
index aad4a7c..5275447 100644
--- a/arch/powerpc/cpu/mpc5xx/Kconfig
+++ b/arch/powerpc/cpu/mpc5xx/Kconfig
@@ -6,6 +6,7 @@  config SYS_CPU
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_CMI_MPC5XX
 	bool "Support cmi_mpc5xx"
diff --git a/arch/powerpc/cpu/mpc5xxx/Kconfig b/arch/powerpc/cpu/mpc5xxx/Kconfig
index eec9d7d..5d49228 100644
--- a/arch/powerpc/cpu/mpc5xxx/Kconfig
+++ b/arch/powerpc/cpu/mpc5xxx/Kconfig
@@ -6,6 +6,7 @@  config SYS_CPU
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_A3M071
 	bool "Support a3m071"
diff --git a/arch/powerpc/cpu/mpc8260/Kconfig b/arch/powerpc/cpu/mpc8260/Kconfig
index 55941c8..e93732d 100644
--- a/arch/powerpc/cpu/mpc8260/Kconfig
+++ b/arch/powerpc/cpu/mpc8260/Kconfig
@@ -6,6 +6,7 @@  config SYS_CPU
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_KM82XX
 	bool "Support km82xx"
diff --git a/arch/powerpc/cpu/mpc83xx/Kconfig b/arch/powerpc/cpu/mpc83xx/Kconfig
index 88a3bd6..3fb901f 100644
--- a/arch/powerpc/cpu/mpc83xx/Kconfig
+++ b/arch/powerpc/cpu/mpc83xx/Kconfig
@@ -6,6 +6,7 @@  config SYS_CPU
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_MPC8308_P1M
 	bool "Support mpc8308_p1m"
diff --git a/arch/powerpc/cpu/mpc85xx/Kconfig b/arch/powerpc/cpu/mpc85xx/Kconfig
index aff5fdb..3e8d0b1 100644
--- a/arch/powerpc/cpu/mpc85xx/Kconfig
+++ b/arch/powerpc/cpu/mpc85xx/Kconfig
@@ -6,6 +6,7 @@  config SYS_CPU
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_SBC8548
 	bool "Support sbc8548"
diff --git a/arch/powerpc/cpu/mpc86xx/Kconfig b/arch/powerpc/cpu/mpc86xx/Kconfig
index 14e8b1a..fe1859d 100644
--- a/arch/powerpc/cpu/mpc86xx/Kconfig
+++ b/arch/powerpc/cpu/mpc86xx/Kconfig
@@ -6,6 +6,7 @@  config SYS_CPU
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_SBC8641D
 	bool "Support sbc8641d"
diff --git a/arch/powerpc/cpu/mpc8xx/Kconfig b/arch/powerpc/cpu/mpc8xx/Kconfig
index e8bcbe9..79cee35 100644
--- a/arch/powerpc/cpu/mpc8xx/Kconfig
+++ b/arch/powerpc/cpu/mpc8xx/Kconfig
@@ -6,6 +6,7 @@  config SYS_CPU
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_TQM823L
 	bool "Support TQM823L"
diff --git a/arch/powerpc/cpu/ppc4xx/Kconfig b/arch/powerpc/cpu/ppc4xx/Kconfig
index 4d5954a..10b86e0 100644
--- a/arch/powerpc/cpu/ppc4xx/Kconfig
+++ b/arch/powerpc/cpu/ppc4xx/Kconfig
@@ -6,6 +6,7 @@  config SYS_CPU
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_CSB272
 	bool "Support csb272"
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index 2128f23..2f7a2fe 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -29,6 +29,7 @@  config SH_32BIT
 
 choice
 	prompt "Target select"
+	optional
 
 config TARGET_RSK7203
 	bool "RSK+ 7203"
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
index 2df09b2..04dc08f 100644
--- a/arch/sparc/Kconfig
+++ b/arch/sparc/Kconfig
@@ -14,6 +14,7 @@  config LEON3
 
 choice
 	prompt "Board select"
+	optional
 
 config TARGET_GRSIM_LEON2
 	bool "GRSIM simulating a LEON2 board"
diff --git a/board/amcc/canyonlands/Kconfig b/board/amcc/canyonlands/Kconfig
index ef66ad4..a655dbc 100644
--- a/board/amcc/canyonlands/Kconfig
+++ b/board/amcc/canyonlands/Kconfig
@@ -11,6 +11,7 @@  config SYS_CONFIG_NAME
 
 choice BOARD_TYPE
 	prompt "Select which board to build for"
+	optional
 
 config CANYONLANDS
 	bool "Glacier"
diff --git a/board/coreboot/Kconfig b/board/coreboot/Kconfig
index dc9b70f..ede6065 100644
--- a/board/coreboot/Kconfig
+++ b/board/coreboot/Kconfig
@@ -8,6 +8,7 @@  if VENDOR_COREBOOT
 
 choice
 	prompt "Mainboard model"
+	optional
 
 config TARGET_COREBOOT
 	bool "coreboot"
diff --git a/board/dbau1x00/Kconfig b/board/dbau1x00/Kconfig
index 1286e45..b813adb 100644
--- a/board/dbau1x00/Kconfig
+++ b/board/dbau1x00/Kconfig
@@ -13,6 +13,7 @@  menu "dbau1x00 board options"
 
 choice
 	prompt "Select au1x00 SoC type"
+	optional
 
 config DBAU1100
 	bool "Select AU1100"
diff --git a/board/google/Kconfig b/board/google/Kconfig
index 302f68e..e9559c9 100644
--- a/board/google/Kconfig
+++ b/board/google/Kconfig
@@ -8,6 +8,7 @@  if VENDOR_GOOGLE
 
 choice
 	prompt "Mainboard model"
+	optional
 
 config TARGET_CHROMEBOOK_LINK
 	bool "Chromebook link"
diff --git a/board/intel/Kconfig b/board/intel/Kconfig
index 7fe21b9..3d9ecf0 100644
--- a/board/intel/Kconfig
+++ b/board/intel/Kconfig
@@ -8,6 +8,7 @@  if VENDOR_INTEL
 
 choice
 	prompt "Mainboard model"
+	optional
 
 config TARGET_CROWNBAY
 	bool "Crown Bay"
diff --git a/board/micronas/vct/Kconfig b/board/micronas/vct/Kconfig
index 288a1ae..c518079 100644
--- a/board/micronas/vct/Kconfig
+++ b/board/micronas/vct/Kconfig
@@ -13,6 +13,7 @@  menu "vct board options"
 
 choice
 	prompt "Board variant"
+	optional
 
 config VCT_PLATINUM
 	bool "Enable VCT_PLATINUM"
diff --git a/board/seco/Kconfig b/board/seco/Kconfig
index dcb1ac8..af16697 100644
--- a/board/seco/Kconfig
+++ b/board/seco/Kconfig
@@ -2,6 +2,7 @@  if TARGET_SECOMX6
 
 choice
 	prompt "SECO i.MX6 Board variant"
+	optional
 
 config SECOMX6_Q7
 	bool "Q7"
@@ -16,6 +17,7 @@  endchoice
 
 choice
 	prompt "SECO i.MX6 SoC variant"
+	optional
 
 config SECOMX6Q
 	bool "i.MX6Q"
diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig
index a60d028..c60c81d 100644
--- a/board/sunxi/Kconfig
+++ b/board/sunxi/Kconfig
@@ -18,6 +18,7 @@  config SUNXI_GEN_SUN6I
 
 choice
 	prompt "Sunxi SoC Variant"
+	optional
 
 config MACH_SUN4I
 	bool "sun4i (Allwinner A10)"