Message ID | 20200325134700.2014210-1-lusus@denx.de |
---|---|
State | New |
Headers | show |
Series | [RFC,1/1] Makefile: Expand legacy (non-DM) driver warnings | expand |
Hi Niel, On Wed, 25 Mar 2020 at 07:47, Niel Fourie <lusus at denx.de> wrote: > > Expand warnings printed by Makefile after compile when legacy > drivers are in use. These include: > > - CONFIG_HAVE_BLOCK_DEVICE without CONFIG_BLK > - CONFIG_BOOTCOUNT_LIMIT without CONFIG_DM_BOOTCOUNT > - CONFIG_MTD without CONFIG_DM_MTD > - CONFIG_PHYLIB without CONFIG_DM_MDIO > - CONFIG_POWER, also without CONFIG_DM_PMIC > - Absence of CONFIG_RAM and CONFIG_SPL_RAM > > Also replaced existing CONFIG_DM_SPI warning for consistency. > Removed CONFIG_BLK requirement for CONFIG_DM_USB, as all USB > devices not block devices. > > Signed-off-by: Niel Fourie <lusus at denx.de> > Cc: Simon Glass <sjg at chromium.org> > --- > Makefile | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++----- > 1 file changed, 67 insertions(+), 6 deletions(-) Could we add instructions on what should be done? It seems a little unclear to me. Regards, Simon
Hi Simon On 3/28/20 9:05 PM, Simon Glass wrote: > Hi Niel, > > On Wed, 25 Mar 2020 at 07:47, Niel Fourie <lusus at denx.de> wrote: >> >> Expand warnings printed by Makefile after compile when legacy >> drivers are in use. These include: >> >> - CONFIG_HAVE_BLOCK_DEVICE without CONFIG_BLK >> - CONFIG_BOOTCOUNT_LIMIT without CONFIG_DM_BOOTCOUNT >> - CONFIG_MTD without CONFIG_DM_MTD >> - CONFIG_PHYLIB without CONFIG_DM_MDIO >> - CONFIG_POWER, also without CONFIG_DM_PMIC >> - Absence of CONFIG_RAM and CONFIG_SPL_RAM >> >> Also replaced existing CONFIG_DM_SPI warning for consistency. >> Removed CONFIG_BLK requirement for CONFIG_DM_USB, as all USB >> devices not block devices. >> >> Signed-off-by: Niel Fourie <lusus at denx.de> >> Cc: Simon Glass <sjg at chromium.org> >> --- >> Makefile | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++----- >> 1 file changed, 67 insertions(+), 6 deletions(-) > > Could we add instructions on what should be done? It seems a little > unclear to me. Yes, sure. I am still a little uncertain on how to correctly create a sensible RFC patch. My question is basically: How useful would you consider having more of these warnings in the Makefile, if at all? I am the least certain of the last one with CONFIG_RAM and CONFIG_SPL_RAM. For background, I explored the driver model and then I had a look at how much legacy there was still around. I found some further defines and conditions which could be turned into legacy warnings in the Makefile for some more visibility. Any even further such warnings would mostly involve checking the defines for the individual legacy drivers, which I do not really consider viable. Testing of these warnings, especially automated, would be a challenge. I have a heavily butchered Sandbox build which triggers most of the legacy warnings in the Makefile, but I would not want to inflict it on anybody else. Best regard, Niel Fourie
Hi Niel, On Mon, 30 Mar 2020 at 10:07, Niel Fourie <lusus at denx.de> wrote: > > Hi Simon > > On 3/28/20 9:05 PM, Simon Glass wrote: > > Hi Niel, > > > > On Wed, 25 Mar 2020 at 07:47, Niel Fourie <lusus at denx.de> wrote: > >> > >> Expand warnings printed by Makefile after compile when legacy > >> drivers are in use. These include: > >> > >> - CONFIG_HAVE_BLOCK_DEVICE without CONFIG_BLK > >> - CONFIG_BOOTCOUNT_LIMIT without CONFIG_DM_BOOTCOUNT > >> - CONFIG_MTD without CONFIG_DM_MTD > >> - CONFIG_PHYLIB without CONFIG_DM_MDIO > >> - CONFIG_POWER, also without CONFIG_DM_PMIC > >> - Absence of CONFIG_RAM and CONFIG_SPL_RAM > >> > >> Also replaced existing CONFIG_DM_SPI warning for consistency. > >> Removed CONFIG_BLK requirement for CONFIG_DM_USB, as all USB > >> devices not block devices. > >> > >> Signed-off-by: Niel Fourie <lusus at denx.de> > >> Cc: Simon Glass <sjg at chromium.org> > >> --- > >> Makefile | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++----- > >> 1 file changed, 67 insertions(+), 6 deletions(-) > > > > Could we add instructions on what should be done? It seems a little > > unclear to me. > > Yes, sure. I am still a little uncertain on how to correctly create a > sensible RFC patch. > > My question is basically: How useful would you consider having more of > these warnings in the Makefile, if at all? I am the least certain of the > last one with CONFIG_RAM and CONFIG_SPL_RAM. > > For background, I explored the driver model and then I had a look at how > much legacy there was still around. I found some further defines and > conditions which could be turned into legacy warnings in the Makefile > for some more visibility. Any even further such warnings would mostly > involve checking the defines for the individual legacy drivers, which I > do not really consider viable. > > Testing of these warnings, especially automated, would be a challenge. I > have a heavily butchered Sandbox build which triggers most of the legacy > warnings in the Makefile, but I would not want to inflict it on anybody > else. I suggest creating a series that adds each warning, and cc trini. Overall I think it is a good idea. would love to see a test (maybe a shell/Python script called from test/run?) that builds sandbox with various CONFIG options added/removed. There are a few combinations that it would be nice to add to that. For example building sandbox with NO_SDL=1 in addition to what you have above. I'm thinking of something like: make sandbox_defconfig sed '/CONFIG_XXX/d' .config echo CONFIG_YYY >>.config etc. make So if you feel up to trying that, please do. Otherwise manual testing is good enough. Regards, Simon
diff --git a/Makefile b/Makefile index fa687f13a5..0df58ca7c1 100644 --- a/Makefile +++ b/Makefile @@ -963,11 +963,6 @@ cmd_cfgcheck = $(srctree)/scripts/check-config.sh $2 \ all: $(ALL-y) ifeq ($(CONFIG_DEPRECATED),y) $(warning "You have deprecated configuration options enabled in your .config! Please check your configuration.") -ifeq ($(CONFIG_SPI),y) -ifneq ($(CONFIG_DM_SPI)$(CONFIG_OF_CONTROL),yy) - $(warning "The relevant config item with associated code will remove in v2019.07 release.") -endif -endif endif ifneq ($(CONFIG_DM),y) @echo >&2 "===================== WARNING ======================" @@ -988,7 +983,7 @@ ifneq ($(CONFIG_DM_MMC)$(CONFIG_OF_CONTROL)$(CONFIG_BLK),yyy) endif endif ifeq ($(CONFIG_USB),y) -ifneq ($(CONFIG_DM_USB)$(CONFIG_OF_CONTROL)$(CONFIG_BLK),yyy) +ifneq ($(CONFIG_DM_USB)$(CONFIG_OF_CONTROL),yy) @echo >&2 "===================== WARNING ======================" @echo >&2 "This board does not use CONFIG_DM_USB. Please update" @echo >&2 "the board to use CONFIG_DM_USB before the v2019.07 release." @@ -1046,6 +1041,16 @@ ifeq ($(CONFIG_OF_EMBED),y) @echo >&2 "See doc/README.fdt-control for more info." @echo >&2 "====================================================" endif +ifeq ($(CONFIG_SPI),y) +ifneq ($(CONFIG_DM_SPI)$(CONFIG_OF_CONTROL),yy) + @echo >&2 "===================== WARNING ======================" + @echo >&2 "This board uses CONFIG_SPI without having CONFIG_DM_SPI" + @echo >&2 "enabled. Please update the board before the v2019.07 release." + @echo >&2 "Failure to update by the deadline may result in board removal." + @echo >&2 "See doc/driver-model/migration.rst for more info." + @echo >&2 "====================================================" +endif +endif ifeq ($(CONFIG_SPI_FLASH),y) ifneq ($(CONFIG_DM_SPI_FLASH)$(CONFIG_OF_CONTROL),yy) @echo >&2 "===================== WARNING ======================" @@ -1078,6 +1083,62 @@ ifneq ($(CONFIG_DM_ETH),y) @echo >&2 "====================================================" endif endif +ifeq ($(CONFIG_HAVE_BLOCK_DEVICE),y) +ifneq ($(CONFIG_BLK),y) + @echo >&2 "===================== WARNING ======================" + @echo >&2 "This board uses CONFIG_HAVE_BLOCK_DEVICE but does not" + @echo >&2 "have CONFIG_BLK enabled. This implies legacy block" + @echo >&2 "device support is enabled without driver model (DM)." + @echo >&2 "====================================================" +endif +endif +ifeq ($(CONFIG_BOOTCOUNT_LIMIT),y) +ifneq ($(CONFIG_DM_BOOTCOUNT),y) + @echo >&2 "===================== WARNING ======================" + @echo >&2 "This board uses CONFIG_BOOTCOUNT_LIMIT without" + @echo >&2 "having CONFIG_DM_BOOTCOUNT enabled. This implies a" + @echo >&2 "legacy bootcounter without driver model (DM) support." + @echo >&2 "====================================================" +endif +endif +ifeq ($(CONFIG_MTD),y) +ifneq ($(CONFIG_DM_MTD),y) + @echo >&2 "===================== WARNING ======================" + @echo >&2 "This board uses CONFIG_MTD without having CONFIG_DM_MTD" + @echo >&2 "enabled. This implies legacy MTD support, without" + @echo >&2 "driver model (DM)." + @echo >&2 "====================================================" +endif +endif +ifeq ($(CONFIG_PHYLIB),y) +ifneq ($(CONFIG_DM_MDIO),y) + @echo >&2 "===================== WARNING ======================" + @echo >&2 "This board uses CONFIG_PHYLIB, without having" + @echo >&2 "CONFIG_DM_MDIO enabled. This implies legacy ethernet" + @echo >&2 "phy support, without driver model (DM)." + @echo >&2 "====================================================" +endif +endif +ifeq ($(CONFIG_POWER),y) + @echo >&2 "===================== WARNING ======================" + @echo >&2 "This board uses CONFIG_POWER which enables the legacy" + @echo >&2 "pre-DM PMIC support." +ifneq ($(CONFIG_DM_PMIC),y) + @echo >&2 "CONFIG_DM_PMIC is disabled, therefore no driver model" + @echo >&2 "(DM) PMIC support is enabled." +endif + @echo >&2 "====================================================" +endif +ifneq ($(CONFIG_RAM),y) +ifneq ($(CONFIG_SPL_RAM),y) + @echo >&2 "===================== WARNING ======================" + @echo >&2 "This board does not use CONFIG_RAM or CONFIG_SPL_RAM" + @echo >&2 "This implies legacy memory configuration code is in" + @echo >&2 "use, without driver model (DM) support." + @echo >&2 "====================================================" +endif +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.
Expand warnings printed by Makefile after compile when legacy drivers are in use. These include: - CONFIG_HAVE_BLOCK_DEVICE without CONFIG_BLK - CONFIG_BOOTCOUNT_LIMIT without CONFIG_DM_BOOTCOUNT - CONFIG_MTD without CONFIG_DM_MTD - CONFIG_PHYLIB without CONFIG_DM_MDIO - CONFIG_POWER, also without CONFIG_DM_PMIC - Absence of CONFIG_RAM and CONFIG_SPL_RAM Also replaced existing CONFIG_DM_SPI warning for consistency. Removed CONFIG_BLK requirement for CONFIG_DM_USB, as all USB devices not block devices. Signed-off-by: Niel Fourie <lusus at denx.de> Cc: Simon Glass <sjg at chromium.org> --- Makefile | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 67 insertions(+), 6 deletions(-)