From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Babic Date: Thu, 15 May 2014 11:21:57 +0200 Subject: [U-Boot] [PATCH] serial_mxc: disable new features of autobaud detection In-Reply-To: <1400111883-2333-1-git-send-email-eric.nelson@boundarydevices.com> References: <1400111883-2333-1-git-send-email-eric.nelson@boundarydevices.com> Message-ID: <53748735.3030002@denx.de> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi Eric, On 15/05/2014 01:58, Eric Nelson wrote: > Bit 7 of UCR3 is described in the i.MX3x/i.MX5x/i.MX6x > reference manuals as follows: > > Autobaud Detection Not Improved-. Disables new features of > autobaud detection (See Baud Rate Automatic Detection > Protocol, for more details). > > 0 Autobaud detection new features selected > 1 Keep old autobaud detection mechanism > > On at least i.MX6DQ, i.MX6DLS and i.MX53, the "new features" > occasionally cause the receiver to get out of sync and > continuously produce received characters of '\xff'. > > This patch disables the "new feature" on all boards, since > there's no support for auto-baud in U-Boot on any of them. > > More details are available in this post on i.MX Community: > https://community.freescale.com/message/403254 > > Signed-off-by: Eric Nelson > Tested-by: Fabio Estevam > --- > drivers/serial/serial_mxc.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/serial/serial_mxc.c b/drivers/serial/serial_mxc.c > index 56bee55..313d560 100644 > --- a/drivers/serial/serial_mxc.c > +++ b/drivers/serial/serial_mxc.c > @@ -77,7 +77,7 @@ > #define UCR3_DSR (1<<10) /* Data set ready */ > #define UCR3_DCD (1<<9) /* Data carrier detect */ > #define UCR3_RI (1<<8) /* Ring indicator */ > -#define UCR3_TIMEOUTEN (1<<7) /* Timeout interrupt enable */ > +#define UCR3_ADNIMP (1<<7) /* Autobaud Detection Not Improved */ > #define UCR3_RXDSEN (1<<6) /* Receive status interrupt enable */ > #define UCR3_AIRINTEN (1<<5) /* Async IR wake interrupt enable */ > #define UCR3_AWAKEN (1<<4) /* Async wake interrupt enable */ > @@ -186,7 +186,7 @@ static int mxc_serial_init(void) > > while (!(__REG(UART_PHYS + UCR2) & UCR2_SRST)); > > - __REG(UART_PHYS + UCR3) = 0x0704; > + __REG(UART_PHYS + UCR3) = 0x0704 | UCR3_ADNIMP; > __REG(UART_PHYS + UCR4) = 0x8000; > __REG(UART_PHYS + UESC) = 0x002b; > __REG(UART_PHYS + UTIM) = 0x0; > Thanks to have found a solved this issue ! Acked-by: Stefano Babic Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sbabic at denx.de =====================================================================