Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
965 views
in Technique[技术] by (71.8m points)

arm - Random Timeout TFTP using KSZ8863 and AT91RM9200

Newbie in the community, here. First of all, thanks for all the help in all these years i've been working on embedded development :D

I have a problem with an Atmel AT91RM9200 ARM microprocessor, connected via RMII to a Mikrel KSZ8863 ethernet physical interface. The ARM is loaded with U-Boot 1.1.2, which loads the Linux Kernel v2.4.27.

I manually added the code to interface U-Boot with the KSZ.

The problem is: Using U-Boot, if I try to download something from my TFTP server (located in the same network), the connection sometimes has so many timeouts that the download fails, and sometimes has just 2 or 3 timeouts.

I checked the U-Boot FAQ page, and the most probable reason for the timeouts is a wrong speed configuration, which I double checked.

What could be the reason for the unreliability of my connection?

Thanks, Loranzp.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Setup a minimalist network consistent of TFTP server, client and Sniffer (Wireshark in promiscuous mode) (if you use a switch it must have a repeater port where to connect the sniffer PC)

Next run traffic captures and analyze when and how the timeouts occur.

Consider:

  1. TFTP BlockSize too big leading to mishandled IP fragmentation.
  2. Server provides the packets too fast after REQ or ACK
  3. Not correctly handling block number roll-over (only when handling big files)
  4. etc

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...