LKML Archive mirror
 help / color / mirror / Atom feed
From: Peter Hurley <peter@hurleysoftware.com>
To: Jon Hunter <jonathanh@nvidia.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Masahiro Yamada <yamada.masahiro@socionext.com>,
	Rob Herring <robh+dt@kernel.org>,
	Grant Likely <grant.likely@linaro.org>,
	linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org,
	Kevin Cernekee <cernekee@gmail.com>,
	Sebastian Frias <sf84@laposte.net>,
	Paul Burton <paul.burton@imgtec.com>,
	Arnd Bergmann <arnd@arndb.de>
Subject: Re: [PATCH v4 11/11] serial: 8250_omap: Add omap8250 earlycon
Date: Wed, 13 Jan 2016 09:06:15 -0800	[thread overview]
Message-ID: <56968407.7090500@hurleysoftware.com> (raw)
In-Reply-To: <5696224F.7050907@nvidia.com>

Hi Jon,

On 01/13/2016 02:09 AM, Jon Hunter wrote:
> On 13/01/16 09:19, Jon Hunter wrote:
>> On 12/01/16 19:51, Peter Hurley wrote:
>>> Wasn't planning on sending this patch just yet, but oh well.
>>>
>>> On 01/12/2016 11:41 AM, Peter Hurley wrote:
>>>> Add DT earlycon for 8250_omap driver. This boot console is included
>>>> for kernels built with CONFIG_SERIAL_EARLYCON=y, CONFIG_OF=y,
>>>> CONFIG_SERIAL_8250_OMAP=y, and CONFIG_OF_EARLY_FLATTREE=y.
>>>>
>>>> This boot console is enabled with the command line option "earlycon"
>>>> (without "=<name>...") when the DT 'stdout-path' property matches a
>>>> compatible uart. For example,
>>>>
>>>> / {
>>>>    chosen {
>>>>         stdout-path = "serial0:115200";
>>>>    };
>>>>
>>>>    ....
>>>>
>>>>    aliases {
>>>>         serial0 = &uart0;
>>>>    };
>>>>
>>>>    ....
>>>>
>>>>    ocp : ocp {
>>>>         uart0 : serial@44e09000 {
>>>>              compatible = "ti,omap3-uart";
>>>>         }
>>>>    };
>>>> };
>>>>
>>>> Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
>>>> ---
>>>>  drivers/tty/serial/8250/8250_early.c | 20 ++++++++++++++++++++
>>>>  1 file changed, 20 insertions(+)
>>>>
>>>> diff --git a/drivers/tty/serial/8250/8250_early.c b/drivers/tty/serial/8250/8250_early.c
>>>> index e7cdc0c..d1f6310 100644
>>>> --- a/drivers/tty/serial/8250/8250_early.c
>>>> +++ b/drivers/tty/serial/8250/8250_early.c
>>>> @@ -201,3 +201,23 @@ EARLYCON_DECLARE(rt288x, early_rt288x_setup);
>>>>  OF_EARLYCON_DECLARE(rt288x, "ralink,rt2880-uart", early_rt288x_setup);
>>>>  
>>>>  #endif /* CONFIG_SERIAL_8250_RT288X */
>>>
>>> This patch may not apply because the context is sitting on top of
>>> unsubmitted code. Sorry.
>>>
>>> Regards,
>>> Peter Hurley
>>>
>>>> +
>>>> +#ifdef CONFIG_SERIAL_8250_OMAP
>>>> +
>>>> +static int __init early_omap8250_setup(struct earlycon_device *device,
>>>> +				       const char *options)
>>>> +{
>>>> +	struct uart_port *port = &device->port;
>>>> +
>>>> +	if (!(device->port.membase || device->port.iobase))
>>>> +		return -ENODEV;
>>>> +
>>>> +	port->regshift = 2;
>>>> +	device->con->write = early_serial8250_write;
>>>> +	return 0;
>>>> +}
>>
>> I see you did not mean to send this out, but would the above still be
>> necessary with my patch [0]? I am wondering if with my patch you can
>> just add the below OF_EARLYCON_DECLARE() for OMAP?
> 
> Sorry, I see that you have also already made the changes I have in patch
> [0]. However, still curious why you need the above for OMAP?

Yeah, sorry about trouncing your patches.

I let that series from the beginning of last year stall after writing the
dtc compiler patch waiting for the kernel libfdt copy to catch up, and
then forgot about it, until the flood of recent earlycon patches.

Since it rebased (and retested) fairly trivially, I thought I'd just
push it out again.

