本文介绍如何使用TFTP更新板载SD卡芯片中的system.bit, system.dtb 和zImage
基本要求:底板必须带有以太网口,且连接到PS端的mio
步骤
第一步:将文件“AC608Z_Core_QSPI_Files.zip”(文末下载)烧写到核心板的QSPI Flash中,具体方法请参考http://www.corecourse.cn/forum.php?mod=viewthread&tid=29268
第二步:将电脑的ip地址设置为192.168.0.3,子网掩码为255.255.255.0 (可以根据自己需求需改)
第三步:使用Xmobaterm(或者其它串口终端软件)连接串口,用网线连接Zynq的PS端网口和电脑网口,使用QSPI启动模式(默认状态)启动Zynq,并在boot倒计时结束之前按任意键打断
第四步:下载“Tftpd64.zip”(文末下载) 将其解压后,先运行“关闭防火墙.bat”脚本,然后使脚本窗口保持运行,不要关闭也不要输入 再运行“tftpd64.exe”程序,路径选择(你存放system.bit, system.dtb 和zimage的文件夹),服务接口选择192.168.0.3(如果没有这个请检查第二步ip的设置和网线连接状态)
此时点击“Show Dir”可以看到以下文件:
uboot中依次执行下面代码:
# 设置网络参数
setenv ipaddr 192.168.0.10
setenv serverip 192.168.0.3
# 定义加载地址
setenv loadaddr 0x1000000
setenv bitaddr 0x2000000
setenv fdt_addr 0x3000000
# 选择 SD 卡设备
mmc dev 0
# 下载并写入 zImage
tftpboot ${loadaddr} zImage
fatwrite mmc 0:1 ${loadaddr} zImage ${filesize}
# 下载并写入 system.bit
tftpboot ${bitaddr} system.bit
fatwrite mmc 0:1 ${bitaddr} system.bit ${filesize}
# 下载并写入 system.dtb
tftpboot ${fdt_addr} system.dtb
fatwrite mmc 0:1 ${fdt_addr} system.dtb ${filesize}
# 刷新 SD 卡
mmc rescan
# 查看是否更新成功
fatls mmc 0
完成后如下图所示:
第六步:输入以下指令,按下回车、配置uboot的环境变量,并启动开发板运行新的SD卡内容
env default -a
setenv bitstream_load_address 0x100000
setenv bitstream_image system.bit
setenv bitstream_size 0x300000
setenv kernel_image zImage
setenv devicetree_image system.dtb
setenv bootargs 'console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait'
setenv bootcmd 'run sdboot || run distro_bootcmd'
setenv sdboot 'if mmcinfo; then run uenvboot; echo Copying Linux from SD to RAM... && fatload mmc 0 ${bitstream_load_address} ${bitstream_image} && fpga loadb 0 ${bitstream_load_address} ${bitstream_size} && fatload mmc 0 ${kernel_load_address} ${kernel_image} && fatload mmc 0 ${devicetree_load_address} ${devicetree_image} && bootz ${kernel_load_address} - ${devicetree_load_address}; fi'
saveenv
boot
完成后如下图所示:
更多AC608-7Z010相关资料,请查看下述汇总贴
【AC608-7Z010】Zynq邮票孔核心板产品使用自助服务手册
下载地址: |