Missing Serial port on Linux (Intel LPSS)

Discussion in 'UDOO X86' started by Aurelien, Nov 22, 2019.

  1. Aurelien

    Aurelien UDOOer

    Joined:
    Sep 30, 2019
    Messages:
    7
    Likes Received:
    4
    Hi folks,

    I'm posting this is case this is useful to someone. I spent the last 4 hours trying to find why the Intel Celeron wouldn't show up as /dev/ttyS0 and /dev/ttyS1.

    Here is what you should know.

    Diagnostic:
    [ 3.033328] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
    [ 3.042619] 8086228A:00: ttyS0 at MMIO 0x91520000 (irq = 39, base_baud = 2764800) is a 16550A
    [ 3.042821] serial serial0: tty port ttyS0 registered
    [ 3.050995] 8086228A:01: ttyS1 at MMIO 0x9151e000 (irq = 40, base_baud = 2764800) is a 16550A
    [ 3.051198] serial serial1: tty port ttyS1 registered


    But running, the command below only shows the last (unused) serial ports.
    ~# ls -l /dev/ttyS*
    crw-rw---- 1 root dialout 4, 66 Nov 22 04:04 /dev/ttyS2
    crw-rw---- 1 root dialout 4, 67 Nov 22 04:04 /dev/ttyS3


    Explanation:
    Debian 10 (Buster) and likely other Linux vendors don't include the driver that supports serial ports on Intel LPSS.

    If you reconfigure your Kernel, go to : Device Drivers > Character devices > Serial drivers and enable Support for serial ports on Intel LPSS platforms
     
    waltervl likes this.
  2. Aurelien

    Aurelien UDOOer

    Joined:
    Sep 30, 2019
    Messages:
    7
    Likes Received:
    4
    This note is for Debian 10 running on Kernel 4.19.67.

    Upon enabling Support for serial ports on Intel LPSS platforms, and rebooting on your new kernel, you may not see the /dev/ttyS0 and /dev/ttyS1 devices. This may be because your kernel version isn't able to properly detect/recognize the LPSS Serial port in ACPI mode.

    To address this shortcoming, you have to enter the BIOS and change a setting to expose the serial port(s) over PCI and not ACPI.

    The setting can be found in Advanced > Chipset configuration > LPSS & SCC Configuration
    Then change the value for DMA #1 Support to Enabled (PCI)

    After a reboot, you should see 2 new PCI devices when running lspci
    [...]
    00:1e.3 Communication controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series LPIO1 HSUART Controller #1 (rev 35)
    00:1e.4 Communication controller: Intel Corporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series LPIO1 HSUART Controller #2 (rev 35)
    [...]


    If your kernel has the correct LPSS support, then you should have 2 serial ports exposed: ls -l /dev/ttyS*
    crw-rw---- 1 root dialout 4, 64 Nov 23 06:43 /dev/ttyS0
    crw-rw---- 1 root dialout 4, 65 Nov 23 06:43 /dev/ttyS1

    crw-rw---- 1 root dialout 4, 66 Nov 23 06:43 /dev/ttyS2
    crw-rw---- 1 root dialout 4, 67 Nov 23 06:43 /dev/ttyS3
     
    waltervl likes this.

Share This Page