Subject: earlycon issues in -next with amba-pl011 updates

From: [email-masked] (Marc Zyngier)
Date: Thu, 03 Sep 2015 19:00:30 +0100

On 03/09/15 18:49, Peter Hurley wrote:
> On 09/03/2015 12:08 PM, Marc Zyngier wrote:
>> On 03/09/15 16:52, Greg Kroah-Hartman wrote:
>>> On Thu, Sep 03, 2015 at 11:23:15AM +0100, Marc Zyngier wrote:
>>>> On 11/08/15 02:48, Jun Nie wrote:
>>>>> 2015-08-11 7:23 GMT+08:00 Leif Lindholm <[email-masked]>:
>>>>>> Hi all,
>>>>>>
>>>>>> The kernelci.org bot picked up a complete boot failure (no output past
>>>>>> UEFI stub) with next-20150806 and Tyler bisected it down to somewhere
>>>>>> in
>>>>>> 8cd90e5 uart: pl011: Add support to ZTE ZX296702 uart
>>>>>> 09dcc7d uart: pl011: Improve LCRH register access decision
>>>>>> 2c096a9 uart: pl011: Introduce register look up table
>>>>>> 7b753f3 uart: pl011: Introduce register accessor
>>>>>>
>>>>>> The issue only appears with earlycon on command line, for pl011
>>>>>> consoles.
>>>>>>
>>>>>> Some investigation shows that the cause lies with
>>>>>> commit 7b753f318d14 ("uart: pl011: Introduce register accessor")
>>>>>> and
>>>>>> commit 2c096a9eedc6 ("uart: pl011: Introduce register look up table")
>>>>>>
>>>>>> Specifically, the changes to pl011_putc() are incorrect:
>>>>>> The new pl011_ accessors take a (struct uart_amba_port *) input, but
>>>>>> pl011_putc() directly uses the incoming (struct uart_port *) for this.
>>>>>>
>>>>>> Apart from ending up with an unintended/incorrect UART base address,
>>>>>> the introduction of the lookup table for register offsets also means
>>>>>> the accessors try to dereference (struct uart_amba_port *)->reg_lut.
>>>>>>
>>>>>> The below is a hack that shows/resolves the issue, but some
>>>>>> refactoring of the original patches might be in order.
>>>>>>
>>>>>> /
>>>>>>     Leif
>>>>>
>>>>> Leif,
>>>>>
>>>>> Sorry for the inconvenience. I do not have idea of early console till
>>>>> now and I always have debug console for early panic debug. Learned
>>>>> more from this issue.
>>>>>
>>>>> Suppose Peter's patch will resolve your issue.
>>>>
>>>> [+ Greg KH]
>>>>
>>>> So -next has now been broken for a while on a number of ARM platforms
>>>> because of this (they simply cannot boot), and no progress has been made
>>>> towards resolving this problem.
>>>>
>>>> Can we please drop this series (at least commits 7b753f3 and following)
>>>> from -next until is has been reworked and reviewed?
>>>
>>> I don't have any patches in my -next tree, everything is in Linus's tree
>>> now.  So if I've missed something, or need to revert something, please
>>> let me know specifcally what to do.
>>
>> Gahhh... Given that there is no obvious fix
> 
> Fix has been on list since Aug 10.
> 
> http://www.spinics.net/lists/linux-serial/msg18576.html

... with both Leif and Russell outlining issues with this patch:

http://www.spinics.net/lists/linux-serial/msg18594.html
http://www.spinics.net/lists/linux-serial/msg18599.html

so maybe coming up with an updated series would have been a good move.

	M.
-- 
Jazz is not dead. It just smells funny...