Makefile: print warning if CONFIG_SYS_EXTRA_OPTIONS is used

Message ID 1487399094-4811-1-git-send-email-yamada.masahiro@socionext.com
State New
Headers show

Commit Message

Masahiro Yamada Feb. 18, 2017, 6:24 a.m.
The prompt of this option is marked "DEPRECATED" in capital letters,
and its help clearly says:
  This option was prepared for the smooth migration from the old
  configuration to Kconfig. Since this option will be removed sometime,
  new boards should not use this option.

However, we have had almost no progress on this.  In fact, this
option is often abused for fresh porting, and more and more new
defconfigs with it are coming in (for example, SUNXI boards).

We introduced scripts/check-config.sh to ban new legacy options.
We need something forcible for the migration.  Here it is.

If CONFIG_SYS_EXTRA_OPTIONS is used, a prompt for the conversion is
displayed at the end of the build.  The action needed is simple;
instead of CONFIG_SYS_EXTRA_OPTIONS="FOO,BAR", please create primary
entries for CONFIG_FOO and CONFIG_BAR in Kconfig.  If no action is
taken, the board will be removed after the v2017.05 release.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

---

 Makefile | 7 +++++++
 1 file changed, 7 insertions(+)

-- 
2.7.4

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Comments

Maxime Ripard Feb. 21, 2017, 11:16 p.m. | #1
On Sat, Feb 18, 2017 at 03:24:53PM +0900, Masahiro Yamada wrote:
> The prompt of this option is marked "DEPRECATED" in capital letters,

> and its help clearly says:

>   This option was prepared for the smooth migration from the old

>   configuration to Kconfig. Since this option will be removed sometime,

>   new boards should not use this option.

> 

> However, we have had almost no progress on this.  In fact, this

> option is often abused for fresh porting, and more and more new

> defconfigs with it are coming in (for example, SUNXI boards).


That's not entirely true. We've added more defconfig, but with the
same set of options we've always had, and are shared by everyone
(CONS_INDEX, RGMII).

So this patch, in effect, gives the signal that it's better to have a
proliferation of board-specific headers in include/configs, over using
SYS_EXTRA until most of the generic functions are merged?

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
Masahiro Yamada Feb. 22, 2017, 2:53 a.m. | #2
2017-02-22 8:16 GMT+09:00 Maxime Ripard <maxime.ripard@free-electrons.com>:
> On Sat, Feb 18, 2017 at 03:24:53PM +0900, Masahiro Yamada wrote:

>> The prompt of this option is marked "DEPRECATED" in capital letters,

>> and its help clearly says:

>>   This option was prepared for the smooth migration from the old

>>   configuration to Kconfig. Since this option will be removed sometime,

>>   new boards should not use this option.

>>

>> However, we have had almost no progress on this.  In fact, this

>> option is often abused for fresh porting, and more and more new

>> defconfigs with it are coming in (for example, SUNXI boards).

>

> That's not entirely true. We've added more defconfig, but with the

> same set of options we've always had, and are shared by everyone

> (CONS_INDEX, RGMII).

>

> So this patch, in effect, gives the signal that it's better to have a

> proliferation of board-specific headers in include/configs, over using

> SYS_EXTRA until most of the generic functions are merged?


No.

I am saying to add
CONFIG_CONS_INDEX=2
CONFIG_RGMII=y

instead of

CONFIG_SYS_EXTRA_OPTIONS=CONS_INDEX=2,RGMII"


Why proliferation of board-specific headers?




-- 
Best Regards
Masahiro Yamada
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
Simon Glass Feb. 22, 2017, 3:58 a.m. | #3
Hi,

On 21 February 2017 at 16:16, Maxime Ripard
<maxime.ripard@free-electrons.com> wrote:
> On Sat, Feb 18, 2017 at 03:24:53PM +0900, Masahiro Yamada wrote:

>> The prompt of this option is marked "DEPRECATED" in capital letters,

>> and its help clearly says:

