Changes to UART ns8250

Ganbold Tsagaankhuu ganbold at gmail.com
Wed Oct 9 03:46:06 UTC 2013


On Tue, Oct 8, 2013 at 9:58 AM, Ganbold Tsagaankhuu <ganbold at gmail.com>wrote:

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


Zbigniew,

Just tried again your patch on RK30xx board. I was able to see boot
messages on screen.
This uart detected as:
...
uart0: <16650 or compatible> mem 0x20064000-0x200643ff irq 68 on simplebus0

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

uart0: fast interrupt
...
Can you show me your uart detection log?
It seems this DW uart of RK30xx is different than DW uart of A10/A20.
Boot simply stops printing "start_init: trying /sbin/init".

thanks,

Ganbold



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