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

From: Peter Hurley
Date: Fri Mar 04 2016 - 10:47:47 EST


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)