>>   This option was prepared for the smooth migration from the old

>>   configuration to Kconfig. Since this option will be removed sometime,

>>   new boards should not use this option.

>>

>> However, we have had almost no progress on this.  In fact, this

>> option is often abused for fresh porting, and more and more new

>> defconfigs with it are coming in (for example, SUNXI boards).

>

> That's not entirely true. We've added more defconfig, but with the

> same set of options we've always had, and are shared by everyone

> (CONS_INDEX, RGMII).

>

> So this patch, in effect, gives the signal that it's better to have a

> proliferation of board-specific headers in include/configs, over using

> SYS_EXTRA until most of the generic functions are merged?


I suppose whoever adds the next board gets to do the conversion?

This patch is a step forward. But how about adding a build error
whenever a non-whitelisted board defines CONFIG_SYS_EXTRA?

Regards,
Simon
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
Tom Rini Feb. 22, 2017, 4:23 p.m. | #4
On Wed, Feb 22, 2017 at 11:53:05AM +0900, Masahiro Yamada wrote:
> 2017-02-22 8:16 GMT+09:00 Maxime Ripard <maxime.ripard@free-electrons.com>:

> > On Sat, Feb 18, 2017 at 03:24:53PM +0900, Masahiro Yamada wrote:

> >> The prompt of this option is marked "DEPRECATED" in capital letters,

> >> and its help clearly says:

> >>   This option was prepared for the smooth migration from the old

> >>   configuration to Kconfig. Since this option will be removed sometime,

> >>   new boards should not use this option.

> >>

> >> However, we have had almost no progress on this.  In fact, this

> >> option is often abused for fresh porting, and more and more new

> >> defconfigs with it are coming in (for example, SUNXI boards).

> >

> > That's not entirely true. We've added more defconfig, but with the

> > same set of options we've always had, and are shared by everyone

> > (CONS_INDEX, RGMII).

> >

> > So this patch, in effect, gives the signal that it's better to have a

> > proliferation of board-specific headers in include/configs, over using

> > SYS_EXTRA until most of the generic functions are merged?

> 

> No.

> 

> I am saying to add

> CONFIG_CONS_INDEX=2

> CONFIG_RGMII=y

> 

> instead of

> 

> CONFIG_SYS_EXTRA_OPTIONS=CONS_INDEX=2,RGMII"

> 

> 

> Why proliferation of board-specific headers?


The issue here is that we have a handful of options that need converting
still, and are not "easy".  For CONS_INDEX we need to find the right
generic location for this to be and migrate, and remove the few
instances of board-centric versions of the question.

I agree with the sentiment of the original patch but I want to see how
many of the current options can be knocked out easily.  WRT sunxi, I
posted moving two of them, and RGMII will happen as part of the general
move of all of the network drivers over.

SATAPWR and MACPWR will take a little more thinking on, to figure out.
Do these values exist within the normal device tree in some way already
for example?  Thanks!

-- 
Tom
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
Maxime Ripard Feb. 22, 2017, 11:22 p.m. | #5
On Wed, Feb 22, 2017 at 11:23:56AM -0500, Tom Rini wrote:
> On Wed, Feb 22, 2017 at 11:53:05AM +0900, Masahiro Yamada wrote:

> > 2017-02-22 8:16 GMT+09:00 Maxime Ripard <maxime.ripard@free-electrons.com>:

> > > On Sat, Feb 18, 2017 at 03:24:53PM +0900, Masahiro Yamada wrote:

> > >> The prompt of this option is marked "DEPRECATED" in capital letters,

> > >> and its help clearly says:

> > >>   This option was prepared for the smooth migration from the old

> > >>   configuration to Kconfig. Since this option will be removed sometime,

> > >>   new boards should not use this option.

> > >>

> > >> However, we have had almost no progress on this.  In fact, this

> > >> option is often abused for fresh porting, and more and more new

> > >> defconfigs with it are coming in (for example, SUNXI boards).

> > >

