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 Tue, 4 Oct 2022, Grant Edwards wrote:

> 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?

This series was used to fix the problem:

https://lore.kernel.org/linux-serial/alpine.DEB.2.21.2209201659350.41633@xxxxxxxxxxxxxxxxx/T/#t

Patch 2/3 went only for v5.19+.

-- 
 i.


> 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