Community
cancel
Showing results for 
Search instead for 
Did you mean: 
AWrob1
New Contributor I
1,449 Views

linux 4.3-rc2 and serial drivers

When starting Linux 4.3-rc2 on Edison

[ 0.287549] serial: probe of 0000:00:04.0 failed with error -16

and I am getting constantly

[ 8.562928] irq 54: nobody cared (try booting with the "irqpoll" option)

Judging by

root@edison:~# cat /proc/interrupts | grep 54

54: 601793 0 IO-APIC 54-fasteoi serial

I am missing some serial driver... or 8250-pci misses some bits.

 

Any suggestions?

 

14 Replies
OPear
Beginner
167 Views

Hi there

I had the same problem when running kernel 4.2.1. It only occurred when running in SMP mode. I think there's a locking problem with multiprocessor setups. Try compile without SMP support and see if that fixes things.

Oskar

Andriy_S_Intel
Employee
167 Views

54 is an IRQ line assigned to ttyS2. This port is used as a debug console. What is your configuration?

AWrob1
New Contributor I
167 Views

My configuration can be found at

https://github.com/wrobell/meta-edison/blob/linux-4.x/recipes-kernel/linux/files/edison/defconfig https://github.com/wrobell/meta-edison/blob/linux-4.x/recipes-kernel/linux/files/edison/defconfig

In the older kernels the serial console was achieved thanks to CONFIG_SERIAL_MFD_HSU_CONSOLE=y, I believe.

BTW, there was significant rework of serial drivers for Linux 4.1: https://lkml.org/lkml/2015/4/21/144 LKML: Greg KH: [GIT PULL] TTY/Serial patches for 4.1-rc1

Andriy_S_Intel
Employee
167 Views

Yes, it used to be a separate driver for that. Now it is covered by 8250_pci. It seems you have the bits enabled in your configuration file (btw, it's not a defconfig: http://stackoverflow.com/questions/27899104/creating-defconfig-file-from-config/27918677 http://stackoverflow.com/questions/27899104/creating-defconfig-file-from-config/27918677) to get it. What is yours kernel command line? I'm using console=tty1 console=ttyS2,115200n8 ignore_loglevel.

One more thing: do you have enabled the following?

CONFIG_SERIAL_8250_SHARE_IRQ=y

CONFIG_SERIAL_8250_DETECT_IRQ=y

AWrob1
New Contributor I
167 Views

I am using similar console parameters. Tried with and without "console=tty1". I am just using loglevel 8.

Tried to use CONFIG_SERIAL_8250_SHARE_IRQ and CONFIG_SERIAL_8250_DETECT_IRQ as well. No luck.

Without SMP mode the serial probe still fails.

OPear
Beginner
167 Views

Hi wrobell

Are you not getting serial output at all on the console? I've got the serial console working correctly with this config: http://www.deckle.co.uk/intel-edison/edison-kernel-config-v4.2.1-broken-mmc.conf http://www.deckle.co.uk/intel-edison/edison-kernel-config-v4.2.1-broken-mmc.conf

Note that you need to change your boot parameters to output to ttyS2 rather than ttyMFD2 once you're in later kernels - for both the 'console' and 'earlyprintk' items. This is because the later kernels integrat the original MFD driver into a standard serial TTY instead.

Oskar

AWrob1
New Contributor I
167 Views

I get the serial console and shell.

What do you get with command

$ dmesg | grep serial

?

OPear
Beginner
167 Views

Relevant bits (replied separately, but it's possibly useful to someone else

[ 1.931918] pci_hotplug: PCI Hot Plug PCI Core version: 0.5

[ 1.935315] hsu_dma_pci 0000:00:05.0: Found HSU DMA, 12 channels

[ 1.937984] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled

[ 1.941259] 0000:00:04.1: ttyS0 at MMIO 0xff010080 (irq = 28, base_baud = 1843200) is a TI16750

[ 1.942505] 0000:00:04.2: ttyS1 at MMIO 0xff010100 (irq = 29, base_baud = 1843200) is a TI16750

[ 1.943628] console [ttyS2] disabled

[ 1.943774] 0000:00:04.3: ttyS2 at MMIO 0xff010180 (irq = 54, base_baud = 1843200) is a TI16750

[ 2.992057] console [ttyS2] enabled

[ 2.997444] Non-volatile memory driver v1.3

[ 3.002747] Linux agpgart interface v0.103

[ 3.007256] [drm] Initialized drm 1.1.0 20060810

[ 3.021119] loop: module loaded

Sergio_A_Intel
Employee
167 Views

Hi wrobell,

Do you still need assistance with this thread?

Sergio

OPear
Beginner
167 Views

Hi Sergio

Thanks for looking at our thread!

I think that this really should be continued on - the overarching problem is detailed there. The current kernel we have is way way way too old to work with most hardware, and getting later kernels to work on the Edison doesn't seem feasible. This particular query is an example of the problem.

(For some reason that particular thread is marked as 'answered' - when it shouldn't be, from my understanding.)

Oskar

AWrob1
New Contributor I
167 Views

Hi Sergio,

I have not found a solution the problem yet. Is it configuration? Is it some missing bit in the kernel?

It would be great to get some indication from Intel if newer kernels have a chance to be supported.

Andriy_S_Intel
Employee
167 Views

wrobell, Try the configuration I prepared on my github repository. At least it works with Intel Edison board I have access to without mentioned disadvantage.

# uptime

04:41:55 up 4:41, load average: 0.00, 0.01, 0.00

# dmesg | tail -n10

[ 228.547034] sdhci-pci 0000:00:01.0: No vmmc regulator found

[ 228.552780] sdhci-pci 0000:00:01.0: No vqmmc regulator found

[ 228.570202] mmc0: SDHCI controller on PCI [0000:00:01.0] using ADMA

[ 228.576801] intel_mid_pci_irq_enable 0 >>> 37 2 -1

[ 228.581837] sdhci-pci 0000:00:01.2: SDHCI controller found [8086:1190] (rev 1)

[ 228.589434] intel_mid_pci_irq_enable 0 >>> 38 3 -1

[ 228.594439] sdhci-pci 0000:00:01.3: SDHCI controller found [8086:1190] (rev 1)

[ 228.678326] mmc0: MAN_BKOPS_EN bit is not set

[ 228.692491] mmc0: new DDR MMC card at address 0001

[ 305.637287] mmc0: card 0001 removed

# uname -a

Linux buildroot 4.3.0-rc5-next-20151013+ # 28 SMP Wed Oct 14 16:42:40 EEST 2015 i686 GNU/Linux

AWrob1
New Contributor I
167 Views

0andriy, what output do you have for

$ dmesg | grep serial

?

Sergio_A_Intel
Employee
167 Views

Hi,

There are plans to support newer kernels but so far there haven't been any updates when it will be released. Hopefully it will be available soon but for now there is no additional information.

Sergio

Reply