Linux Serial subsystem development
 help / color / mirror / Atom feed
From: "Théo Lebrun" <theo.lebrun@bootlin.com>
To: "Russell King (Oracle)" <linux@armlinux.org.uk>
Cc: "Hugo Villeneuve" <hugo@hugovil.com>,
	"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
	"Jiri Slaby" <jirislaby@kernel.org>,
	<linux-kernel@vger.kernel.org>, <linux-serial@vger.kernel.org>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Gregory CLEMENT" <gregory.clement@bootlin.com>,
	"Alexandre Belloni" <alexandre.belloni@bootlin.com>,
	"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
	"Vladimir Kondratiev" <vladimir.kondratiev@mobileye.com>,
	"Tawfik Bayouk" <tawfik.bayouk@mobileye.com>
Subject: Re: [PATCH 6/6] tty: serial: amba-pl011: Parse bits option as 5, 6, 7 or 8 in _get_options
Date: Tue, 31 Oct 2023 15:30:32 +0100	[thread overview]
Message-ID: <CWMP3FX78B9O.9GVKCAH3OFGZ@tleb-bootlin-xps13-01> (raw)
In-Reply-To: <ZUEJjdfk/vmH8XTR@shell.armlinux.org.uk>

Hello,

On Tue Oct 31, 2023 at 3:05 PM CET, Russell King (Oracle) wrote:
> On Tue, Oct 31, 2023 at 02:51:45PM +0100, Théo Lebrun wrote:
> > On Tue Oct 31, 2023 at 12:22 PM CET, Russell King (Oracle) wrote:
> > > On Tue, Oct 31, 2023 at 12:04:11PM +0100, Théo Lebrun wrote:
> > > > On Tue Oct 31, 2023 at 11:11 AM CET, Russell King (Oracle) wrote:
> > > > > There is no point in supporting 5 or 6 bits for console usage. Think
> > > > > about it. What values are going to be sent over the console? It'll be
> > > > > ASCII, which requires at _least_ 7-bit. 6-bit would turn alpha
> > > > > characters into control characters, punctuation and numbers. 5-bit
> > > > > would be all control characters.
> > > > >
> > > > > So there's no point trying to do anything with 5 or 6 bits per byte,
> > > > > and I decided we might as well take that as an error (or maybe a
> > > > > case that the hardware has not been setup) and default to 8 bits per
> > > > > byte.
> > > > 
> > > > I see your point. Two things come to mind:
> > > > 
> > > >  - I added this parsing of 5/6 bits to be symmetrical with
> > > >    pl011_set_termios that handles 5/6 properly. Should pl011_set_termios
> > > >    be modified then?
> > >
> > > Why should it? Note that I said above about _console_ usage which is
> > > what you were referring to - the early code that sets up the console
> > > by either reading the current settings (so that we can transparently
> > > use the UART when its handed over already setup by a boot loader).
> > >
> > > This is completely different to what happens once the kernel is running.
> > > Userspace might very well have a reason to set 5 or 6 bits if it wants
> > > to communicate with a device that uses those sizes.
> > >
> > > However, such a device won't be a console for the reasons I outlined
> > > above (it will truncate the ASCII characters turning console messages
> > > into garbage.)
> > 
> > I'm not sure I get it. (1) We assume it is a console so it's ASCII so no
> > reason to set to 5 or 6 bits per word. But (2) there might be a reason
> > to set the UART to 5 or 6 bits, the userspace decides.
>
> Precisely.
>
> > How do the two interact? Say we boot to Linux, userspace configures to 6
> > bits because reasons and we reset. At second probe we see a config of 6
> > bits per word but assume that can't be logical, even though it is.
>
> I think you're conflating "serial console" with "serial port". A
> "serial port" can support multiple different formats, and in this case,
> such as 5, 6, 7, and 8 bits. 5 and 6 bits are likely to be a specialised
> application which uses a binary protocol, not ASCII.
>
> A "serial console" is one application of a "serial port" and a "serial
> console" is used to send ASCII characters, not a binary protocol.

That was all clear in my mind; I was missing the following bit:

> Sorry, but no, we don't assume every serial port is a serial console.
> Unless something has changed since I was involved with the serial
> layer, **we only read the parameters from a serial port _if_ and only
> if that port is being used as a serial console.**

Thank you for the time you took; I'll get rid of the patch and send a V2
fixing nits for other patches.

Regards,

--
Théo Lebrun, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

  reply	other threads:[~2023-10-31 14:30 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-26 10:41 [PATCH 0/6] Cleanup AMBA PL011 driver Théo Lebrun
2023-10-26 10:41 ` [PATCH 1/6] tty: serial: amba: cleanup whitespace Théo Lebrun
2023-10-26 12:05   ` Linus Walleij
2023-10-26 10:41 ` [PATCH 2/6] tty: serial: amba: Use BIT() macro for constant declarations Théo Lebrun
2023-10-26 13:37   ` Linus Walleij
2023-10-26 14:14     ` Théo Lebrun
2023-10-26 10:41 ` [PATCH 3/6] tty: serial: amba-pl011: cleanup driver Théo Lebrun
2023-10-26 13:38   ` Linus Walleij
2023-10-26 10:41 ` [PATCH 4/6] tty: serial: amba-pl011: replace TIOCMBIT macros by static functions Théo Lebrun
2023-10-26 13:46   ` Linus Walleij
2023-10-26 14:24   ` Hugo Villeneuve
2023-10-26 14:37     ` Théo Lebrun
2023-10-26 10:41 ` [PATCH 5/6] tty: serial: amba-pl011: unindent pl011_console_get_options function body Théo Lebrun
2023-10-26 13:46   ` Linus Walleij
2023-10-26 10:41 ` [PATCH 6/6] tty: serial: amba-pl011: Parse bits option as 5, 6, 7 or 8 in _get_options Théo Lebrun
2023-10-26 11:13   ` Ilpo Järvinen
2023-10-26 12:54     ` Théo Lebrun
2023-10-26 13:48   ` Linus Walleij
2023-10-26 14:18     ` Théo Lebrun
2023-10-26 14:53   ` Hugo Villeneuve
2023-10-31  9:35     ` Théo Lebrun
2023-10-31 10:11       ` Russell King (Oracle)
2023-10-31 11:04         ` Théo Lebrun
2023-10-31 11:22           ` Russell King (Oracle)
2023-10-31 13:51             ` Théo Lebrun
2023-10-31 14:05               ` Russell King (Oracle)
2023-10-31 14:30                 ` Théo Lebrun [this message]
2023-10-31 13:39       ` Hugo Villeneuve

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=CWMP3FX78B9O.9GVKCAH3OFGZ@tleb-bootlin-xps13-01 \
    --to=theo.lebrun@bootlin.com \
    --cc=alexandre.belloni@bootlin.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=gregory.clement@bootlin.com \
    --cc=hugo@hugovil.com \
    --cc=jirislaby@kernel.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-serial@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=tawfik.bayouk@mobileye.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=vladimir.kondratiev@mobileye.com \
    /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