From owner-freebsd-embedded@FreeBSD.ORG Sat Oct 26 17:34:53 2013 Return-Path: Delivered-To: freebsd-embedded@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 29098FF3; Sat, 26 Oct 2013 17:34:53 +0000 (UTC) (envelope-from zbodek@gmail.com) Received: from mail-we0-x234.google.com (mail-we0-x234.google.com [IPv6:2a00:1450:400c:c03::234]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 6DE1B2962; Sat, 26 Oct 2013 17:34:52 +0000 (UTC) Received: by mail-we0-f180.google.com with SMTP id q59so5030868wes.39 for ; Sat, 26 Oct 2013 10:34:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=fdupMNvNV7iNKDLsxaHz3zAnxb6jObrT7HjK718SNDE=; b=d+mIP9MBM4WF/zY/O4qDwmeytidrecibVw4EoS6XV5S2VbsuV5TFZiXK7EkHaRJyw/ /F7ldC6a02/uZlA9HoeEkyarPZ7o5r/kVE4GtMMr8j3gNpy8WduvbMOVRse7M/bge96k mvF1Ekyp8ICi2wOPoa++KiJ7gUpBSsS9tKkzknENrSN6FtUcWTu6sTx83rgfJgwJMNie FpbfPSBUc7k2ZaYGdua+YKOrdWN1exXhBspa//+5ovlZFcjgQXBCcnqGZ62qiXYtZ0fj Sl/kCaHL/b2/i9WdMI2OmWN0mKVUTX29Ag9h752GNHA7W0fRGUxQcLdKcL3aoH2amycK FvaA== MIME-Version: 1.0 X-Received: by 10.194.185.73 with SMTP id fa9mr12001667wjc.29.1382808890912; Sat, 26 Oct 2013 10:34:50 -0700 (PDT) Sender: zbodek@gmail.com Received: by 10.216.209.194 with HTTP; Sat, 26 Oct 2013 10:34:50 -0700 (PDT) In-Reply-To: References: Date: Sat, 26 Oct 2013 19:34:50 +0200 X-Google-Sender-Auth: V__ooUaHA_RSj98gAGL-i6AVcTA Message-ID: Subject: Re: Changes to UART ns8250 From: Zbigniew Bodek To: "freebsd-embedded@freebsd.org" Content-Type: text/plain; charset=ISO-8859-1 Cc: "freebsd-arm@freebsd.org" , freebsd-current X-BeenThere: freebsd-embedded@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Dedicated and Embedded Systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 26 Oct 2013 17:34:53 -0000 Hello again. I've just committed the patch: http://svnweb.freebsd.org/base?view=revision&revision=257170 Thanks and best regards Zbigniew Bodek 2013/10/26 Zbigniew Bodek : > Hello Everyone, > > I'm attaching the newest version of the ns8250 UART patch. > After some discussions I decided to go with busy-wait + timeout solution. > The applied delay should handle exotic corner cases (please notice > that we can't use ns8250_delay() > to get the actual single transmission time since we know that LCR is locked). > > If there are no objections then I would like to commit this soon. > > Best regards > Zbigniew Bodek > > 2013/10/9 Zbigniew Bodek : >> Hello Ganbold. >> >> Thank you for testing the patch and pointing those issue out. >> My detection log from Armada XP: >> >> uart0: <16550 or compatible> mem 0xd0012000-0xd001201f irq 41 on simplebus0 >> uart0: console (115200,n,8,1) >> uart1: <16550 or compatible> mem 0xd0012100-0xd001211f irq 42 on simplebus0 >> uart2: <16550 or compatible> mem 0xd0012200-0xd001221f irq 43 on simplebus0 >> uart3: <16550 or compatible> mem 0xd0012300-0xd001231f irq 44 on simplebus0 >> >> Is there a possibility to download a datasheet for RK30xx so that I could >> verify what is required for it's UART? >> The patch is causing that we only wait until UART is not busy anymore. I >> can't find why would that cause problems >> if your UART requires busy detection anyway. >> >> Best regards >> Zbigniew Bodek >> >> >> >> 2013/10/9 Ganbold Tsagaankhuu >>> >>> >>> >>> >>> On Tue, Oct 8, 2013 at 9:58 AM, Ganbold Tsagaankhuu >>> wrote: >>>> >>>> Zbigniew, >>>> >>>> >>>> On Tue, Oct 8, 2013 at 3:54 AM, Zbigniew Bodek 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@freebsd.org mailing list >>>>> http://lists.freebsd.org/mailman/listinfo/freebsd-current >>>>> To unsubscribe, send any mail to >>>>> "freebsd-current-unsubscribe@freebsd.org" >>>> >>>> >>> >>