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

From: [email-masked] (Peter Hurley)
Date: Thu, 3 Sep 2015 14:15:24 -0400

On 09/03/2015 02:00 PM, Marc Zyngier wrote:
> 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

Russell's suggestions were noted in my reply

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

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

Feel free to work from where I left off.

Regards,
Peter Hurley