All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Menzel <pmenzel@molgen.mpg.de>
To: Greg KH <gregkh@linuxfoundation.org>
Cc: linux-serial@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>
Subject: Re: Non-working serial console
Date: Thu, 2 Jun 2022 23:09:15 +0200	[thread overview]
Message-ID: <1880b7a7-2353-c381-5afb-1d4224eb223b@molgen.mpg.de> (raw)
In-Reply-To: <d8e9f4fe-e8dc-67aa-e240-f2f5f1dfca2f@molgen.mpg.de>

Dear Linux folks,


Am 02.06.22 um 18:50 schrieb Paul Menzel:

> Since a while I noticed, output to the serial console with 
> `console=ttyS0,115200n8` does not work with the attached configuration 
> `defconfig-non-working-serial.txt` created by `make savedefconfig`. 
> Only, when with `earlyprintk=ttyS0,115200,keep` the serial console 
> starts working. I am able to reproduce it in QEMU. It’s reproducible 
> with Linus’ latest master branch.
> 
>      $ git log --oneline --no-decorate -1
>      8ab2afa23bd19 Merge tag 'for-5.19/fbdev-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/linux-fbdev
>      $ qemu-system-x86_64 --version
>      QEMU emulator version 5.1.0
>      Copyright (c) 2003-2020 Fabrice Bellard and the QEMU Project developers
>      $ qemu-system-x86_64 -kernel arch/x86/boot/bzImage -append "console=ttyS0,115200n8" -serial file:/dev/shm/kernel.txt -curses
> 
> With `earlyprintk=` it works:
> 
>      $ qemu-system-x86_64 -kernel arch/x86/boot/bzImage -append "earlyprintk=serial console=ttyS0,115200n8" -serial file:/dev/shm/kernel.txt -curses
> 
> Strangely, I found a different configuration, where it works, but I 
> didn’t see what configuration option makes the difference.
> 
> Can you reproduce the problem with `defconfig-no-working-serial.txt`?

It turns out, the non-working configuration build the serial 8250 driver 
as a module (`CONFIG_SERIAL_8250=m`) instead of building it into the 
Linux kernel. Building it into the Linux kernel and using 
`CONFIG_SERIAL_8250_CONSOLE=y` fixes my issue.

```
$ diff -u .config.old .config
--- .config.old 2022-05-31 18:40:31.329017225 +0200
+++ .config     2022-06-02 22:53:06.317175267 +0200
@@ -1814,6 +1814,7 @@

  CONFIG_UEFI_CPER=y
  CONFIG_UEFI_CPER_X86=y
+CONFIG_EFI_EARLYCON=y
  CONFIG_EFI_CUSTOM_SSDT_OVERLAYS=y
  # CONFIG_EFI_DISABLE_RUNTIME is not set
  # CONFIG_EFI_COCO_SECRET is not set
@@ -2554,11 +2555,13 @@
  #
  # Serial drivers
  #
-CONFIG_SERIAL_8250=m
+CONFIG_SERIAL_EARLYCON=y
+CONFIG_SERIAL_8250=y
  # CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
  CONFIG_SERIAL_8250_PNP=y
  # CONFIG_SERIAL_8250_16550A_VARIANTS is not set
  # CONFIG_SERIAL_8250_FINTEK is not set
+CONFIG_SERIAL_8250_CONSOLE=y
  CONFIG_SERIAL_8250_DMA=y
  # CONFIG_SERIAL_8250_PCI is not set
  CONFIG_SERIAL_8250_NR_UARTS=32
@@ -2575,7 +2578,8 @@
  #
  # CONFIG_SERIAL_KGDB_NMI is not set
  # CONFIG_SERIAL_UARTLITE is not set
-CONFIG_SERIAL_CORE=m
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
  CONFIG_CONSOLE_POLL=y
  # CONFIG_SERIAL_JSM is not set
  # CONFIG_SERIAL_LANTIQ is not set
@@ -2590,7 +2594,7 @@
  # CONFIG_SERIAL_SPRD is not set
   # end of Serial drivers

-CONFIG_SERIAL_MCTRL_GPIO=m
+CONFIG_SERIAL_MCTRL_GPIO=y
  # CONFIG_SERIAL_NONSTANDARD is not set
  # CONFIG_N_GSM is not set
  # CONFIG_NOZOMI is not set
```

The question is, if `earlyprintk=ttyS0,115200(,keep)` worked before with 
`CONFIG_SERIAL_8250=m`, why the driver is needed, and `console=ttyS0,…` 
cannot fall back to the earlyprintk driver.


Kind regards,

Paul

  reply	other threads:[~2022-06-02 21:09 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-02 16:50 Non-working serial console Paul Menzel
2022-06-02 21:09 ` Paul Menzel [this message]
2022-06-04  9:04   ` Greg KH
2022-06-04  9:21     ` Paul Menzel
2022-06-06 14:31       ` Andy Shevchenko

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=1880b7a7-2353-c381-5afb-1d4224eb223b@molgen.mpg.de \
    --to=pmenzel@molgen.mpg.de \
    --cc=gregkh@linuxfoundation.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.