Changes to UART ns8250

Ganbold Tsagaankhuu ganbold at gmail.com
Tue Oct 8 01:58:48 UTC 2013


Zbigniew,


On Tue, Oct 8, 2013 at 3:54 AM, Zbigniew Bodek <zbb at freebsd.org> wrote:

> Hello.
>
> I would like to present a patch for ns8250 serial that I would like to
> commit in the near future (if there are no objections).
>
> The patch is fixing newest DesignWare UART with busy detection.
> During frequency divisors configuration when UART is busy transferring or
> receiving data, line control register manipulation will not take effect.
> Therefore, we will not set divisor latch access bit and we will corrupt LCR
> instead of configuring divisors.
> It is necessary to wait until UART finishes all transfers to proceed with
> the configuration.
>
> This was detected on Armada XP as UART fails on this issue 100/100
> attempts.
> The patch was tested by kevlo@ and me and it works on our Armada XP -
> based
> systems.
>
> Please send your comment or remarks if there are any.
>

I'm trying your patch on r254983.
Tried on 2 boards (Cubieboard2 (Allwinner A20 SoC - dual Cortex A7) and
Radxa Rock (Rockchip RK3188 - Quad Cortex A9)). Both seem to have some sort
of DesignWare uart.

1. It works fine on Cubieboard2. Uart dmesg is like:

uart0: <16750 or compatible> mem 0x1c28000-0x1c283ff irq 33 on simplebus0

uart0: console (115200,n,8,1)

2. No any printing on screen in case of Radxa Rock. Without your patch uart
dmesg is like:

uart0: <16650 or compatible> mem 0x20064000-0x200643ff irq 68 on simplebus0

uart0: console (115200,n,8,1)

In case of RK3188 SoC, it seems booting FreeBSD kernel seems very fragile,
not sure yet what is causing the problem.
Even with stock ns8250 some version later than r254983 didn't show/print
anything on serial console few days ago.
Only thing so far I know is this r254983 (with some patch) works in my case
on RK3188 SoC based board.

thanks,

Ganbold




>
> Best regards
> Zbigniew Bodek
>
> _______________________________________________
> freebsd-current at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe at freebsd.org"
>


More information about the freebsd-current mailing list