5.1. 使用 TFTP 加载固件到DDR

5.1.1. 使用前准备

  1. 下载tftp上位机软件:

../_images/image12.png
  1. 对 tftpd64 工具进行以下配置:

    • 进入setting界面,勾选TFTP页面中的Reduce ‘//’ in file path。

../_images/image21.png
  1. 准备固件包

    • 如果是使用源码自行编译的固件,“sdk/install/soc_芯片名” 路径下有名为upgrade.zip的压缩包和rawimages的文件夹。如下图所示 :

../_images/image3.png ../_images/image4.png

5.设置TFTP 软件

  • 将升级包放到tftp目录下,或者使用上位机软件“Browse”定位到固件路径,路径不要有中文和空格等非法字符。

  • 点击PC server的“Show Dir”按键,可以显示当前路径下的文件。

  • Server interfaces设置为本机的网络接口,例如192.168.137.1;

../_images/image5.png
  1. 配置PC和板卡在同一网段

    • 通过网线连接PC端网口和板卡端LAN口

    • 配置PC端ip为192.168.137.1

    • 配置板卡端ip为192.168.137.11

    • 通过在uboot命令行下键入以下命令来设置板卡ip,执行saveenv保存设置:

1     setenv ipaddr 192.168.137.11
2     setenv gatewayip 192.168.137.1
3     setenv serverip 192.168.137.1
4     ...

ipaddr是板端IP,serverip是tftp server所在PC的IP,gatewayip是网关地址。

  1. 测试连通性 - 在uboot下直接ping PC端ip地址,下图表示可以正常通信

1     ping 192.168.137.1
../_images/image6.png

5.1.2. TFTP加载固件

  1. 从tftp服务器下载文件到指定内存地址

    • tftp下载固件的时候,要先下载到DDR内存中,为了避免踩到uboot的内存空间,可以从0x82000000开始写入。

 1     # 以emmc 举例如下
 2     # 每次加载固件前将ddr 目标区域写0
 3     mw.b 0x82000000 0 0x2000000
 4     # 加载文件到DDR,
 5     # 可以加载文件到同一位置,并参考下一节把DDR内文件写入Flash,然后重复操作下一个文件
 6     # 也可以加载到DDR不同位置,并参考下一节把DDR内文件写入Flash,请注意不要踩内存
 7     tftpboot 0x82000000 fip.bin
 8     # boot等文件需要使用rawimages下的文件
 9     tftpboot 0x82100000 yoc.bin
10     tftpboot 0x82280000 boot.emmc
11     tftpboot 0x82580000 rootfs.emmc
12     tftpboot 0x82d80000 cfg.emmc
13     tftpboot 0x83780000 system.emmc
  1. 头部处理

    • 如果使用Upgrade压缩包中的固件就需要删除固件的前128字节头(boot.emmc和rootfs.emmc头部,而且rootfs.emmc除了开头128字节头外,每隔16M都有64字节的头部)

    • 使用rawimages文件夹中的固件就不用删除头部