> > > That's not entirely true. We've added more defconfig, but with the

> > > same set of options we've always had, and are shared by everyone

> > > (CONS_INDEX, RGMII).

> > >

> > > So this patch, in effect, gives the signal that it's better to have a

> > > proliferation of board-specific headers in include/configs, over using

> > > SYS_EXTRA until most of the generic functions are merged?

> > 

> > No.

> > 

> > I am saying to add

> > CONFIG_CONS_INDEX=2

> > CONFIG_RGMII=y

> > 

> > instead of

> > 

> > CONFIG_SYS_EXTRA_OPTIONS=CONS_INDEX=2,RGMII"

> > 

> > 

> > Why proliferation of board-specific headers?

> 

> The issue here is that we have a handful of options that need converting

> still, and are not "easy".  For CONS_INDEX we need to find the right

> generic location for this to be and migrate, and remove the few

> instances of board-centric versions of the question.

> 

> I agree with the sentiment of the original patch but I want to see how

> many of the current options can be knocked out easily.  WRT sunxi, I

> posted moving two of them, and RGMII will happen as part of the general

> move of all of the network drivers over.

> 

> SATAPWR and MACPWR will take a little more thinking on, to figure out.

> Do these values exist within the normal device tree in some way already

> for example?  Thanks!


They do, but through intermediate regulators, and I'm not sure that's
supported right now. An easier fix would be to simply move those
options as strings to Kconfig, and call sunxi_name_to_gpio on those.

Mylene started to work on it afaik, I added her in Cc.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
Maxime Ripard Feb. 22, 2017, 11:24 p.m. | #6
On Wed, Feb 22, 2017 at 11:53:05AM +0900, Masahiro Yamada wrote:
> 2017-02-22 8:16 GMT+09:00 Maxime Ripard <maxime.ripard@free-electrons.com>:

> > On Sat, Feb 18, 2017 at 03:24:53PM +0900, Masahiro Yamada wrote:

> >> The prompt of this option is marked "DEPRECATED" in capital letters,

> >> and its help clearly says:

> >>   This option was prepared for the smooth migration from the old

> >>   configuration to Kconfig. Since this option will be removed sometime,

> >>   new boards should not use this option.

> >>

> >> However, we have had almost no progress on this.  In fact, this

> >> option is often abused for fresh porting, and more and more new

> >> defconfigs with it are coming in (for example, SUNXI boards).

> >

> > That's not entirely true. We've added more defconfig, but with the

> > same set of options we've always had, and are shared by everyone

> > (CONS_INDEX, RGMII).

> >

> > So this patch, in effect, gives the signal that it's better to have a

> > proliferation of board-specific headers in include/configs, over using

> > SYS_EXTRA until most of the generic functions are merged?

> 

> No.

> 

> I am saying to add

> CONFIG_CONS_INDEX=2

> CONFIG_RGMII=y

> 

> instead of

> 

> CONFIG_SYS_EXTRA_OPTIONS=CONS_INDEX=2,RGMII"

> 

> Why proliferation of board-specific headers?


Because of all the other platforms that would need to be migrated in
the process.

If what you suggest is just to remove all the defconfig that have that
kind of option, I'll just move to what everyone else does: have it in
my header. Because that's just the path of least resistance.

But that just seems counter-productive.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
Maxime Ripard Feb. 22, 2017, 11:26 p.m. | #7
On Tue, Feb 21, 2017 at 08:58:55PM -0700, Simon Glass wrote:
> Hi,

> 

> On 21 February 2017 at 16:16, Maxime Ripard

> <maxime.ripard@free-electrons.com> wrote:

> > On Sat, Feb 18, 2017 at 03:24:53PM +0900, Masahiro Yamada wrote:

> >> The prompt of this option is marked "DEPRECATED" in capital letters,

> >> and its help clearly says:

> >>   This option was prepared for the smooth migration from the old

> >>   configuration to Kconfig. Since this option will be removed sometime,

> >>   new boards should not use this option.

