edaworldedaworld.blog.chinaunix.net
edaworld
全部博文(74)
2016年(6)
2015年(4)
2014年(20)
2013年(8)
2012年(16)
2010年(9)
2009年(11)
奋飞的菜
bzhao
plumlee
wsyangyu
yungangz
1991nsds
netbits
adonzhen
ap040520
alterlee
分类: LINUX
2009-12-18 12:07:50
Nov 11 10:46:12 HardWare in.tftpd[18275]: client timeout = 7810 , server timeout = 1-255
tftp客户端传过来的timeout是7810,而服务器端定义的范围在1-255秒之间,不是服务器的问题,而是uboot中tftp参数设置的问题。
二、解决方案
可以有两种方式解决:
1、修改服务器端源代码(此种方案修改较为繁琐,因为fedora 发行版中不包含tftp源代码,需要自己下载、编译、替换,所以不建议采用此方案)
2、修改Uboot端tftp代码
在U-boot 1.3.4源代码中定义的是5秒
#define TIMEOUT 5UL /* Seconds to timeout for a lost pkt */
u-boot-2009.08 中定义如下
#define TIMEOUT (CONFIG_SYS_HZ/1000*5000UL)
TIMEOUT 的值是跟据板子配置文件中的 CONFIG_SYS_HZ 值计算出来的,我的配置文件时从 Uboot目录 include/configs/smdk2410.h 复制过来的,值为 1562500,算出来后就等于7810
可以直接修改 uboot 目录 net/tftp.c 中 TIMEOUT 定义为5000(注意是5000而不是5,因为u-boot.2009.08版本该宏定义改为以毫秒为单位了)
#define TIMEOUT 5000UL /*UBOOT 2009.08 定义为毫秒值*/
另外还一种方法是修改开发板对应的配置文件 include/configs/utu2440.h(未详细测试此修改是否会影响Uboot其他功能,所以不建议采用此方案,有兴趣的兄弟姐妹可以详细测试一下,^_^)
#define CONFIG_SYS_HZ 1000
经过以上修改 Uboot tftp功能正常
U-Boot 2009.08 for utu2440 by Apollo5520 (http://Apollo5520.cublog.cn)
I2C: ready
DRAM: 64 MB
Flash: 0 kB
NAND: 64 MiB
Video: 240x320x16 20kHz 62Hz
In: serial
Out: serial
Err: serial
Net: CS8900A
Hit any key to stop autoboot: 0
utu2440 #
utu2440 # tftp 33008000 font.bin
TFTP from server 192.168.0.9; our IP address is 192.168.0.11
Filename 'font.bin'.
Load address: 0x33008000
Loading: ################################################################# ############
done
Bytes transferred = 1123240 (1123a8 hex)
原创文章,转载请注明:转载自 风雨无阻博客(http://Apollo5520.cublog.cn)
本文链接地址:http://blog.chinaunix.net/u3/105764/showart.php?id=2091464
上一篇:boa移植记录
下一篇:u-boot-2009 08 移植到扬创 utu2440 开发板
登录 注册