[U-Boot] Rx FIFO: more than 64 bytes receive error
lokesh nijalinge
lokesh1kumar2nijalinge at gmail.com
Sat Dec 29 12:31:35 CET 2012
Hi,
I am using the arm processor for my project and need to receive around 1K
bytes of data over UART. I am able to receive only 64 bytes at U-boot,
which is the UART RX FIFO size. After receiving the 64 bytes i am not
getting any data. I read the Technical Reference Manual, which says the if
more than FIFO size data is received then data will be lost instead
of overwriting.
Please let me know whether i need to configure any UART registers to
achieve more than 64 bytes.
*Details of the project:*
Processor : DM3730 from Texas instruments -OMAP3 ARM Cortex
UART device : NS16550
The default code having the UART initialization sequence posted below does
not seem to take care of the handling of more than 64 bytes of RX data.
u-boot/drivers/serial/ns16550.c
*Changes done by us to get the Data from RX fifo. *
*
*
Initially with serial_out(CONFIG_SYS_NS16550_IER, &com_port->ier); we have
not received any data over UART
But after changing the code to serial_out(0x10, &com_port->ier);
we are receiving the data correctly ,but not more than 64 bytes.
Our goal is to receive 950 bytes.
*
*
*void NS16550_init(NS16550_t com_port, int baud_divisor)*
*{*
* // serial_out(CONFIG_SYS_NS16550_IER, &com_port->ier);*
* serial_out(0x10, &com_port->ier);*
*#if (defined(CONFIG_OMAP) && !defined(CONFIG_OMAP3_ZOOM2)) || \*
* defined(CONFIG_AM33XX)*
* serial_out(0x7, &com_port->mdr1); /* mode select reset
TL16C750*/*
*#endif*
* serial_out(UART_LCR_BKSE | UART_LCRVAL, (ulong)&com_port->lcr);*
* serial_out(0, &com_port->dll);*
* serial_out(0, &com_port->dlm);*
* serial_out(UART_LCRVAL, &com_port->lcr);*
* serial_out(UART_MCRVAL, &com_port->mcr);*
* serial_out(UART_FCRVAL, &com_port->fcr);*
* serial_out(UART_LCR_BKSE | UART_LCRVAL, &com_port->lcr);*
* serial_out(baud_divisor & 0xff, &com_port->dll);*
* serial_out((baud_divisor >> 8) & 0xff, &com_port->dlm);*
* serial_out(UART_LCRVAL, &com_port->lcr);*
*#if (defined(CONFIG_OMAP) && !defined(CONFIG_OMAP3_ZOOM2)) || \*
* defined(CONFIG_AM33XX)*
*
*
*#if defined(CONFIG_APTIX)*
* /* /13 mode so Aptix 6MHz can hit 115200 */*
* serial_out(3, &com_port->mdr1);*
*#else*
* /* /16 is proper to hit 115200 with 48MHz */*
* serial_out(0, &com_port->mdr1);*
*#endif*
*#endif /* CONFIG_OMAP */*
*}*
*
*
Waiting for your reply.
--
Thanks & Regards,
Lokesh Kumar,
More information about the U-Boot
mailing list