Re: coldfire uart question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Angelo,

On 18/10/17 07:18, Angelo Dureghello wrote:
On 16/10/2017 01:08, Finn Thain wrote:
On Sun, 15 Oct 2017, Angelo Dureghello wrote:

Hi all,

i was trying a file transfer with xmodem-1k and uClinux "rx" on the
mcf54415 stnmark2 board side.

This using a recent mainline kernel:
/ # cat /proc/version
uClinux version 4.14.0-rc4stmark2-001-00118-g811fdbb62a9d
/ #

So, as per xmodem-1k, i send 3 bytes header, a 1024 bytes block, and 2
bytes crc16. But "rx" timeouts waiting the block.


What is the fastest baud rate that will work?

Adding some traces to "rx", it timeouts since some bytes (5 to 10)
randomly positioned in the block are not received. Of course they have
been sent (scope checked).

The same 1024 bytes transfer in u-boot (y-modem) always succeed.


Does u-boot need to do any retransmissions? (If it polls the UART, it
could probably avoid any fifo overflow.)

You may also want to try lrzsz.

Since mcf54415 has a 4 slots RX fifo UART,

Ouch. At 115200 baud, that FIFO overflows after about 347 microseconds. If
the kernel takes one interrupt per 4 bytes, you're looking at thousands of
interrupts per second. Add a little unexpected interrupt latency (say, 50
microseconds) and the next byte gets lost.


thanks for explaining this.

Well, if i understand properly, this mcf54415 CPU has 2 interrupts flags
that can be checked:
 
RXRDY, for one or more character received (current mcf.c seems to use
this flag) and
FFULL, for all 4 fifo slots full.

So we probably have even more interrupts per second right now.

I am at 115200, will try to decrease, and also, will try zmodem in case.

Can you use hardware flow control (the "crtscts" stty setting)?
You will need to use a serial cable with RTS and CTS signals wired,
and also for the sending end to be set for it. The ColdFire UART
has hardware level support for automatically driving RTS/CTS when
FIFO is full.

Regards
Greg



--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux