Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1308643

Re: [PATCH v4 11/11] serial: 8250_omap: Add omap8250 earlycon

From Jon Hunter <jonathanh@nvidia.com>
Newsgroups linux.kernel
Subject Re: [PATCH v4 11/11] serial: 8250_omap: Add omap8250 earlycon
Date 2016-01-13 18:20 +0100
Message-ID <qQxft-2SP-13@gated-at.bofh.it> (permalink)
References (2 earlier) <qQd75-5xe-23@gated-at.bofh.it> <qQdgK-5AE-19@gated-at.bofh.it> <qQpUD-63W-19@gated-at.bofh.it> <qQqGZ-6FS-13@gated-at.bofh.it> <qQx5M-2Pq-17@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Hi Peter,

On 13/01/16 17:06, Peter Hurley wrote:
> 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.

No problem, it is fine with me.

> 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.

Ok.

> Please let me know if that doesn't work.

I am sure it will. I will re-send a patch for this, once this series is
merged.

Cheers
Jon

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v4 00/11] Earlycon cleanup Peter Hurley <peter@hurleysoftware.com> - 2016-01-12 20:50 +0100
  [PATCH v4 08/11] serial: earlycon: Show the earlycon "driver" in banner Peter Hurley <peter@hurleysoftware.com> - 2016-01-12 20:50 +0100
  [PATCH v4 11/11] serial: 8250_omap: Add omap8250 earlycon Peter Hurley <peter@hurleysoftware.com> - 2016-01-12 20:50 +0100
    Re: [PATCH v4 11/11] serial: 8250_omap: Add omap8250 earlycon Peter Hurley <peter@hurleysoftware.com> - 2016-01-12 21:00 +0100
      Re: [PATCH v4 11/11] serial: 8250_omap: Add omap8250 earlycon Jon Hunter <jonathanh@nvidia.com> - 2016-01-13 10:30 +0100
        Re: [PATCH v4 11/11] serial: 8250_omap: Add omap8250 earlycon Jon Hunter <jonathanh@nvidia.com> - 2016-01-13 11:00 +0100
        Re: [PATCH v4 11/11] serial: 8250_omap: Add omap8250 earlycon Jon Hunter <jonathanh@nvidia.com> - 2016-01-13 11:20 +0100
          Re: [PATCH v4 11/11] serial: 8250_omap: Add omap8250 earlycon Peter Hurley <peter@hurleysoftware.com> - 2016-01-13 18:10 +0100
            Re: [PATCH v4 11/11] serial: 8250_omap: Add omap8250 earlycon Jon Hunter <jonathanh@nvidia.com> - 2016-01-13 18:20 +0100
  [PATCH v4 10/11] of: earlycon: Log more helpful message if stdout-path node not found Peter Hurley <peter@hurleysoftware.com> - 2016-01-12 20:50 +0100
    Re: [PATCH v4 10/11] of: earlycon: Log more helpful message if  stdout-path node not found Rob Herring <robh+dt@kernel.org> - 2016-01-13 00:40 +0100
  [PATCH v4 02/11] serial: earlycon: Fixup earlycon console name and index Peter Hurley <peter@hurleysoftware.com> - 2016-01-12 20:50 +0100
  [PATCH v4 05/11] of: earlycon: Initialize port fields from DT properties Peter Hurley <peter@hurleysoftware.com> - 2016-01-12 20:50 +0100
    Re: [PATCH v4 05/11] of: earlycon: Initialize port fields from DT properties Rob Herring <robh+dt@kernel.org> - 2016-01-13 01:00 +0100
      Re: [PATCH v4 05/11] of: earlycon: Initialize port fields from DT  properties Peter Hurley <peter@hurleysoftware.com> - 2016-01-13 17:40 +0100
  [PATCH v4 06/11] of: earlycon: Move address translation to of_setup_earlycon() Peter Hurley <peter@hurleysoftware.com> - 2016-01-12 20:50 +0100
  [PATCH v4 07/11] serial: earlycon: Common log banner for command line and DT Peter Hurley <peter@hurleysoftware.com> - 2016-01-12 20:50 +0100
  [PATCH v4 09/11] serial: 8250_early: Use port->regshift Peter Hurley <peter@hurleysoftware.com> - 2016-01-12 20:50 +0100
  Re: [PATCH v4 00/11] Earlycon cleanup Rob Herring <robh+dt@kernel.org> - 2016-01-13 01:00 +0100

csiph-web