[Arm-dev] Gigabyte MP30-AR0, nomodeset, and retaining output on serial console

Thu Jun 2 22:07:25 UTC 2016
Gordan Bobic <gordan at redsleeve.org>

4.4.12 kernel introduces a regression that seems to break this. When 
booting 4.4.12 with:

earlycon=uart8250,mmio32,0x1c020000

it locks up solid before anything appears on the console output.

4.4.11 works fine. Looking at the changelog for 4.4.12, I suspect it's 
one of these commits that broke it:

commit 430b4aab73830577eb22aa434b35947f87e7ea4b
Author: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
Date:   Mon Apr 4 17:35:10 2016 +0300

     serial: 8250_mid: recognize interrupt source in handler

     commit c42850f1ae7e70056f852e67bb9dddf927853b47 upstream.

     There is a special register that shows interrupt status by source. In
     particular case the source can be a combination of DMA Tx, DMA Rx, 
and UART.

     Read the register and call the handlers only for sources that 
request an
     interrupt.

     Fixes: 6ede6dcd87aa ("serial: 8250_mid: add support for DMA engine 
handling from UART MMIO")
     Reviewed-by: Heikki Krogerus <heikki.krogerus at linux.intel.com>
     Signed-off-by: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
     Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>

commit 3c5dafe43d1e36b70606d3baef8d7f24c0883343
Author: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
Date:   Mon Apr 4 17:35:09 2016 +0300

     serial: 8250_mid: use proper bar for DNV platform

     commit 107e15fc1f8d6ef69eac5f175971252f76e82f0d upstream.

     Unlike Intel Medfield and Tangier platforms DNV uses PCI BAR0 for 
IO compatible
     resources and BAR1 for MMIO. We need latter in a way to support 
DMA. Introduce
     an additional field in the internal structure and pass PCI BAR 
based on device
     ID.

     Reported-by: "Lai, Poey Seng" <poey.seng.lai at intel.com>
     Fixes: 6ede6dcd87aa ("serial: 8250_mid: add support for DMA engine 
handling from UART MMIO")
     Reviewed-by: Heikki Krogerus <heikki.krogerus at linux.intel.com>
     Signed-off-by: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
     Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>

commit 1401ebda89ebf3156984c175209f630e0844f6ce
Author: David Müller <d.mueller at elsoft.ch>
Date:   Wed Apr 27 11:58:32 2016 +0200

     serial: 8250_pci: fix divide error bug if baud rate is 0

     commit 6f210c18c1c0f016772c8cd51ae12a02bfb9e7ef upstream.

     Since commit 21947ba654a6 ("serial: 8250_pci: replace switch-case by
     formula"), the 8250 driver crashes in the byt_set_termios() function
     with a divide error. This is caused by the fact that a baud rate of 
0 (B0)
     is not handled properly. Fix it by falling back to B9600 in this case.

     Signed-off-by: David Müller <d.mueller at elsoft.ch>
     Fixes: 21947ba654a6 ("serial: 8250_pci: replace switch-case by 
formula")
     Suggested-by: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
     Reviewed-by: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
     Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>

Has anybody got any ideas on any extra troubleshooting or options to be 
passed for initializing the UART that would produce a more meaningful 
bug report? The cynic in me, supported by past experience, suspects that 
if I file a bug on kernel.org it won't even get triaged for months, if 
ever, especially since the problem is manifesting on hardware few have 
access to.

Gordan

On 28/03/16 01:41, Gordan Bobic wrote:
> I can confirm that adding:
>
> earlycon=uart8250,mmio32,0x1c020000 console=ttyS0,115200 console=tty0
>
> produces exactly the desired results - everything appears on the serial
> port, and as much as usual also appears on the VGA output.
>
> Gordan
>
> On 18/03/16 08:11, Chuong Tran wrote:
>> Hi,
>>
>> You can add "earlycon=uart8250,mmio32,0x1c020000" to see how far the
>> kernel boot on serial console can go.
>>
>> Also, make sure to say Y to CONFIG_SERIAL_8250 & relevant config in your
>> kernel .config.
>>
>> Best regards,
>>
>> Chuong.
>>
>>
>> On Fri, Mar 18, 2016 at 2:49 PM, Michael Howard
>> <mike at dewberryfields.co.uk <mailto:mike at dewberryfields.co.uk>> wrote:
>>
>>     On 18/03/2016 03:18, Chuong Tran wrote:
>>
>>         Hi Gordan,
>>
>>         If you want to retain the output on serial console, please add
>>         kernel command "console=ttyS0,115200" at the grub config.
>>         If you want to see the kernel boot at both serial and vga, add
>>         "console=tty0" (for vga) along side with "console=ttyS0,115200".
>>         The output from VGA will come after kernel configure the video
>> card.
>>
>>
>>     I use this setting ("console=ttyS0,115200 console=tty0") but output
>>     is not retained on the serial console. Maybe this is kernel specific.
>>
>>     --
>>     Mike Howard
>>
>>
>>     _______________________________________________
>>     Arm-dev mailing list
>>     Arm-dev at centos.org <mailto:Arm-dev at centos.org>
>>     https://lists.centos.org/mailman/listinfo/arm-dev
>>
>>
>>
>>
>> _______________________________________________
>> Arm-dev mailing list
>> Arm-dev at centos.org
>> https://lists.centos.org/mailman/listinfo/arm-dev
>>
>
> _______________________________________________
> Arm-dev mailing list
> Arm-dev at centos.org
> https://lists.centos.org/mailman/listinfo/arm-dev