diff mbox

[U-Boot] Please pull u-boot-sunxi master (fixes for v2015.07)

Message ID 55929566.50205@redhat.com
State Not Applicable
Headers show

Commit Message

Hans de Goede June 30, 2015, 1:11 p.m. UTC
Hi,

On 28-06-15 18:06, Tom Rini wrote:
> On Sun, Jun 28, 2015 at 05:39:28PM +0200, Hans de Goede wrote:
>> Hi,
>>
>> On 26-06-15 23:05, Tom Rini wrote:
>>> On Fri, Jun 26, 2015 at 12:13:51PM +0200, Hans de Goede wrote:
>>>
>>>> Hi Tom,
>>>>
>>>> Please pull u-boot-sunxi/master into master for two bug-fixes,
>>>> and one new board:
>>>>
>>>> The following changes since commit 325849ff3d4adeebb8f8f9bc5db950724df9bc21:
>>>>
>>>>    Merge git://git.denx.de/u-boot-usb (2015-06-19 16:46:51 -0400)
>>>>
>>>> are available in the git repository at:
>>>>
>>>>    http://git.denx.de/u-boot-sunxi.git master
>>>>
>>>> for you to fetch changes up to cbf389d94bf300a38d0a26f5aab2efbc9d76a56c:
>>>>
>>>>    sunxi: Add Sinlinx SinA33 defconfig (2015-06-26 11:56:33 +0200)
>>>>
>>>
>>> NAK, this needs a rework now, sorry!  Joe's changes mean the new
>>> defconfig needs updating.
>>
>> Ugh, I'm somewhat surprised with these changes, both with the
>> contents of the changes, as with changes like these landing so
>> late in the cycle, esp. since these are not uncontroversial.
>>
>> I've the feeling that these were merged without proper discussion
>> which is not good, and is esp. bad when it is done so late in the
>> cycle.
>
> Yeah, it's a bit later than I'd have liked, but I asked Joe to get these
> done because they help clean things up.  For example:
>
>> In essense these changes revert my earlier commit where I explictly added:
>>
>> config CMD_SETEXPR
>> 	default y
>>
>> config CMD_NET
>> 	default y
>
> Right.  Your change kept sunxi boards from suddenly losing those
> features to prevent breakage (which is good, and why I allowed it at the
> time), but at the expense of adding lines to each of the sunxi defconfig
> files (which is why these lines ended up in each of the sunxi defconfg
> files, yes?)

That is not how I see it, with my change for sunxi boards the default for
these options was y, so they did not end up in the deconfigs with Joe's
recent changes removed the above 4 lines from board/sunxi/Kconfig now
all of a sudden all sunxi defconfig files need these lines, it is Joe's
changes which have caused a ton of extra lines to be added to the sunxi
defconfigs not mine, specifically this commit:

http://git.denx.de/?p=u-boot.git;a=commit;h=c9bb942e2f91d9f8e5f25ed1961eba2d64f65b8d

Which does:


 > and didn't help all of the other SoCs out.  What Joe's
> changes do is remove them from the defconfig files under configs/ _and_
> restore the original behaviour.

No what Joe's changes have them is ADD them to the defconfig files
under configs/ and force the new behavior of all things defaulting
to off unless explictly enabled in defconfig, resulting in 8 * 61 =
488 extra lines in sunxi defconfig's alone.

And for some reason Joe has not only done these change for CONFIG_CMD_*
but also for other unrelated options like CONFIG_DM_* which is really
BAD, as sunxi has been completely moved over to the device model and
simply will not build nor run when CONFIG_DM and friends are not set.

>> And not only does the just merged series revert these changes, to make
>> things worse it adds a whole lot more crap to the sunxi defconfigs.
>
> It does in that it's now a direct translation of crap that used to be in
> the config.h files (and done just once, true).  The next step is to
> instead add smarts to the Kconfig logic so that if we don't have
> NOR-style flash we don't ever ask about CMD_IMLS/CMD_FLASH and make
> CMD_FPGA depend on FPGA being set.
>
> We're trying to skip over the period of linux kernel history where the
> defconfig files were hand-controlled files that had lots of
> board-specific knowledge in them.  But at the same time, we can't kick
> out nearly as much of that information as they were able to because...

