All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rob Herring <robherring2@gmail.com>
To: Arnd Bergmann <arnd@arndb.de>
Cc: "linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	linux-serial@vger.kernel.org,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jiri Slaby <jslaby@suse.cz>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Russell King <linux@arm.linux.org.uk>,
	Will Deacon <will.deacon@arm.com>,
	"x86@kernel.org" <x86@kernel.org>
Subject: Re: [PATCH 0/8] Generic serial earlycon
Date: Sun, 23 Mar 2014 10:09:05 -0500	[thread overview]
Message-ID: <CAL_Jsq+j4ixVbfue62q_tOHb-HPA2jAxwZtTjtLy6jE9crGvsg@mail.gmail.com> (raw)
In-Reply-To: <201403222301.30222.arnd@arndb.de>

On Sat, Mar 22, 2014 at 5:01 PM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Saturday 22 March 2014, Rob Herring wrote:
>> I think this series stands on its own. It is largely refactoring
>> existing code and supporting existing command line options (arm64 just
>> changes from earlyprintk= to earlycon=). There will be cases where
>> changing the kernel command line is the only way to setup the
>> earlycon. Also, I think we would still want the kernel command line to
>> control whether or not we enable the earlycon (i.e. earlycon=dt).
>> There's not a standard way for how bootloaders would decide to set
>> "linux,stdout-path" or not.
>>
>> The DT support won't be all that quick to implement. The challenge
>> with the DT parsing is we have to do it on the flattened DT. I have
>> something functioning, but it doesn't do any address translation which
>> is the hard part.
>
> Ah, I hadn't realized that we call parse_early_param() twice, both
> in start_kernel() and before that in setup_arch(). You are right
> that the first one of these can only look at the flat device tree
> at the moment. I wonder if that's out of necessity or just coincidence
> though.
>
> There is relatively little going on between the first parse_early_param()
> and the call to unflatten_device_tree(), so it may be possible to move
> the former down, or the latter up.
>
>         parse_early_param();
>
>         sort(&meminfo.bank, meminfo.nr_banks, sizeof(meminfo.bank[0]), meminfo_cmp, NULL);
>
>         early_paging_init(mdesc, lookup_processor_type(read_cpuid_id()));
>         setup_dma_zone(mdesc);
>         sanity_check_meminfo();
>         arm_memblock_init(&meminfo, mdesc);
>
>         paging_init(mdesc);
>         request_standard_resources(mdesc);
>
>         if (mdesc->restart)
>                 arm_pm_restart = mdesc->restart;
>
>         unflatten_device_tree();
>
> On powerpc, unflatten_device_tree is called way before paging_init, so I assume
> it has to be possible, but it might end up being harder to do than what you
> have in mind with parsing the flat device tree.

IIRC, the unflattening cannot be done before memblock is up which is
in arm_memblock_init. I believe that will get done earlier similar to
PPC with Laura's meminfo removal series. However, in interest of
getting output enabled as early as possible, the earliest point is
always going to be with a flat tree. So I think we do want to be able
to parse the flat tree for this. There's code in u-boot to do the
address translation on FDT we can steal. Really, i'd like to put that
code in libfdt, but there's a licensing problem with the u-boot code
being GPL and libfdt being BSD.

Rob

WARNING: multiple messages have this Message-ID (diff)
From: robherring2@gmail.com (Rob Herring)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 0/8] Generic serial earlycon
Date: Sun, 23 Mar 2014 10:09:05 -0500	[thread overview]
Message-ID: <CAL_Jsq+j4ixVbfue62q_tOHb-HPA2jAxwZtTjtLy6jE9crGvsg@mail.gmail.com> (raw)
In-Reply-To: <201403222301.30222.arnd@arndb.de>

