|From PA1688 to PA6488 - TFTP Performance|
| || |
|Sep 1, 2009|
|Actually PA1688 does not support TFTP protocol. Besides common HTTP upgrade, it uses special PalmTool as its native upgrade method.
Although we spent more than 3 years on a none successful replacement of PA1688, we really learned a lot with AR1688 development.
One of the most important thing we learned is to do work in the existed standard way.
We use TFTP upgrade as native upgrade method with AR1688,
we call it native because it is the only upgrade method in safe mode recovery.
Of course it can work in normal operation as HTTP upgrade too. Working as a TFTP server, AR1688 can receive TFTP data at 1.5-2.2Mbps.
On 600MHz PA648A board, using my Sony notebook as TFTP client, I can put a 18034784 bytes file into PA6488 DDR2 memory in 7 seconds!
18034784/512=35225 TFTP blocks.
Each TFTP block need extra 4(TFTP head)+8(UDP head)+20(IP head)+14(MAC head)+8(MAC preamble)+4(MAC CRC)=58 bytes to be received.
The total data received in 7 seconds is 18034784+35225*58=20077834 bytes.
The bandwidth is 20077834*8*/7=22.9Mbps.
TFTP protocol needs ACK for each data received, and peer will not send new data until old data ACKed, this is why the bandwidth we get is not as much as 100Mbps on a 100Mbps LAN.
Updated on Mar 4, 2015
As I am merging the common TCPIP software of PA6488 and PA3288, I tested the TFTP performance of PA3288. With ENC28J60 ethernet chip,
PA3288 runs at 192Mhz can put a 8.5M bytes file in 27 seconds. This is about 2.8Mbps data rate, just as we learned from ping 65500 test,
The bottleneck is the SPI interface 10Mbps ethernet chip.
Both AR1688 and PA6488 TFTP code has 32M bytes file limit, and it is the same with PA3288, can not test file more than 32M bytes neither.