Hitool原来是可以正常烧写的,突然出现无法烧写,uboot能烧写,内核无法烧写,反复重试也不行:
Send command: mw.b 0x21000000 0xFF 0x3c0000
[EOT](OK)
Send command: tftp 0x21000000 kernel
ETH0: PHY(phyaddr=1, rgmii) link UP: DUPLEX=FULL : SPEED=100M
MAC: 00-53-1C-65-05-47
Using gmac0 device
TFTP from server 192.168.1.230; our IP address is 192.168.1.235
Filename 'kernel'.
Load address: 0x21000000
Loading: *
TFTP error: First block is not block 1 (2)
Starting again
[EOT](ERROR)
执行命令失败,可能的原因如下:
1.请检查当前单板Flash与烧写分区中的Flash类型是否一致;
2.当前fastboot不支持该命令;
网络下载TFTP超时,可能的原因如下:
1.首先检查服务器IP是否正确,若不正确点击重新加载,加载最新的PC端IP地址;
2.检查子网掩码与网关是否配置正确;
3.检查板端IP地址是否被占用(使用ping命令,查看当前设置板端IP是否能够ping通,若不能则表示当前网络未被占用)将以上参数全部保证正确后再尝试重新烧写。
4.检查PC上是否有TFTP服务器占用当前69端口。
5.检查Fastboot中网络驱动部分是否正确;
6.打开工具菜单栏上的窗口->首选项->HiBurn->TFTP设置,关闭勾选TFTP加速,然后再进行烧写;
7.使用外部的TFTP32工具进行烧写,打开TFTP32工具设置好镜像路径和服务器IP后,重新烧写。
仔细检查主机IP是OK的、掩码网关也OK、ping检测也没有被占用、netstat检查69端口未占用、u-boot文件未修改网络肯定是OK的、TFTP设置修改也没有用、检查已经关闭了防火墙、防火墙出入规则也检查了…怎么也想不到原因。
然后改用外部的tftp工具烧写,然后用串口在uboot手动烧写内核:
hisilicon # setenv serverip 192.168.0.230
hisilicon # setenv ipaddr 192.168.0.235
hisilicon # setenv gatewayip 192.168.0.1
hisilicon # saveenv
hisilicon # mw.b 42000000 ff 400000
hisilicon # tftp 42000000 uImage
ETH0: PHY(phyaddr=1, rgmii) link UP: DUPLEX=FULL : SPEED=100M
MAC: 96-F2-1A-85-79-4E
Using gmac0 device
TFTP from server 192.168.0.230; our IP address is 192.168.0.235
Filename 'uImage'.
Load address: 0x42000000
Loading: #T #T T T T T ##T T T T
Retry count exceeded; starting again
依旧无法烧写,那肯定就不是Hitool的问题了,那会是啥问题呢?搜索之后了解到烧写时打印 ‘T’ 表示的是丢包了的意思,那从串口打印来看,丢包很严重,网络环境是板子接在路由器上,主机接在交换机上,交换机接在路由器上,而且今天QQ发送文件速度奇差,基本无法传文件,因此可能是外部网络问题,因此,用直连线连接主机和板子,重新烧写OK,外部的网络环境需要再排查.