Fast Development Kit(FDK)-固件部署与升级

Fast Development Kit(FDK)是本人实践中总结的一套开发工具,包括了常用的工具集,已经制作好发布在根文件系统中,目前支持Xilinx zynq,Xilinx zynqmp,NXP t2080,海思 hi3531d等。

参考

Fast Development Kit(FDK)-嵌入式Linux开发包

固件部署

启动板卡有很多配置项,这些固件如何部署到板卡上,

  1. zynq平台由于MIO数量不足,有个别项目emmc放在PL EMIO上,对于这类项目的PL的配置文件只能放在qspi nor flash中,正常情况下emmc在MIO上,配置文件在emmc的文件系统中。还有的平台只有一片nand,没有emmc。
  2. 对于板卡上有多片FPGA的项目,不如zynq/zynqmp+FPGA或者t2080+FPGA的项目,FPGA一般有自己的配置flash,或者动态下载bitstream进去,对于有配置flash的项目,添加FPGA作为一个可选的配置项。
  3. boot对于zynq/zynqmp,是由xilinx的bootgen工具生成的,包括fsbl+uboot/fsbl+pmu+atf+uboot,对于t2080就是uboot。
  4. 对于t2080,有独有的rcw和fman需要配置。
  5. 通用平台可实现一键部署,特殊平台需要联系FAE适配。
固件/平台Xilinx zynq(qspi+emmc)Xilinx zynqmp(qspi+emmc)NXP t2080(nor)
appemmc-ext4(path: /home/root)emmc-ext4(path: /home/root)nor flash-ubifs(path: /home/root)
bootqspi flash(mtd label: boot)qspi flash(mtd label: boot)nor flash(mtd label: boot)
plqspi flash(mtd label: pl) or emmc-ext4(path: /boot)emmc-ext4(path: /boot)no
kernelemmc-ext4(path: /boot)emmc-ext4(path: /boot)nor flash-ubifs(path: /boot)
dtbemmc-ext4(path: /boot)emmc-ext4(path: /boot)nor flash-ubifs(path: /boot)
rootfsemmc-ext4(path: /)emmc-ext4(path: /)nor flash-ubifs(path: /)
FPGAqspi nor flash/nor flash(mtd label: xxx)qspi nor flash/nor flash(mtd label: xxx)qspi nor flash/nor flash(mtd label: xxx)
fsblemmc-ext4(path: /boot)emmc-ext4(path: /boot)no
rcwnononor flash(mtd label: rcw)
fmannononor flash(mtd label: fman)

接上,

固件/平台Xilinx zynq/zynqmp(nand)Xilinx zynq/zynqmp(nor)no
appnand flash-ubifs(path: /home/root)nor flash-ubifs(path: /home/root)no
bootnand flash(mtd label: boot)nor flash(mtd label: boot)no
plnand flash(mtd label: pl) or nand flash-ubifs(path: /boot)nor flash(mtd label: pl) or nor flash-ubifs(path: /boot)no
kernelnand flash-ubifs(path: /boot)nor flash-ubifs(path: /boot)no
dtbnand flash-ubifs(path: /boot)nor flash-ubifs(path: /boot)no
rootfsnand flash-ubifs(path: /)nor flash-ubifs(path: /boot)no
FPGAqspi nor flash/nor flash(mtd label: xxx)qspi nor flash/nor flash(mtd label: xxx)no
fsblnand flash-ubifs(path: /boot)nor flash-ubifs(path: /boot)no
rcwnonono
fmannonono

出厂时的固件首先由下载器部署uboot,然后使用uboot完成其余固件下载,通常配置项的文件名如下,特殊文件名需联系FAE。

固件/平台Xilinx zynqXilinx zynqmpNXP t2080
appfdk.elffdk.elffdk.elf
bootboot.binboot.binu-boot.bin
pldownload.bitdownload.bitno
kerneluImageImageuImage
dtbsystem.dtbsystem.dtbsystem.dtb
rootfsrootfs.ext4.gz.ubootrootfs.ext4.gz.ubootrootfs.ext4.gz.uboot
FPGA*.bin*.bin*.bin
rcwnonoPBL.bin
fmannonofsl_fman_ucode_t2080_r1.1_106_4_18.bin

