Re: [PATCH v4 0/4] ACPI: parse the SPCR table

From: Aleksey Makarov
Date: Fri Mar 11 2016 - 11:25:29 EST


Hi Peter,

You are right, SPCR console should support earlycon.
I will send next version that will try to follow your recommendations in a week, after I return from vacations.

As we discussed with Christopher, "serial: pl011: use SPCR to setup 32-bit access" will be dropped.

Thank you
Aleksey Makarov

On 04.03.2016 22:47, Peter Hurley wrote:
On 03/04/2016 03:53 AM, Aleksey Makarov wrote:


On 03/03/2016 06:35 PM, Peter Hurley wrote:
On 03/03/2016 03:59 AM, Aleksey Makarov wrote:


On 03/01/2016 06:31 PM, Peter Hurley wrote:
On 02/29/2016 04:02 AM, Aleksey Makarov wrote:
'ARM Server Base Boot Requirements' [1] mentions SPCR (Serial Port
Console Redirection Table) [2] as a mandatory ACPI table that
specifies the configuration of serial console.

Introduce a new function acpi_console_check(). At the uart port
registration, this function checks if the ACPI SPCR table specifies
its argument of type struct uart_port to be a console
and if so calls add_preferred_console().

How will a user enable an earlycon on the same console as the SPCR
console if there is no DBG2 table?

...
[ 0.000000] earlycon: pl11 at MMIO 0x0000000009000000 (options '')
[ 0.000000] bootconsole [pl11] enabled
...
[ 0.000000] Kernel command line: root=/dev/vda1 rw systemd.show_status=no acpi=force earlycon=pl011,0x9000000
...
[ 0.318248] ACPI: SPCR: adding preferred console [ttyAMA0]
[ 0.318736] ARMH0011:00: ttyAMA0 at MMIO 0x9000000 (irq = 5, base_baud = 0) is a SBSA
[ 0.319502] console [ttyAMA0] enabled
[ 0.319502] console [ttyAMA0] enabled
[ 0.319933] bootconsole [pl11] disabled
[ 0.319933] bootconsole [pl11] disabled
...

Why?

That's pretty disingenuous; via command line?

By that measure, none of your patches are required because a user
can already start both console and earlycon without them.

With the console location specified in the SPCR, earlycon should
be opt-in on the command-line simply with "earlycon" command-line
parameter.

Yes. That's why we have SPCR *and* DBG2.
DBG2 specifies where we should run earlycon.

How will a user enable an earlycon on the same console as the SPCR
console if there is no DBG2 table?

In no way. You need DBG2 to run earlycon.

And that's an entirely arbitrary decision being made by you.
Which I think is unnecessarily limited.


(If you don't want to specify it's address etc explicitly)