The reason the omap8250 earlycon needs the regshift init is that the
omap uart DT nodes don't adequately describe the register layout; the
8250_omap sub-driver handles the uart port initialization (iow, it
doesn't use the 8250_of properties to describe i/o register access).
This situation is an artifact of the original omap uart driver,
omap-serial.c

For regular 8250 DT nodes, the only requirement should be the
OF_EARLYCON_DECLARE() to associate the compatible string with
early_serial8250_setup() (and a unique earlycon name such as the one
you already used).

NB: You should be able to re-use the earlycon name itself when
declaring new OF earlycons now. IOW,

OF_EARLYCON_DECLARE(uart, "nvidia,tegra20-uart", early_serial8250_setup);

should work. And this will keep the proliferation of command line
options to a minimum.

Please let me know if that doesn't work.

Regards,
Peter Hurley


> Jon
> 
> [0] http://marc.info/?l=linux-serial&m=145259482325332&w=2
> 

  reply	other threads:[~2016-01-13 17:06 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-08 17:45 [PATCH v3 00/13] Earlycon cleanup Peter Hurley
2015-04-08 17:45 ` [PATCH v3 01/13] of: earlycon: Fix 'stdout-path' with ':' path terminator Peter Hurley
2015-04-08 21:24   ` Rob Herring
2015-04-28 13:07     ` Peter Hurley
2015-04-28 13:28       ` Greg Kroah-Hartman
2015-04-28 13:58         ` Peter Hurley
2015-04-28 14:02           ` Rob Herring
2015-07-22 10:16   ` Sudeep Holla
2015-04-08 17:45 ` [PATCH v3 02/13] earlycon: Use common framework for earlycon declarations Peter Hurley
2015-04-08 17:45 ` [PATCH v3 03/13] serial: earlycon: Fixup earlycon console name and index Peter Hurley
2015-04-08 17:45 ` [PATCH v3 04/13] of: " Peter Hurley
2015-04-08 17:45 ` [PATCH v3 05/13] of: earlycon: Add options string handling Peter Hurley
2015-04-08 17:45 ` [PATCH v3 06/13] of: earlycon: of_setup_earlycon() requires CONFIG_OF_EARLY_FLATTREE Peter Hurley
2015-04-08 17:45 ` [PATCH v3 07/13] of: earlycon: Initialize port fields from DT properties Peter Hurley
2015-04-08 17:45 ` [PATCH v3 08/13] of: earlycon: Move address translation to of_setup_earlycon() Peter Hurley
2015-04-08 17:45 ` [PATCH v3 09/13] serial: earlycon: Common log banner for command line and DT Peter Hurley
2015-04-08 17:45 ` [PATCH v3 10/13] serial: earlycon: Show the earlycon "driver" in banner Peter Hurley
2015-04-08 17:45 ` [PATCH v3 11/13] of: earlycon: Log more helpful message if earlycon not found Peter Hurley
2015-04-08 17:45 ` [PATCH v3 12/13] serial: 8250_early: Use port->regshift Peter Hurley
2015-04-28 11:38   ` Greg Kroah-Hartman
2015-04-08 17:45 ` [PATCH v3 13/13] serial: 8250_omap: Add omap8250 earlycon Peter Hurley
2015-04-08 18:07 ` [PATCH v3 00/13] Earlycon cleanup Peter Hurley
2016-01-12 19:41 ` [PATCH v4 00/11] " Peter Hurley
2016-01-12 19:41   ` [PATCH v4 01/11] earlycon: Use common framework for earlycon declarations Peter Hurley
2016-01-12 19:41   ` [PATCH v4 02/11] serial: earlycon: Fixup earlycon console name and index Peter Hurley
2016-01-12 19:41   ` [PATCH v4 03/11] of: " Peter Hurley
2016-01-12 19:41   ` [PATCH v4 04/11] of: earlycon: Add options string handling Peter Hurley
2016-01-12 19:41   ` [PATCH v4 05/11] of: earlycon: Initialize port fields from DT properties Peter Hurley
2016-01-12 23:49     ` Rob Herring
2016-01-13 16:35       ` Peter Hurley
2016-01-12 19:41   ` [PATCH v4 06/11] of: earlycon: Move address translation to of_setup_earlycon() Peter Hurley
2016-01-12 19:41   ` [PATCH v4 07/11] serial: earlycon: Common log banner for command line and DT Peter Hurley
2016-01-12 19:41   ` [PATCH v4 08/11] serial: earlycon: Show the earlycon "driver" in banner Peter Hurley
2016-01-12 19:41   ` [PATCH v4 09/11] serial: 8250_early: Use port->regshift Peter Hurley
2016-01-12 19:41   ` [PATCH v4 10/11] of: earlycon: Log more helpful message if stdout-path node not found Peter Hurley
2016-01-12 23:38     ` Rob Herring
2016-01-12 19:41   ` [PATCH v4 11/11] serial: 8250_omap: Add omap8250 earlycon Peter Hurley
2016-01-12 19:51     ` Peter Hurley
2016-01-13  9:19       ` Jon Hunter
2016-01-13  9:57         ` Jon Hunter
2016-01-13 10:09         ` Jon Hunter
2016-01-13 17:06           ` Peter Hurley [this message]
2016-01-13 17:15             ` Jon Hunter
2016-01-12 23:52   ` [PATCH v4 00/11] Earlycon cleanup Rob Herring
2016-01-16 21:37   ` [PATCH v5 " Peter Hurley
2016-01-16 21:37     ` [PATCH v5 01/11] earlycon: Use common framework for earlycon declarations Peter Hurley
2016-01-16 21:37     ` [PATCH v5 02/11] serial: earlycon: Fixup earlycon console name and index Peter Hurley
2016-01-16 21:37     ` [PATCH v5 03/11] of: " Peter Hurley
2016-01-16 21:37     ` [PATCH v5 04/11] of: earlycon: Add options string handling Peter Hurley
2016-01-16 21:37     ` [PATCH v5 05/11] of: earlycon: Initialize port fields from DT properties Peter Hurley
2016-01-16 21:54       ` kbuild test robot
2016-01-16 21:37     ` [PATCH v5 06/11] of: earlycon: Move address translation to of_setup_earlycon() Peter Hurley
2016-01-16 22:02       ` kbuild test robot
2016-01-16 21:37     ` [PATCH v5 07/11] serial: earlycon: Common log banner for command line and DT Peter Hurley
2016-01-16 21:37     ` [PATCH v5 08/11] serial: earlycon: Show the earlycon "driver" in banner Peter Hurley
2016-01-16 21:37     ` [PATCH v5 09/11] serial: 8250_early: Use port->regshift Peter Hurley
2016-01-16 21:37     ` [PATCH v5 10/11] of: earlycon: Log more helpful message if stdout-path node not found Peter Hurley
2016-01-16 21:37     ` [PATCH v5 11/11] serial: 8250_omap: Add omap8250 earlycon Peter Hurley
2016-01-16 23:23     ` [PATCH v6 00/12] Earlycon cleanup Peter Hurley
2016-01-16 23:23       ` [PATCH v6 01/12] of: earlycon: of_setup_earlycon() requires CONFIG_OF_EARLY_FLATTREE Peter Hurley
2016-01-16 23:23       ` [PATCH v6 02/12] earlycon: Use common framework for earlycon declarations Peter Hurley
2016-01-16 23:23       ` [PATCH v6 03/12] serial: earlycon: Fixup earlycon console name and index Peter Hurley
2016-01-16 23:23       ` [PATCH v6 04/12] of: " Peter Hurley
2016-01-16 23:23       ` [PATCH v6 05/12] of: earlycon: Add options string handling Peter Hurley
2016-01-16 23:23       ` [PATCH v6 06/12] of: earlycon: Initialize port fields from DT properties Peter Hurley
2016-01-16 23:23       ` [PATCH v6 07/12] of: earlycon: Move address translation to of_setup_earlycon() Peter Hurley
2016-01-16 23:23       ` [PATCH v6 08/12] serial: earlycon: Common log banner for command line and DT Peter Hurley
2016-01-16 23:23       ` [PATCH v6 09/12] serial: earlycon: Show the earlycon "driver" in banner Peter Hurley
2016-01-16 23:23       ` [PATCH v6 10/12] serial: 8250_early: Use port->regshift Peter Hurley
2016-01-16 23:23       ` [PATCH v6 11/12] of: earlycon: Log more helpful message if stdout-path node not found Peter Hurley
2016-01-16 23:23       ` [PATCH v6 12/12] serial: 8250_omap: Add omap8250 earlycon Peter Hurley
2016-02-05  9:19       ` [PATCH v6 00/12] Earlycon cleanup Jon Hunter
2016-02-07  6:08         ` Greg Kroah-Hartman

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=56968407.7090500@hurleysoftware.com \
    --to=peter@hurleysoftware.com \
    --cc=arnd@arndb.de \
    --cc=cernekee@gmail.com \
    --cc=grant.likely@linaro.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=jonathanh@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=paul.burton@imgtec.com \
    --cc=robh+dt@kernel.org \
    --cc=sf84@laposte.net \
    --cc=yamada.masahiro@socionext.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).