All of lore.kernel.org
 help / color / mirror / Atom feed
From: Russell King - ARM Linux <linux@armlinux.org.uk>
To: "Pali Rohár" <pali.rohar@gmail.com>
Cc: Arnd Bergmann <arnd@arndb.de>,
	Robin Murphy <robin.murphy@arm.com>,
	Linus Walleij <linus.walleij@linaro.org>,
	Ben Dooks <ben-linux@fluff.org>, Tony Lindgren <tony@atomide.com>,
	Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>,
	Sebastian Reichel <sre@kernel.org>,
	Aaro Koskinen <aaro.koskinen@iki.fi>, Pavel Machek <pavel@ucw.cz>,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH] arm: dt: Initialize boot_command_line from CONFIG_CMDLINE in case DT does not provide /chosen/bootargs
Date: Wed, 14 Dec 2016 23:52:24 +0000	[thread overview]
Message-ID: <20161214235224.GH14217@n2100.armlinux.org.uk> (raw)
In-Reply-To: <1481749963-8664-1-git-send-email-pali.rohar@gmail.com>

On Wed, Dec 14, 2016 at 10:12:43PM +0100, Pali Rohár wrote:
> Commit 008a2ebcd677 ("ARM: dts: omap3: Remove skeleton.dtsi usage") broke
> support for setting cmdline on Nokia N900 via CONFIG_CMDLINE.
> 
> It is because arm code booted in DT mode parse cmdline only via function
> early_init_dt_scan_chosen() and that function does not fill variable
> boot_command_line when DTB does not contain /chosen entry. It is called
> from function early_init_dt_scan_nodes() in setup_machine_fdt().
> 
> This patch fixes it by explicitly filling boot_command_line in function
> setup_machine_fdt() after calling early_init_dt_scan_nodes() in case
> boot_command_line still remains empty.

This looks like a hack.

First, the matter of the ATAGs compatibility.  The decompressor relies on
there being a pre-existing /chosen node to insert the command line and
other parameters into.  If we've dropped it (by dropping skeleton.dtsi)
then we've just regressed more than just N900 - the decompressor won't
be able to merge the ATAGs into the concatenated FDT.

Second, CONFIG_CMDLINE has never been in place on DT systems - it's
something atags_parse.c has been dealing with which isn't involved on
DT.  For DT, we expect the command line to be passed in.

Now, given that, I find your commit message rather fishy.  You seem to
be claiming that CONFIG_CMDLINE used to work, but the fact is, we've
never had it working on device tree systems.

Instead, what I think was going on is that the bug you're seeing is
that the removal of skeleton.dtsi results in the /chosen node being
absent, which in turn prevents the decompressor picking the various
parameters out of the ATAGs and dropping them into the DT blob.

That, to me, sounds like a regression, and the fix is not to hack
support for an unrelated feature, but to fix the original problem -
and I think in this case, it's reasonable to ask for the offending
commit to be reverted.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

WARNING: multiple messages have this Message-ID (diff)
From: linux@armlinux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] arm: dt: Initialize boot_command_line from CONFIG_CMDLINE in case DT does not provide /chosen/bootargs
Date: Wed, 14 Dec 2016 23:52:24 +0000	[thread overview]
Message-ID: <20161214235224.GH14217@n2100.armlinux.org.uk> (raw)
In-Reply-To: <1481749963-8664-1-git-send-email-pali.rohar@gmail.com>

On Wed, Dec 14, 2016 at 10:12:43PM +0100, Pali Roh?r wrote:
> Commit 008a2ebcd677 ("ARM: dts: omap3: Remove skeleton.dtsi usage") broke
> support for setting cmdline on Nokia N900 via CONFIG_CMDLINE.
> 
> It is because arm code booted in DT mode parse cmdline only via function
> early_init_dt_scan_chosen() and that function does not fill variable
> boot_command_line when DTB does not contain /chosen entry. It is called
> from function early_init_dt_scan_nodes() in setup_machine_fdt().
> 
> This patch fixes it by explicitly filling boot_command_line in function
> setup_machine_fdt() after calling early_init_dt_scan_nodes() in case
> boot_command_line still remains empty.

This looks like a hack.