The latest patch-series seems to do the exact reverse. More knowledge is
being moved away from a central place and into defconfig files. As said
ARCH_SUNXI builds must always have CONFIG_DM* set, and yet now all sunxi
defconfig files need to set that explicitly.

>> Excuse my language but I've no other words for this, something which
>> we want enabled on every single sunxi board does not belong in the
>> defconfigs, we now have defconfig files where more of the lines are
>> this crap / noise, rather then actual board config, we really need
>> a better solution for providing per SoC defaults then just having them
>> all in the defconfig, having them all in the defconfig is crazy, esp.
>> as more and more compile time config gets moved into Kconfig.
>
> The problem is that defconfig files are maintained by 'savedefconfig'
> and yes, perhaps we'll have to come up with something different than the
> solution the kernel did of "having stuff stored in defconfigs is
> annoying, lets move it to device trees".  Maybe we need to be less
> strict than (how it seems to me about) how the kernel community is about
> settings defaults in Kconfig.
>
>> So once more I find both the contents and the time of merging of
>> this patch-set ill advised, and I'm NOT happy with these changes.
>
> I will take it into consideration that maybe I should be stricter about
> the merge window and treat things more like the kernel rules (everything
> goes in, in first two weeks) instead of how I had been doing things
> (everything ought to be posted close to, except for things that I ask
> people to get done based on other stuff..).

I'm actually usually quite happy about you not being overly strict
with the merge window, I believe things work well in general. But this
latest series feels like it was rushed in while it should have been
discussed more, esp. this late in the cycle.

Regards,

Hans

Comments

Ian Campbell June 30, 2015, 1:30 p.m. UTC | #1
On Tue, 2015-06-30 at 15:11 +0200, Hans de Goede wrote:
[...]
> The latest patch-series seems to do the exact reverse. More knowledge is
> being moved away from a central place and into defconfig files. As said
> ARCH_SUNXI builds must always have CONFIG_DM* set, and yet now all sunxi
> defconfig files need to set that explicitly.

CONFIG_DM* seems like the sort of thing which ought to be select'd not
default y'd (it's never really an user "option", it's something
something else needs), but the recent change seems like a step in the
wrong direction either way.

Ian.
Hans de Goede June 30, 2015, 1:34 p.m. UTC | #2
Hi,

On 30-06-15 15:30, Ian Campbell wrote:
> On Tue, 2015-06-30 at 15:11 +0200, Hans de Goede wrote:
> [...]
>> The latest patch-series seems to do the exact reverse. More knowledge is
>> being moved away from a central place and into defconfig files. As said
>> ARCH_SUNXI builds must always have CONFIG_DM* set, and yet now all sunxi
>> defconfig files need to set that explicitly.
>
> CONFIG_DM* seems like the sort of thing which ought to be select'd not
> default y'd

ACK. The problem is that there are some other not entirely clean
Kconfig bits un the u-boot tree which causes Kconfig to explain about
circular deps last time I tried to select them. Still I agree we need
to move to selecting these and fix any other issues this triggers.

Regards,

Hans
Joe Hershberger June 30, 2015, 3:48 p.m. UTC | #3
Hi Ian,

On Tue, Jun 30, 2015 at 8:30 AM, Ian Campbell <ijc@hellion.org.uk> wrote:
> On Tue, 2015-06-30 at 15:11 +0200, Hans de Goede wrote:
> [...]
>> The latest patch-series seems to do the exact reverse. More knowledge is
>> being moved away from a central place and into defconfig files. As said
>> ARCH_SUNXI builds must always have CONFIG_DM* set, and yet now all sunxi
>> defconfig files need to set that explicitly.
>
> CONFIG_DM* seems like the sort of thing which ought to be select'd not
> default y'd (it's never really an user "option", it's something
> something else needs), but the recent change seems like a step in the
> wrong direction either way.

I agree that the DM configs should be selects where there is no other
option (that will usually, maybe always, be the case with those,
right?).

I can see where the recent changes appear to be a step in the wrong
direction, but I believe they are a step out of an unmanageable local
minima. We simply have to get away from defining configs in arch or
board Kconfigs. Unfortunately, the current mechanism for changing
defaults requires this.

