[iotg][ehl][ehl-aaeon] TTY port ttyS5 has been occupied

Bug #1949939 reported by AaACM
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
intel
New
Undecided
Unassigned
Lookout-canyon-series
Won't Fix
High
Ivan Hu

Bug Description

SKU: AAEON UPN-EHL01

Image used: Image used: ubuntu-20.04-preinstalled-desktop-amd64+intel-iot.img

Steps to reproduced
===================================================
1. Enable the CN62 RS232/422 on UPN-EHL01 in BIOS menu
"Advanced -> HSUART Configuration -> HSUART Controller" select "SIO",

2. Save BIOS configuration and reboot the device

3. booting into Ubuntu

Expected results
======================
the TTY device node /dev/ttyS5 was existed and can access the UART (RS232/422)

Actual results
=======================
The device node "/dev/ttyS5" is disappear and the error kernel log is "[ 3.200508] serial serial0: tty port ttyS5 registered" in the attachment.

Revision history for this message
AaACM (aaa-cm) wrote :
Kent Lin (kent-jclin)
Changed in intel:
assignee: nobody → Kent Lin (kent-jclin)
Revision history for this message
Kent Lin (kent-jclin) wrote :

@Aaeon,

There is no UART port on AAEON's EHL board we received. Could you please provide it?

Revision history for this message
Pierre Equoy (pieq) wrote (last edit ):

Image used: 20211202.2
SKU: AAEON UPN-EHL01
CID: 202109-29496

I connected the UART adapter (COM port) to the CN62 connector (see user manual[1]), then followed the steps from the description, and get the same error:

[ 2.670839] dw-apb-uart.7: ttyS4 at MMIO 0x600111e000 (irq = 33, base_baud = 114825) is a 16550A
[ 2.698850] dw-apb-uart.8: ttyS5 at MMIO 0x600111c000 (irq = 16, base_baud = 114825) is a 16550A
[ 2.711395] serial serial0: tty port ttyS5 registered
(...)
[ 2.731002] dw-apb-uart.9: ttyS6 at MMIO 0x600111b000 (irq = 17, base_baud = 114825) is a 16550A

and ttyS5 is absent:

$ ls /dev/ttyS*
/dev/ttyS0 /dev/ttyS10 /dev/ttyS12 /dev/ttyS14 /dev/ttyS16 /dev/ttyS18 /dev/ttyS2 /dev/ttyS21 /dev/ttyS23 /dev/ttyS25 /dev/ttyS27 /dev/ttyS29 /dev/ttyS30 /dev/ttyS4 /dev/ttyS7 /dev/ttyS9
/dev/ttyS1 /dev/ttyS11 /dev/ttyS13 /dev/ttyS15 /dev/ttyS17 /dev/ttyS19 /dev/ttyS20 /dev/ttyS22 /dev/ttyS24 /dev/ttyS26 /dev/ttyS28 /dev/ttyS3 /dev/ttyS31 /dev/ttyS6 /dev/ttyS8

[1] https://downloads.up-community.org/download/up-squared-6000-user-manual/

Pierre Equoy (pieq)
Changed in intel:
assignee: Kent Lin (kent-jclin) → nobody
Revision history for this message
Kent Lin (kent-jclin) wrote :

From AAEON latest update, it seems like a BIOS issue.

But question to Ethan and Kernel team, Could Ubuntu check the ACPI table for COM port declared by BIOS?

=================================================

Subject: RE: R1.4 (EAPLAM14)(12/21/2018): EMB-APL1 BIOS Release

Dear Max,

昨天我有發一版M15 BIOS,有測試過Ubuntu & Windows下COM 1~6皆可以使用了。

Ubuntu似乎不像Windows一樣會參考BIOS宣告COM port的ACPI table,所以需要透過setserial這tool告訴OS COM port resource,SOP如下:

l sudo apt-get update

l sudo apt-get install setserial

l sudoedit /var/lib/setserial/autoserial.conf (如圖1)

1. 加入 (如圖1-1)

/dev/ttyS4 uart 16550A port 0x2F0 irq 11 baud_base 115200 spd_normal skip_test

/dev/ttyS5 uart 16550A port 0x2E0 irq 11 baud_base 115200 spd_normal skip_test

2. 按Ctrl+X離開,選manual (如圖1-2)

l sudo dpkg-reconfigure setserial

l reboot system

l sudo setserial –g /dev/ttyS[012345] (檢查COM port數值,如圖2)

另外,BIOS無法指定COM port IRQ的問題,目前COM port 3 & 4及5 & 6是share IRQ的方式,所以數值會共用。

Thanks

Revision history for this message
Doug Jacobs (djacobs98) wrote :

I tried the above modification to the system and was unable to get a port assigned to the serial devices.

I have attached the dmesg and acpidump logs taken before and after the modifications.

Revision history for this message
Doug Jacobs (djacobs98) wrote :
Revision history for this message
Doug Jacobs (djacobs98) wrote :
Revision history for this message
Doug Jacobs (djacobs98) wrote :
Revision history for this message
Ivan Hu (ivan.hu) wrote :

Checking the the kernel log,
The UART is with MMIO, not I/O port,
[ 3.122152] 0000:00:11.0: ttyS4 at MMIO 0x6001324000 (irq = 140, base_baud = 12500000) is a 16550A
...
[ 3.172039] 0000:00:11.1: ttyS5 at MMIO 0x6001322000 (irq = 141, base_baud = 12500000) is a 16550A

This should be the reason that setserial(only show I/O port and IRQ) doesn't show port information.

I also check the acpidump, I haven't seen the I/O port defined,
the UART resoure defined from the SystemMemory(BAR0)

Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
    Return (UARH (UC00, UI00))
}

Method (UARH, 2, Serialized)
{
    OperationRegion (UACF, SystemMemory, Arg0, 0x18)
    Field (UACF, AnyAcc, NoLock, Preserve)
    {
        Offset (0x10),
        BAR0, 64
    }
...
}

Revision history for this message
Anthony Wong (anthonywong) wrote :

Per Ivan's comment in #9, this does not look like an issue. If so I think we should close this bug.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.