[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Have my PA8800 back online...



On 12/04/2017 03:54 PM, Helge Deller wrote:
Anyway, the *only* problem we have right now is, that the Linux kernel 4.14 doesn't detect all serial ports which were detected in earlier kernels.
Thus the kernel will talk to the non-existant serial port at 0xfffffffff4050010 instead of 0xfffffffff4050000.

4.13:
[   28.882849] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[   28.898720] 0000:e0:01.0: ttyS0 at MMIO 0xfffffffff4051000 (irq = 73, base_baud = 115200) is a 16450
[   28.934669] 0000:e0:01.1: ttyS1 at MMIO 0xfffffffff4050000 (irq = 73, base_baud = 115200) is a 16550A
[   28.963031] 0000:e0:01.1: ttyS2 at MMIO 0xfffffffff4050010 (irq = 73, base_baud = 115200) is a 16550A
[   28.984946] 0000:e0:01.1: ttyS3 at MMIO 0xfffffffff4050038 (irq = 73, base_baud = 115200) is a 16550A

Just today again booted the rp3440 with v4.13.x and it looks like the kernel is not 100% sure what device type ttyS0 is actually. Last time it was detected as a 16450, now it's detected as a 16550A like the others:

```
[   29.060471] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 29.096695] 0000:e0:01.0: ttyS0 at MMIO 0xfffffffff4051000 (irq = 73, base_baud = 115200) is a 16550A [ 29.132592] 0000:e0:01.1: ttyS1 at MMIO 0xfffffffff4050000 (irq = 73, base_baud = 115200) is a 16550A
[...]
[ 29.162444] 0000:e0:01.1: ttyS2 at MMIO 0xfffffffff4050010 (irq = 73, base_baud = 115200) is a 16550A [ 29.184343] 0000:e0:01.1: ttyS3 at MMIO 0xfffffffff4050038 (irq = 73, base_baud = 115200) is a 16550A
```


...but for v4.14.x only the following serial ports are detected:
[   28.671984] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[   28.708902] 0000:e0:01.1: ttyS0 at MMIO 0xfffffffff4050000 (irq = 73, base_baud = 115200) is a 16550A
[   28.731145] 0000:e0:01.1: ttyS1 at MMIO 0xfffffffff4050010 (irq = 73, base_baud = 115200) is a 16550A


Maybe reverting this commit brings back the old behavior:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7d8905d064058f4b65057e0101588f362f288bc0

I'm unsure about this commit, it speaks more of avoiding duplicate messages for device enabling.

After using the "correct" serial port (for v4.14.x) for the console on the rp3440 I could also see, that it detects three of the original four serial ports:

```
[   28.678024] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 28.714510] 0000:e0:01.1: ttyS0 at MMIO 0xfffffffff4050000 (irq = 73, base_baud = 115200) is a 16550A
[   28.715052] console [ttyS0] enabled
[   28.715052] console [ttyS0] enabled
[   28.715536] bootconsole [ttyB0] disabled
[   28.715536] bootconsole [ttyB0] disabled
[ 28.744324] 0000:e0:01.1: ttyS1 at MMIO 0xfffffffff4050010 (irq = 73, base_baud = 115200) is a 16550A [ 28.766256] 0000:e0:01.1: ttyS2 at MMIO 0xfffffffff4050038 (irq = 73, base_baud = 115200) is a 16550A
```

I just couldn't see the last one earlier as there was no further output when using ttyS1 as console and v4.14 as kernel.

According to `lspci` the 16450 (or fourth 16550A) is from a "HP Auxiliary Diva Serial Port":

```
root@rp3440:~# lspci -nn
[...]
e0:01.0 Communication controller [0780]: Hewlett-Packard Company Auxiliary Diva Serial Port [103c:1290] (rev 01) e0:01.1 Serial controller [0700]: Hewlett-Packard Company Diva Serial [GSP] Multiport UART [103c:1048] (rev 03)
```

Interesting - actually the current situation looks like what [your patch from May 29th] should have accomplished. But as you dropped it in favor of a patch to palo, it seems to be unrelated.

[your patch from May 29th]: https://patchwork.kernel.org/patch/9753613/

In addition the Diva port in my rp3440 seems to have a different PCI ID (0x1290 instead of 0x1291) than what you expected for a rp3410 in your patch. Do both machines differ that much or could it be due to a different firmware level maybe?

Cheers,
Frank


Reply to: