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 >