I do not believe that we should do nothing further to improve the way
we use Kconfig, but I do believe strongly that we cannot allow this
approach to defaults to proliferate.

For your specific case, sunxi defconfigs should be no different if you
decide to "select" the DM options that always apply. Perhaps you
didn't look at the next patch which moved all default commands into
the Kconfig where those configs are actually defined?

Cheers,
-Joe
Tom Rini June 30, 2015, 5:17 p.m. UTC | #4
On Tue, Jun 30, 2015 at 10:48:20AM -0500, Joe Hershberger wrote:
> Hi Ian,
> 
> On Tue, Jun 30, 2015 at 8:30 AM, Ian Campbell <ijc@hellion.org.uk> wrote:
> > On Tue, 2015-06-30 at 15:11 +0200, Hans de Goede wrote:
> > [...]
> >> The latest patch-series seems to do the exact reverse. More knowledge is
> >> being moved away from a central place and into defconfig files. As said
> >> ARCH_SUNXI builds must always have CONFIG_DM* set, and yet now all sunxi
> >> defconfig files need to set that explicitly.
> >
> > CONFIG_DM* seems like the sort of thing which ought to be select'd not
> > default y'd (it's never really an user "option", it's something
> > something else needs), but the recent change seems like a step in the
> > wrong direction either way.
> 
> I agree that the DM configs should be selects where there is no other
> option (that will usually, maybe always, be the case with those,
> right?).
> 
> I can see where the recent changes appear to be a step in the wrong
> direction, but I believe they are a step out of an unmanageable local
> minima. We simply have to get away from defining configs in arch or
> board Kconfigs. Unfortunately, the current mechanism for changing
> defaults requires this.

Both the Kconfig and DM transition mean that we'll probably end up with
some ugly bits for a while.  But I want to take a poke around again and
see if it can be a bit better now, today.

> I do not believe that we should do nothing further to improve the way
> we use Kconfig, but I do believe strongly that we cannot allow this
> approach to defaults to proliferate.
> 
> For your specific case, sunxi defconfigs should be no different if you
> decide to "select" the DM options that always apply. Perhaps you
> didn't look at the next patch which moved all default commands into
> the Kconfig where those configs are actually defined?

No, checkout say configs/A10-OLinuXino-Lime_defconfig and see all of the
DM_* stuff that's in there.  Hans' point is that it shouldn't be since
they must be set.  Having them correct in the config files (IMHO) helps,
but Hans' point I believe (And I see the validity there, there's _60_
sunxi boards today and more every week practically) is that making each
new board set this is wrong on many levels.
diff mbox

Patch

--- a/board/sunxi/Kconfig
+++ b/board/sunxi/Kconfig
@@ -566,25 +566,4 @@  config GMAC_TX_DELAY
         ---help---
         Set the GMAC Transmit Clock Delay Chain value.

-config SYS_MALLOC_CLEAR_ON_INIT
-       default n
-
-config NETDEVICES
-       default y
-
-config DM_ETH
-       default y
-
-config DM_SERIAL
-       default y
-
-config DM_USB
-       default y if !USB_MUSB_SUNXI
-
-config CMD_SETEXPR
-       default y
-
-config CMD_NET
-       default y
-
  endif

Which result in the following "matching" change for 60+ sunxi
defconfig's :
--- a/configs/A10-OLinuXino-Lime_defconfig
+++ b/configs/A10-OLinuXino-Lime_defconfig
@@ -5,5 +5,13 @@  CONFIG_DRAM_CLK=480
  CONFIG_DRAM_EMR1=4
  CONFIG_SYS_CLK_FREQ=912000000
  CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-olinuxino-lime"
+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
  CONFIG_SPL=y
  CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,AHCI,SATAPWR=SUNXI_GPC(3),USB_EHCI"
+CONFIG_CMD_SETEXPR=y
+CONFIG_CMD_NET=y
+CONFIG_DM_ETH=y
+CONFIG_NETDEVICES=y
+CONFIG_DM_SERIAL=y
+CONFIG_USB=y
+CONFIG_DM_USB=y