Re: kernel 5.19.8: "Oxford Semiconductor Ltd OXPCIe952 Dual Native 950 UART" gets wrong baudrate (PCI ID 1415:c158)

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

 



On 2022-09-13, Anders Blomdell <anders.blomdell@xxxxxxxxxxxxxx> wrote:
> I get incorrect baudrates, my oscilloscope gives:
>
> Programmed	Measured
>
>    2400		  5208
>    4800		 13150
>    9600		 10410
>   19200		 71420
>   38400		142000
>   57600		201600
> 115200		138800

I just ran into what I think is the same problem when upgrading from
5.10.76 to 5.15.68 (sorry I don't have any intermediate kernel
versions to test with). This is an oxford quad 950 board that has
worked flawlessly for many years. Now the baud rates are all wrong.

$ lspci | grep OX
03:00.0 Serial controller: Oxford Semiconductor Ltd OXPCIe954 Quad Native 950 UART

$ dmesg | grep ttyS
[    0.265026] 0000:03:00.0: ttyS0 at MMIO 0xf7801000 (irq = 19, base_baud = 15625000) is a 16550A
[    0.265130] 0000:03:00.0: ttyS1 at MMIO 0xf7801200 (irq = 19, base_baud = 15625000) is a 16550A
[    0.265231] 0000:03:00.0: ttyS2 at MMIO 0xf7801400 (irq = 19, base_baud = 15625000) is a 16550A
[    0.265358] 0000:03:00.0: ttyS3 at MMIO 0xf7801600 (irq = 19, base_baud = 15625000) is a 16550A

The only change I could see in dmesg/setserial output is that the
baud base changed from 4000000 to 15625000. However, changing the baud
base back to 4000000 does not make the ports work again

With the default baud base of 15625000, baud rates look like this:

Programmed  Measured
    2400       5398
    4800      13812
    9600      10796 
   19200      74418
   
The curious thing is that the buad rate errors are non-linear, so you
can't just adjust the base baud value to get correct baud rates. The
algorithm used to calculate the baud divisors seems to be broken.

I've read through the rest of this thread a couple times, but was
unable to figure out what to do to fix this problem or if it got fixed
in more recent kernel versions.

Did this problem get fixed in more recent kernels?

Is there something I can do with a 6.15 kernel to get it this board to
work again?

--
Grant




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux