Bug 1073193 - No ttyS4 on Pine64
No ttyS4 on Pine64
Status: RESOLVED FIXED
Classification: openSUSE
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Kernel
Current
aarch64 openSUSE Factory
: P5 - None : Normal (vote)
: ---
Assigned To: Andreas Färber
E-mail List
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2017-12-16 16:10 UTC by Andreas Färber
Modified: 2022-07-21 17:20 UTC (History)
5 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andreas Färber 2017-12-16 16:10:06 UTC
When enabling the uart4 node in the Pine64's Device Tree, there is no /dev/ttyS4 device available. No related error messages apart from deferred pinctrl probing.

UART3 works fine as /dev/ttyS3.

Workaround: none (use a different UART if you can)

I am guessing that limiting us to four 8250 UARTs causes further UARTs to be silently ignored:

CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4

We should probably revise those numbers.
Comment 1 Andreas Färber 2017-12-16 16:13:40 UTC
A potential workaround might be to tweak the uart4's Device Tree alias to something less than serial4, e.g. serial3 so that it shows up as ttyS3.
Comment 2 Petr Mladek 2017-12-18 11:03:58 UTC
We already allow 32 serial ports on x86_64 to support multiport serial cards, see the bug #652954

I do not see any problem with increasing the default even for arm. I am just not sure what would be a reasonable choice: 8, 16, or 32?

BTW: We might want to increase this limit even for power.

I see the following in SLE15 source git:

$> git grep SERIAL_8250_.*_UARTS
config/arm64/default:CONFIG_SERIAL_8250_NR_UARTS=4
config/arm64/default:CONFIG_SERIAL_8250_RUNTIME_UARTS=4
config/ppc64le/default:CONFIG_SERIAL_8250_NR_UARTS=4
config/ppc64le/default:CONFIG_SERIAL_8250_RUNTIME_UARTS=4
config/x86_64/default:CONFIG_SERIAL_8250_NR_UARTS=32
config/x86_64/default:CONFIG_SERIAL_8250_RUNTIME_UARTS=32

And in upstream (arm, powerpc, x86):
$> git grep SERIAL_8250_.*_UARTS
arch/arm/configs/aspeed_g4_defconfig:CONFIG_SERIAL_8250_NR_UARTS=6
arch/arm/configs/aspeed_g4_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=6
arch/arm/configs/aspeed_g5_defconfig:CONFIG_SERIAL_8250_NR_UARTS=6
arch/arm/configs/aspeed_g5_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=6
arch/arm/configs/davinci_all_defconfig:CONFIG_SERIAL_8250_NR_UARTS=3
arch/arm/configs/davinci_all_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=3
arch/arm/configs/dove_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=2
arch/arm/configs/gemini_defconfig:CONFIG_SERIAL_8250_NR_UARTS=1
arch/arm/configs/gemini_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=1
arch/arm/configs/hisi_defconfig:CONFIG_SERIAL_8250_NR_UARTS=2
arch/arm/configs/hisi_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=2
arch/arm/configs/iop13xx_defconfig:CONFIG_SERIAL_8250_NR_UARTS=2
arch/arm/configs/ixp4xx_defconfig:CONFIG_SERIAL_8250_NR_UARTS=2
arch/arm/configs/moxart_defconfig:CONFIG_SERIAL_8250_NR_UARTS=1
arch/arm/configs/moxart_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=1
arch/arm/configs/multi_v5_defconfig:CONFIG_SERIAL_8250_NR_UARTS=6
arch/arm/configs/multi_v5_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=6
arch/arm/configs/mv78xx0_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=2
arch/arm/configs/mvebu_v5_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=2
arch/arm/configs/nuc910_defconfig:CONFIG_SERIAL_8250_NR_UARTS=1
arch/arm/configs/nuc950_defconfig:CONFIG_SERIAL_8250_NR_UARTS=1
arch/arm/configs/nuc960_defconfig:CONFIG_SERIAL_8250_NR_UARTS=1
arch/arm/configs/omap1_defconfig:CONFIG_SERIAL_8250_NR_UARTS=3
arch/arm/configs/omap1_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=3
arch/arm/configs/omap2plus_defconfig:CONFIG_SERIAL_8250_NR_UARTS=32
arch/arm/configs/omap2plus_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=6
arch/arm/configs/orion5x_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=2
arch/arm/configs/pxa_defconfig:CONFIG_SERIAL_8250_NR_UARTS=7
arch/arm/configs/pxa_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=7
arch/arm/configs/rpc_defconfig:CONFIG_SERIAL_8250_NR_UARTS=16
arch/arm/configs/rpc_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=8
arch/arm/configs/s3c2410_defconfig:CONFIG_SERIAL_8250_NR_UARTS=8
arch/arm/configs/socfpga_defconfig:CONFIG_SERIAL_8250_NR_UARTS=2
arch/arm/configs/socfpga_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=2
arch/arm/configs/sunxi_defconfig:CONFIG_SERIAL_8250_NR_UARTS=8
arch/arm/configs/sunxi_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=8
arch/arm/configs/viper_defconfig:CONFIG_SERIAL_8250_NR_UARTS=5
arch/arm/configs/viper_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=5
arch/arm/configs/zeus_defconfig:CONFIG_SERIAL_8250_NR_UARTS=7
arch/arm/configs/zeus_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=7