On Sat, Mar 22, 2014 at 5:01 PM, Arnd Bergmann <arnd@arndb.de> wrote:
> On Saturday 22 March 2014, Rob Herring wrote:
>> I think this series stands on its own. It is largely refactoring
>> existing code and supporting existing command line options (arm64 just
>> changes from earlyprintk= to earlycon=). There will be cases where
>> changing the kernel command line is the only way to setup the
>> earlycon. Also, I think we would still want the kernel command line to
>> control whether or not we enable the earlycon (i.e. earlycon=dt).
>> There's not a standard way for how bootloaders would decide to set
>> "linux,stdout-path" or not.
>>
>> The DT support won't be all that quick to implement. The challenge
>> with the DT parsing is we have to do it on the flattened DT. I have
>> something functioning, but it doesn't do any address translation which
>> is the hard part.
>
> Ah, I hadn't realized that we call parse_early_param() twice, both
> in start_kernel() and before that in setup_arch(). You are right
> that the first one of these can only look at the flat device tree
> at the moment. I wonder if that's out of necessity or just coincidence
> though.
>
> There is relatively little going on between the first parse_early_param()
> and the call to unflatten_device_tree(), so it may be possible to move
> the former down, or the latter up.
>
>         parse_early_param();
>
>         sort(&meminfo.bank, meminfo.nr_banks, sizeof(meminfo.bank[0]), meminfo_cmp, NULL);
>
>         early_paging_init(mdesc, lookup_processor_type(read_cpuid_id()));
>         setup_dma_zone(mdesc);
>         sanity_check_meminfo();
>         arm_memblock_init(&meminfo, mdesc);
>
>         paging_init(mdesc);
>         request_standard_resources(mdesc);
>
>         if (mdesc->restart)
>                 arm_pm_restart = mdesc->restart;
>
>         unflatten_device_tree();
>
> On powerpc, unflatten_device_tree is called way before paging_init, so I assume
> it has to be possible, but it might end up being harder to do than what you
> have in mind with parsing the flat device tree.

IIRC, the unflattening cannot be done before memblock is up which is
in arm_memblock_init. I believe that will get done earlier similar to
PPC with Laura's meminfo removal series. However, in interest of
getting output enabled as early as possible, the earliest point is
always going to be with a flat tree. So I think we do want to be able
to parse the flat tree for this. There's code in u-boot to do the
address translation on FDT we can steal. Really, i'd like to put that
code in libfdt, but there's a licensing problem with the u-boot code
being GPL and libfdt being BSD.

Rob

  reply	other threads:[~2014-03-23 15:09 UTC|newest]

Thread overview: 90+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-21 21:08 [PATCH 0/8] Generic serial earlycon Rob Herring
2014-03-21 21:08 ` Rob Herring
     [not found] ` < 201403221054.39799.arnd@arndb.de>
     [not found]   ` < CAL_JsqKjGjyYypwneCmNc1qeKe0ZOG9gz3QSJ37-HwHXKu3iRA@mail.gmail.com>
     [not found]     ` < 20140329001732.BECE2C41FF4@trevor.secretlab.ca>