zynq/zynqmp(qspi+emmc)平台出厂部署

  1. 硬件人员测试好硬件,关闭看门狗(若为软件控制,请参考下文)。
  2. 板卡上有多片FPGA的项目,若存在配置Flash,下载配置文件。
  3. 使用xilinx下载器,下载zynq/zynqmp boot.bin文件,2015以后版本的vivado需要提供fsbl才能下载。
  4. 重启,此时应该有u-boot的串口打印,否则联系FAE。
  5. u-boot起来之后,连续发送****可进入u-boot命令行,可以通过u-boot命令关闭看门狗,设置板卡序列号,配置板卡mac地址,板卡序列号,板卡IP地址,tftp server ip地址,网关地址。
  6. 在服务器上,将fdk编译出的固件放入tftp server目录,将zynq/zynqmp pl的配置文件重命名为download.bit,放入相同tftp server目录。
  7. 对于PL的配置文件在qspi flash中的项目(没有专门说明,则跳过此命令),执行命令run update_fpga完成部署。
  8. 执行命令run ext4_bringup,完成板卡部署(部分老版本执行run ext4_kernel_bringup,新版u-boot也保留了对老命令的支持)。
  9. 重启。
  10. 部署应用。

zynq/zynqmp(nand/nor)平台出厂部署

  1. 硬件人员测试好硬件,关闭看门狗(若为软件控制,请参考下文)。
  2. 板卡上有多片FPGA的项目,若存在配置Flash,下载配置文件。
  3. 使用xilinx下载器,下载zynq/zynqmp boot.bin文件,2015以后版本的vivado需要提供fsbl才能下载。
  4. 重启,此时应该有u-boot的串口打印,否则联系FAE。
  5. u-boot起来之后,连续发送****可进入u-boot命令行,可以通过u-boot命令关闭看门狗,设置板卡序列号,配置板卡mac地址,板卡序列号,板卡IP地址,tftp server ip地址,网关地址。
  6. 在服务器上,将fdk编译出的固件放入tftp server目录,将zynq/zynqmp pl的配置文件重命名为download.bit,放入相同tftp server目录。
  7. 对于PL的配置文件在nand/nor flash中的项目(没有专门说明,则跳过此命令),执行命令run update_fpga完成部署。
  8. 执行命令run ext4_bringup,完成板卡部署(部分老版本执行run ext4_kernel_bringup,新版u-boot也保留了对老命令的支持)。
  9. 重启。
  10. 部署应用。

t2080平台出厂部署

  1. 硬件人员测试好硬件,关闭看门狗(若为软件控制,请参考下文)。
  2. 板卡上有多片FPGA的项目,若存在配置Flash,下载配置文件。
  3. 使用nxp codewarrior tap下载器,下载u-boot.binPBL.binfsl_fman_ucode_t2080_r1.1_106_4_18.bin
  4. 重启,此时应该有u-boot的串口打印,否则联系开发人员。
  5. u-boot起来之后,连续发送****可进入u-boot命令行,可以通过u-boot命令关闭看门狗,设置板卡序列号,配置板卡mac地址,板卡序列号,板卡ip地址,板卡tftp访问server ip地址,板卡网关。
  6. 在服务器上开启tftp server服务,将fdk编译出的固件放入tftp server目录。
  7. 执行命令run ubifs_bringup完成板卡部署。
  8. 重启。
  9. 部署应用。

固件升级OTA

根据上面的固件部署特点,设计一个配置文件,用于在操作系统下进行固件升级,下面是一个模板,可增加或删减配置文件,升级时,利用上位机将升级包上传到板卡,板卡固件升级程序根据配置文件,执行升级动作。

# zynq_fw.config
name    device  fs   label/path  file
boot    mtd     no   boot        boot.bin
pl      mtd     no   fpga        download.bit
kernel  emmc    yes  /boot       uImage
dtb     emmc    yes  /boot       system.dtb
v7      mtd     no   v7bin       v7.bin
# zynqmp_fw.config
name    device  fs   label/path  file
boot    mtd     no   boot        boot.bin
pl      emmc    yes  /boot       download.bit
kernel  emmc    yes  /boot       Image
dtb     emmc    yes  /boot       system.dtb
v7      mtd     no   v7bin       v7.bin
# t2080_fw.config
name    device  fs   label/path  file
boot    mtd     no   boot        u-boot.bin
kernel  emmc    yes  /boot       uImage
dtb     emmc    yes  /boot       system.dtb
v7      mtd     no   v7bin       v7.bin
rcw     mtd     no   rcw         PBL.bin
fman    mtd     no   fman        fsl_fman_ucode_t2080_r1.1_106_4_18.bin

比如,
(1)获取升级文件,比如内核文件为mwm193_uImage,设备树文件system_mwm193.dtb
(2)编写配置文件,mwm193_uImage对应的name为kernel,kernel emmc yes /boot mwm193_uImage
system_mwm193.dtb对应name为dtb,dtb emmc yes /boot system_mwm193.dtb,最终的配置文件为,

name    device  fs   label/path  file
kernel  emmc    yes  /boot       mwm193_uImage
dtb     emmc    yes  /boot       system_mwm193.dtb
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值