arch/powerpc/configs/44x/bluestone_defconfig:CONFIG_SERIAL_8250_NR_UARTS=2
arch/powerpc/configs/44x/bluestone_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=2
arch/powerpc/configs/44x/eiger_defconfig:CONFIG_SERIAL_8250_NR_UARTS=2
arch/powerpc/configs/44x/eiger_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=2
arch/powerpc/configs/44x/fsp2_defconfig:CONFIG_SERIAL_8250_NR_UARTS=32
arch/powerpc/configs/44x/fsp2_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=32
arch/powerpc/configs/44x/redwood_defconfig:CONFIG_SERIAL_8250_NR_UARTS=1
arch/powerpc/configs/44x/redwood_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=1
arch/powerpc/configs/83xx/sbc834x_defconfig:CONFIG_SERIAL_8250_NR_UARTS=2
arch/powerpc/configs/83xx/sbc834x_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=2
arch/powerpc/configs/85xx-hw.config:CONFIG_SERIAL_8250_NR_UARTS=6
arch/powerpc/configs/85xx-hw.config:CONFIG_SERIAL_8250_RUNTIME_UARTS=6
arch/powerpc/configs/85xx/ge_imp3a_defconfig:CONFIG_SERIAL_8250_NR_UARTS=2
arch/powerpc/configs/85xx/ge_imp3a_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=2
arch/powerpc/configs/85xx/socrates_defconfig:CONFIG_SERIAL_8250_NR_UARTS=2
arch/powerpc/configs/85xx/socrates_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=2
arch/powerpc/configs/85xx/xes_mpc85xx_defconfig:CONFIG_SERIAL_8250_NR_UARTS=2
arch/powerpc/configs/85xx/xes_mpc85xx_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=2
arch/powerpc/configs/86xx-hw.config:CONFIG_SERIAL_8250_NR_UARTS=5
arch/powerpc/configs/86xx-hw.config:CONFIG_SERIAL_8250_RUNTIME_UARTS=5
arch/powerpc/configs/mvme5100_defconfig:CONFIG_SERIAL_8250_NR_UARTS=10
arch/powerpc/configs/ppc6xx_defconfig:CONFIG_SERIAL_8250_NR_UARTS=32
arch/powerpc/configs/storcenter_defconfig:CONFIG_SERIAL_8250_NR_UARTS=2
arch/powerpc/configs/storcenter_defconfig:CONFIG_SERIAL_8250_RUNTIME_UARTS=2

arch/x86/configs/i386_defconfig:CONFIG_SERIAL_8250_NR_UARTS=32
arch/x86/configs/x86_64_defconfig:CONFIG_SERIAL_8250_NR_UARTS=32
Comment 3 Andreas Färber 2018-09-01 17:27:22 UTC
Thanks, I'll bump SERIAL_8250_NR_UARTS to 32 for all applicable architectures, including i386 pae, for consistency.

Not knowing this driver too well, I'm doing a test build for whether we can lower SERIAL_8250_RUNTIME_UARTS to 0 on Arm platforms while at it.
Comment 4 Andreas Färber 2018-09-01 18:50:31 UTC
Booting with 8250.nr_uarts=0 results in no serial console output after efistub and no /dev/ttyS* devices. So we'll need to bump SERIAL_8250_RUNTIME_UARTS, too.
Comment 5 Andreas Färber 2018-09-02 09:38:40 UTC
Patches merged into stable branch, but didn't make today's Kernel:stable.
Comment 6 Andreas Färber 2018-09-02 09:40:59 UTC
Verified that ttyS4 is usable now with a home-built kernel, so closing already.