First, the matter of the ATAGs compatibility.  The decompressor relies on
there being a pre-existing /chosen node to insert the command line and
other parameters into.  If we've dropped it (by dropping skeleton.dtsi)
then we've just regressed more than just N900 - the decompressor won't
be able to merge the ATAGs into the concatenated FDT.

Second, CONFIG_CMDLINE has never been in place on DT systems - it's
something atags_parse.c has been dealing with which isn't involved on
DT.  For DT, we expect the command line to be passed in.

Now, given that, I find your commit message rather fishy.  You seem to
be claiming that CONFIG_CMDLINE used to work, but the fact is, we've
never had it working on device tree systems.

Instead, what I think was going on is that the bug you're seeing is
that the removal of skeleton.dtsi results in the /chosen node being
absent, which in turn prevents the decompressor picking the various
parameters out of the ATAGs and dropping them into the DT blob.

That, to me, sounds like a regression, and the fix is not to hack
support for an unrelated feature, but to fix the original problem -
and I think in this case, it's reasonable to ask for the offending
commit to be reverted.

-- 
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line: currently at 9.6Mbps down 400kbps up
according to speedtest.net.

  parent reply	other threads:[~2016-12-14 23:59 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-12-14 21:12 [PATCH] arm: dt: Initialize boot_command_line from CONFIG_CMDLINE in case DT does not provide /chosen/bootargs Pali Rohár
2016-12-14 21:12 ` Pali Rohár
2016-12-14 21:25 ` Pavel Machek
2016-12-14 21:25   ` Pavel Machek
2016-12-14 21:46   ` Tony Lindgren
2016-12-14 21:46     ` Tony Lindgren
2016-12-14 22:22 ` Javier Martinez Canillas
2016-12-14 22:22   ` Javier Martinez Canillas
2016-12-14 23:52 ` Russell King - ARM Linux [this message]
2016-12-14 23:52   ` Russell King - ARM Linux
2016-12-15  0:09   ` Pali Rohár
2016-12-15  0:09     ` Pali Rohár
2016-12-15  0:18     ` Robin Murphy
2016-12-15  0:18       ` Robin Murphy
2016-12-15 10:09     ` Russell King - ARM Linux
2016-12-15 10:09       ` Russell King - ARM Linux
2016-12-16 11:42       ` Pali Rohár
2016-12-16 11:42         ` Pali Rohár
2016-12-25 22:08         ` Pali Rohár
2016-12-25 22:08           ` Pali Rohár
2017-01-02 13:54           ` Russell King - ARM Linux
2017-01-02 13:54             ` Russell King - ARM Linux
2016-12-16 11:46     ` Pali Rohár
2016-12-16 11:46       ` Pali Rohár
2016-12-16 12:13       ` Javier Martinez Canillas
2016-12-16 12:13         ` Javier Martinez Canillas
2016-12-16 12:32         ` Pali Rohár
2016-12-16 12:32           ` Pali Rohár
2016-12-16 12:38           ` Javier Martinez Canillas
2016-12-16 12:38             ` Javier Martinez Canillas
2016-12-16 12:48             ` Pali Rohár
2016-12-16 12:48               ` Pali Rohár
2016-12-16 12:53               ` Javier Martinez Canillas
2016-12-16 12:53                 ` Javier Martinez Canillas
2016-12-16 15:40                 ` Tony Lindgren
2016-12-16 15:40                   ` Tony Lindgren
2016-12-16 16:13                   ` Pali Rohár
2016-12-16 16:13                     ` Pali Rohár
2016-12-16 16:21                     ` Tony Lindgren
2016-12-16 16:21                       ` Tony Lindgren
2016-12-16 16:27                     ` Russell King - ARM Linux
2016-12-16 16:27                       ` Russell King - ARM Linux
2016-12-16 16:57                   ` Mark Rutland
2016-12-16 16:57                     ` Mark Rutland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20161214235224.GH14217@n2100.armlinux.org.uk \
    --to=linux@armlinux.org.uk \
    --cc=aaro.koskinen@iki.fi \
    --cc=arnd@arndb.de \
    --cc=ben-linux@fluff.org \
    --cc=ivo.g.dimitrov.75@gmail.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pali.rohar@gmail.com \
    --cc=pavel@ucw.cz \
    --cc=robin.murphy@arm.com \
    --cc=sre@kernel.org \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.