2014-03-21 21:08 ` [PATCH 1/8] x86: move FIX_EARLYCON_MEM kconfig into x86 Rob Herring
2014-03-21 21:08   ` Rob Herring
2014-03-21 21:08   ` Rob Herring
2014-03-21 21:08 ` [PATCH 2/8] arm64: add FIXMAP_PAGE_NOCACHE definition Rob Herring
2014-03-21 21:08   ` Rob Herring
2014-03-24 11:13   ` Catalin Marinas
2014-03-24 11:13     ` Catalin Marinas
2014-03-24 11:13     ` Catalin Marinas
2014-03-21 21:08 ` [PATCH 3/8] arm64: enable FIX_EARLYCON_MEM kconfig Rob Herring
2014-03-21 21:08   ` Rob Herring
2014-03-24 11:38   ` Catalin Marinas
2014-03-24 11:38     ` Catalin Marinas
2014-03-24 11:38     ` Catalin Marinas
2014-03-21 21:08 ` [PATCH 4/8] tty/serial: add generic serial earlycon Rob Herring
2014-03-21 21:08   ` Rob Herring
2014-03-24 11:22   ` Catalin Marinas
2014-03-24 11:22     ` Catalin Marinas
2014-03-24 11:22     ` Catalin Marinas
2014-03-24 11:29     ` Arnd Bergmann
2014-03-24 11:29       ` Arnd Bergmann
2014-03-24 13:36       ` Rob Herring
2014-03-24 13:36         ` Rob Herring
2014-03-24 13:36         ` Rob Herring
2014-03-24 15:42         ` Arnd Bergmann
2014-03-24 15:42           ` Arnd Bergmann
2014-03-24 15:42           ` Arnd Bergmann
2014-04-17 18:27           ` Rob Herring
2014-04-17 18:27             ` Rob Herring
2014-04-17 18:27             ` Rob Herring
2014-04-17 20:16             ` Alan Cox
2014-04-17 20:16               ` Alan Cox
2014-04-17 20:16               ` Alan Cox
2014-04-19 11:32             ` Arnd Bergmann
2014-04-19 11:32               ` Arnd Bergmann
2014-04-19 11:32               ` Arnd Bergmann
2014-03-21 21:08 ` [PATCH 5/8] tty/serial: convert 8250 to generic earlycon Rob Herring
2014-03-21 21:08   ` Rob Herring
2014-03-21 21:08 ` [PATCH 6/8] tty/serial: pl011: add generic earlycon support Rob Herring
2014-03-21 21:08   ` Rob Herring
2014-03-24 11:28   ` Catalin Marinas
2014-03-24 11:28     ` Catalin Marinas
2014-03-24 11:28     ` Catalin Marinas
2014-04-16 22:14     ` Rob Herring
2014-04-16 22:14       ` Rob Herring
2014-04-16 22:14       ` Rob Herring
2014-04-23 16:39       ` Catalin Marinas
2014-04-23 16:39         ` Catalin Marinas
2014-04-23 16:39         ` Catalin Marinas
2014-03-21 21:08 ` [PATCH 7/8] tty/serial: add arm64 semihosting earlycon Rob Herring
2014-03-21 21:08   ` Rob Herring
2014-03-23 20:04   ` Nicolas Pitre
2014-03-23 20:04     ` Nicolas Pitre
2014-03-23 20:23     ` Arnd Bergmann
2014-03-23 20:23       ` Arnd Bergmann
2014-03-23 21:48       ` Nicolas Pitre
2014-03-23 21:48         ` Nicolas Pitre
2014-03-24 11:38   ` Catalin Marinas
2014-03-24 11:38     ` Catalin Marinas
2014-03-24 11:38     ` Catalin Marinas
2014-03-24 11:48     ` Catalin Marinas
2014-03-24 11:48       ` Catalin Marinas
2014-03-24 11:48       ` Catalin Marinas
2014-03-21 21:08 ` [PATCH 8/8] arm64: remove arch specific earlyprintk Rob Herring
2014-03-21 21:08   ` Rob Herring
2014-03-22  9:54 ` [PATCH 0/8] Generic serial earlycon Arnd Bergmann
2014-03-22  9:54   ` Arnd Bergmann
2014-03-22  9:54   ` Arnd Bergmann
2014-03-22 14:14   ` Rob Herring
2014-03-22 14:14     ` Rob Herring
2014-03-22 14:14     ` Rob Herring
2014-03-22 22:01     ` Arnd Bergmann
2014-03-22 22:01       ` Arnd Bergmann
2014-03-22 22:01       ` Arnd Bergmann
2014-03-23 15:09       ` Rob Herring [this message]
2014-03-23 15:09         ` Rob Herring
2014-03-23 15:09         ` Rob Herring
2014-03-23 19:49         ` Arnd Bergmann
2014-03-23 19:49           ` Arnd Bergmann
2014-03-23 19:49           ` Arnd Bergmann
2014-03-29  0:17     ` Grant Likely
2014-03-29  0:17       ` Grant Likely
2014-03-29  0:17       ` Grant Likely
2014-03-29 14:33       ` Rob Herring
2014-03-29 14:33         ` Rob Herring
2014-03-29 14:33         ` Rob Herring
2014-03-29 15:34         ` Grant Likely
2014-03-29 15:34           ` Grant Likely
2014-03-29 15:34           ` Grant Likely

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=CAL_Jsq+j4ixVbfue62q_tOHb-HPA2jAxwZtTjtLy6jE9crGvsg@mail.gmail.com \
    --to=robherring2@gmail.com \
    --cc=arnd@arndb.de \
    --cc=catalin.marinas@arm.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jslaby@suse.cz \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=will.deacon@arm.com \
    --cc=x86@kernel.org \
    /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.