From: Peter Hurley <peter@hurleysoftware.com>
To: Gabor Juhos <juhosg@openwrt.org>,
Matthias Schiffer <mschiffer@universe-factory.net>
Cc: Ralf Baechle <ralf@linux-mips.org>,
gregkh@linuxfoundation.org, jslaby@suse.com,
linux-mips@linux-mips.org, linux-serial@vger.kernel.org,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: Nonterministic hang during bootconsole/console handover on ath79
Date: Fri, 25 Mar 2016 08:24:40 -0700 [thread overview]
Message-ID: <56F55838.40001@hurleysoftware.com> (raw)
In-Reply-To: <56F53626.1040507@openwrt.org>
Hi Gabor,
On 03/25/2016 05:59 AM, Gabor Juhos wrote:
> 2016.03.24. 4:17 keltezéssel, Peter Hurley írta:
>> On 03/23/2016 07:09 PM, Matthias Schiffer wrote:
>>>>> autoconfig_16550a() is doing all kinds of weird checks to detect different
>>>>> hardware by writing a lot of register values which are documented as
>>>>> reserved in the AR7242 datasheet (there's a leaked version going around
>>>>> that can be easily googled...), no idea if any of those are problematic.
>>>>> Just setting UPF_FIXED_TYPE as suggested by Peter would avoid that code
>>>>> altogether.
>>>>
>>>> That's just a debugging patch and not appropriate for permanent use,
>>>> the reason being that this uart is _not_ 16550 compatible (or even 16450
>>>> compatible).
>>>>
>>>> The three options for 8250 driver support for this part are:
>>>> 1. Similar to the debugging patch, set UPF_FIXED_TYPE but set port type
>>>> to PORT_8250 instead. This will lose FIFO support so 115K won't be
>>>> possible and likely neither will 38400.
>>>>
>>>> 2. Set UPF_FIXED_TYPE but define a new PORT_* value and add support for
>>>> this PORT_* value to uart_config array, uapi headers, and anywhere
>>>> the scratch register is used.
>>>>
>>>> 3. As with 2. above but don't set UPF_FIXED_TYPE and add a probe function
>>>> that detects ports of this type to autoconfig(). I don't recommend this
>>>> method.
>>>>
>>>> This requirement is independent of fixing prom_putchar_ar71xx().
>>>>
>>>
>>> I can send patches for all of this, and I think that 2. would be the nicest
>>> solution. I've noticed though that include/uapi/linux/serial_core.h is
>>> experiencing a little "overflow": PORT_MAX_8250 has grown just below the
>>> first non-8250 entry.
>>
>> Ugh. Thanks for noting this.
>>
>>> Should I just add the new entry at the bottom (and
>>> thus grow the uart_config array by ~85 unused entries)? What about
>>> PORT_MAX_8250 (used at least in drivers/tty/serial/8250/8250_of.c)?
>>
>> None of the above, unfortunately. Ok, plan B.
>>
>> I need to clean off a dusty series that adds probe steering and
>> bugs pass-thru for 8250 sub-drivers and platform data. Then add a
>> UART_BUG_NOSCR to indicate a uart does not have a scratch register
>> (like this one). Then for this uart, set UPF_FIXED_TYPE and type to
>> PORT_16550A, with UART_BUG_NOSCR flag.
>
> Introducing the UART_BUG_NOSCR flag for this UART is pointless in my opinion,
> because it does have a scratch register in fact. Even if it is not listed in the
> datasheet of the SoCs, it exists.
Ok, then the part(s) should be compatible enough with the 8250 driver as it is.
If boot hang problem persists on these parts, then the autoconfig() probes may
still be a problem, and my debugging patch from earlier can be used to skirt
autoconfig().
> I have tested that from the bootloader on the Netgear WNDR3700 board which uses
> the AR7161 SoC:
Thanks for testing.
Regards,
Peter Hurley
next prev parent reply other threads:[~2016-03-25 15:24 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-21 23:02 Nonterministic hang during bootconsole/console handover on ath79 Matthias Schiffer
2016-03-21 23:08 ` Greg KH
2016-03-22 0:52 ` Matthias Schiffer
2016-03-22 2:51 ` Peter Hurley
2016-03-22 2:44 ` Peter Hurley
2016-03-22 13:07 ` Matthias Schiffer
2016-03-22 15:38 ` Peter Hurley
2016-03-23 17:40 ` Matthias Schiffer
2016-03-24 0:44 ` Peter Hurley
2016-03-24 2:09 ` Matthias Schiffer
2016-03-24 3:17 ` Peter Hurley
2016-03-25 12:59 ` Gabor Juhos
2016-03-25 15:24 ` Peter Hurley [this message]
2016-03-22 5:40 ` Antony Pavlov
2016-03-22 9:50 ` Matthias Schiffer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56F55838.40001@hurleysoftware.com \
--to=peter@hurleysoftware.com \
--cc=gregkh@linuxfoundation.org \
--cc=jslaby@suse.com \
--cc=juhosg@openwrt.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=linux-serial@vger.kernel.org \
--cc=mschiffer@universe-factory.net \
--cc=ralf@linux-mips.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).