Re: earlycon: no match?

From: Peter Hurley
Date: Thu May 07 2015 - 18:37:58 EST


On 05/07/2015 06:25 PM, Maciej W. Rozycki wrote:
> On Thu, 7 May 2015, Peter Hurley wrote:
>
>>> How does this overload interact with multiple `console=' options being
>>> present BTW, which one is considered the early console? Or do we support
>>> driving multiple early consoles in parallel just as we do with regular
>>> consoles?
>>
>> Please familiarize yourself with the existing 'console=' and 'earlycon='
>> command line options documented in Documentation/kernel-parameters.txt
>
> Thank you for your suggestion, however that documentation does not answer
> my questions I am afraid (and neither does serial-console.txt). Otherwise
> I wouldn't have asked them in the first place. If you don't know the
> answers either, then it's OK to say: "I don't know".
>
> E.g. (given the parameter aliasing we have) will:
>
> `earlycon=uart8250,io,0x3f8 console=tty0'
> `console=tty0 earlycon=uart8250,io,0x3f8'
>
> do what I expect it to, that is open the UART at 0x3f8 as an early console
> and then hand it over to the ttyS0 device as respectively a secondary and
> the primary (/dev/console) regular console?

No.

>From Documentation/kernel-parameters.txt:

earlycon= [KNL] Output early console device and options.

.....

uart[8250],io,<addr>[,options]
uart[8250],mmio,<addr>[,options]
uart[8250],mmio32,<addr>[,options]
Start an early, polled-mode console on the 8250/16550
UART at the specified I/O port or MMIO address.
MMIO inter-register address stride is either 8-bit
(mmio) or 32-bit (mmio32).
The options are the same as for ttyS, above.

IOW, command line parameters of the form:

earlycon=uart8250,...

does not perform earlycon-to-console handoff.

Also from Documentation/kernel-parameters.txt:

console= [KNL] Output console device and options.

.....

uart[8250],io,<addr>[,options]
uart[8250],mmio,<addr>[,options]
Start an early, polled-mode console on the 8250/16550
UART at the specified I/O port or MMIO address,
switching to the matching ttyS device later. The
options are the same as for ttyS, above.

IOW, command line parameters of the form:

console=uart8250,...

performs earlycon-to-console handoff.

Furthermore, because of the way aliasing was implemented in 2007,
it has been possible since to start _any_ earlycon with command line
parameters of the form:

console=<earlycon name>,....

However, only 8250 implemented the console handoff.

Regards,
Peter Hurley

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/