[U-Boot] Rx FIFO: more than 64 bytes receive error

lokesh nijalinge lokesh1kumar2nijalinge at gmail.com
Mon Dec 31 10:29:36 CET 2012


Hi ,

Thank you very much ,for the quick response albert

The detailed explanation about the project is as below:

I have a fingerprint module(FPC-AM3) which works fine and can receive whole
fingerprint template data at kernel on UART2 of the processor. The same i
am trying to implement at u-boot. I am trying to receive almost 1Kb of
fingerprint template.

Fingerprint template is received once we transmit a command of 6 bytes to
fingerprint over UART2 to Fingerprint module, and then the response is 948
bytes of template data over UART2 on the Receive side.

I went through the "*loads*" command too. If i am not wrong it takes the
file from remote location and loads on to the address mentioned in the
argument, which is not the idea. As explained before we are trying to
receive 948 bytes of data from the UART2 port (Fingerprint module).

Attaching the patch as suggested  :patch includes our finger print code and
the UART2 initialization change.

Please help us in getting the 948 bytes of data over UART2. Let us know the
code changes.

*NOTE: we have even modified the hardware for a loopback connection and
then ran the same code on it, but we could not receive more than 64 bytes.
We are receiving the first 64 bytes and then rest of the bytes are not seen.
*



Thanks & Regards,
Lokesh


On Sat, Dec 29, 2012 at 7:28 PM, Albert ARIBAUD
<albert.u.boot at aribaud.net>wrote:

> Hi lokesh,
>
> On Sat, 29 Dec 2012 17:01:35 +0530, lokesh nijalinge
> <lokesh1kumar2nijalinge at gmail.com> wrote:
> > 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.
>
> Hmm... I can tell any U-Boot receives and correctly processes a lot more
> than 64 bytes without any issue; I routinely throw a lot more than this
> at the few U-Boot's I have lying around, all of which use NS16550-like
> serials. I even sometimes 'loads' a payload of several hundred bytes to
> some megs, without any issue.
>
> However, while 'loads' itself can handle very large serial input, the
> serial driver in itself will never handle more than the FIFO depth:
> the 'loads' command handler has to read from the driver frequently in
> order to avoid an overload.
>
> In your case, you did not describe (or did I miss it?) what it is that
> *uses* the received bytes, and how and when these received bytes are
> read from the driver. Can you elaborate on this?
>
> > *Changes done by us to get the Data from RX fifo. *
>
> Please show such changes as a patch (made with got format-patch or at
> least git diff) -- with '[RFC]' in the message subject so that we know
> it is not a submission for inclusion into U-boot.
>
> Amicalement,
> --
> Albert.
>



-- 
Thanks & Regards,
Lokesh Kumar,
-------------- next part --------------
A non-text attachment was scrubbed...
Name: custom_patch.patch
Type: application/octet-stream
Size: 25209 bytes
Desc: not available
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121231/56cfd65f/attachment.obj>


More information about the U-Boot mailing list