From: Lucas Tanure <tanure@linux.com>
To: Jiri Slaby <jirislaby@kernel.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-kernel@vger.kernel.org, linux-serial@vger.kernel.org
Subject: Re: [PATCH] serial: 8250: don't register ports that have no hardware
Date: Wed, 19 Aug 2026 07:31:23 +0100 [thread overview]
Message-ID: <52d1dcfc-9eea-4786-a7e7-13a011b7f1e9@linux.com> (raw)
In-Reply-To: <dd831cb7-7cfc-46cb-a9e4-2899add9518d@kernel.org>
On 19/08/2026 05:42, Jiri Slaby wrote:
> On 18. 08. 26, 20:52, Lucas Tanure wrote:
>> The 8250 driver creates a fixed set of port slots at boot and
>> registers a ttyS device for each one, even when the slot describes no
>> hardware. On device tree platforms those slots are empty, but they
>> still take the ttyS0..ttyS3 names.
>>
>> New Amlogic SoCs (S4, T7) name their real UARTs ttyS as well. With
>> both drivers built in, as in arm64 defconfig, the real port fails to
>> bind:
>>
>> sysfs: cannot create duplicate filename '/class/tty/ttyS0'
>> meson_uart fe078000.serial: Cannot register tty device on line 0
>>
>> Skip slots that have no I/O and no memory address. Legacy x86 slots
>> come with resources and are not affected.
>>
>> Signed-off-by: Lucas Tanure <tanure@linux.com>
>> Assisted-by: Claude:claude-fable-5
>> ---
>> drivers/tty/serial/8250/8250_core.c | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>
>> diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/
>> serial/8250/8250_core.c
>> index f49862d90eeb..e66e0cdbb210 100644
>> --- a/drivers/tty/serial/8250/8250_core.c
>> +++ b/drivers/tty/serial/8250/8250_core.c
>> @@ -378,6 +378,14 @@ void __init serial8250_register_ports(struct
>> uart_driver *drv, struct device *de
>> if (up->port.dev)
>> continue;
>> + /*
>> + * Skip slots that describe no hardware: they would only
>> + * take up ttyS<n> names. Real ports get their node when
>> + * they claim a slot in serial8250_register_8250_port().
>> + */
>> + if (!up->port.iobase && !up->port.mapbase && !up->port.membase)
>> + continue;
>
Hi,
I am working on upstreaming the Khadas VIM4 (Amlogic T7). On that board
the serial console does not come up at all: meson_uart fails to register
because the 8250 stub ports already own the ttyS names.
> So you can no longer set up those ports via TIOCSSERIAL?
>
> And what about already registered consoles?
>
> Why does meson register ttyS* in the first place?
Because of commit e71aab9d6132 ("tty: serial: meson: apply ttyS devname
instead of ttyAML for new SoCs"). meson_uart carries two uart_drivers,
ttyAML and ttyS, and A1, S4 and T7 are wired to the ttyS one.
>
> F*ck AI proposed changes.
>
> thanks,
I will talk to Amlogic list to see if there is other solution.
thanks,
lucas
next prev parent reply other threads:[~2026-08-19 6:31 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-18 18:52 [PATCH] serial: 8250: don't register ports that have no hardware Lucas Tanure
2026-08-19 4:42 ` Jiri Slaby
2026-08-19 6:31 ` Lucas Tanure [this message]
2026-08-19 5:57 ` Greg Kroah-Hartman
2026-08-19 6:40 ` Lucas Tanure
2026-08-19 6:49 ` Greg Kroah-Hartman
2026-08-19 7:31 ` Lucas Tanure
2026-08-19 7:46 ` Greg Kroah-Hartman
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=52d1dcfc-9eea-4786-a7e7-13a011b7f1e9@linux.com \
--to=tanure@linux.com \
--cc=gregkh@linuxfoundation.org \
--cc=jirislaby@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-serial@vger.kernel.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