> >>

> >> However, we have had almost no progress on this.  In fact, this

> >> option is often abused for fresh porting, and more and more new

> >> defconfigs with it are coming in (for example, SUNXI boards).

> >

> > That's not entirely true. We've added more defconfig, but with the

> > same set of options we've always had, and are shared by everyone

> > (CONS_INDEX, RGMII).

> >

> > So this patch, in effect, gives the signal that it's better to have a

> > proliferation of board-specific headers in include/configs, over using

> > SYS_EXTRA until most of the generic functions are merged?

> 

> I suppose whoever adds the next board gets to do the conversion?


That seems a bit unfair to ask someone that barely got into U-Boot to
enable his new shiny sunxi board to convert the old Freescale's PPC
defconfig in the process.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot
Tom Rini Feb. 23, 2017, 3:25 p.m. | #8
On Wed, Feb 22, 2017 at 03:26:01PM -0800, Maxime Ripard wrote:
> On Tue, Feb 21, 2017 at 08:58:55PM -0700, Simon Glass wrote:

> > Hi,

> > 

> > On 21 February 2017 at 16:16, Maxime Ripard

> > <maxime.ripard@free-electrons.com> wrote:

> > > On Sat, Feb 18, 2017 at 03:24:53PM +0900, Masahiro Yamada wrote:

> > >> The prompt of this option is marked "DEPRECATED" in capital letters,

> > >> and its help clearly says:

> > >>   This option was prepared for the smooth migration from the old

> > >>   configuration to Kconfig. Since this option will be removed sometime,

> > >>   new boards should not use this option.

> > >>

> > >> However, we have had almost no progress on this.  In fact, this

> > >> option is often abused for fresh porting, and more and more new

> > >> defconfigs with it are coming in (for example, SUNXI boards).

> > >

> > > That's not entirely true. We've added more defconfig, but with the

> > > same set of options we've always had, and are shared by everyone

> > > (CONS_INDEX, RGMII).

> > >

> > > So this patch, in effect, gives the signal that it's better to have a

> > > proliferation of board-specific headers in include/configs, over using

> > > SYS_EXTRA until most of the generic functions are merged?

> > 

> > I suppose whoever adds the next board gets to do the conversion?

> 

> That seems a bit unfair to ask someone that barely got into U-Boot to

> enable his new shiny sunxi board to convert the old Freescale's PPC

> defconfig in the process.


Well, yes and no.  Some of the options that need migrating (say
CONFIG_NAND) are a PITA, and no, we aren't asking for that.

Drilling down to the sunxi case for a moment, the SYS_EXTRA_OPTIONS that
get set are almost entirely sunxi centric (CONFIG_RGMII is used in some
atmel cases) so converting those is I feel an appropriate ask.

Getting back up to the high level question, if someone makes an effort
to write the Kconfig logic for an option and tries to get the depends
logic correct (after looking at how all the various cases of it go), I'm
happy to pick it up and do the last part of migrating all of the configs
and size-checking for correctness.

-- 
Tom
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Patch

diff --git a/Makefile b/Makefile
index 38b42da..886ebc3 100644
--- a/Makefile
+++ b/Makefile
@@ -848,6 +848,13 @@  ifeq ($(CONFIG_DM_I2C_COMPAT)$(CONFIG_SANDBOX),y)
 	@echo "before sending patches to the mailing list."
 	@echo "===================================================="
 endif
+ifneq ($(CONFIG_SYS_EXTRA_OPTIONS),"")
+	@echo "===================== WARNING ========================="
+	@echo "CONFIG_SYS_EXTRA_OPTIONS is deprecated.  Please create"
+	@echo "primary entries in Kconfig.  Otherwise, this board will"
+	@echo "be removed after v2017.05 release."
+	@echo "======================================================="
+endif
 	@# Check that this build does not use CONFIG options that we do not
 	@# know about unless they are in Kconfig. All the existing CONFIG
 	@# options are whitelisted, so new ones should not be added.