【Zynq】 7z007s miniZed评估板 QSPI烧录方法

MiniZed评估板 QSPI烧录方法


目录:
【1】. Zynq 7z007s miniZed评估板 QSPI 启动镜像制作
【2】. Zynq 7z007s miniZed评估板 QSPI 烧录方法


【1】 Zynq 7z007s miniZed评估板 QSPI 启动镜像制作:

1: 参数设置
  通过运行 petalinux-config 来实现。设置的内容就是从QSPI启动,媒介存在QSPI。
在Linux计算机上运行以下步骤,将引导模式更改为QSPI闪存。

  a: 切换到PetaLinux项目的根目录:
      $ cd

  b: 启动顶级系统配置菜单:
    $ petalinux-config

  c: 选择子系统AUTO硬件设置(Subsystem AUTO Hardware Settings)。

  d: 选择“高级可启动映像存储设置”(Advanced Bootable Images Storage Settings)。
     - 选择启动映像设置(boot image settings)。
        - 选择图像存储介质(Image Storage Media)。
          - 选择启动设备作为主闪存(primary flash)。

  e: 在“高级可启动映像存储设置”(Advanced Bootable Images Storage Settings)子菜单下:
    - 选择内核映像设置(kernel image settings).。
      - 选择图像存储介质(Image Storage Media)。
        - 选择存储设备作为主闪存(primary flash)。

  f: 保存配置设置并退出配置向导。

  g: 使用petalinux-build命令重建

以下就用图来表示:
1
2
3
上面就是设置的一些界面。

2:设置完后,编译, 建议使用 petalinux-build 进行一次性编译。

  或者分几步完成:
  petalinux-config -c bootloader
  petalinux-build -c bootloader
  petalinux-config -c u-boot
  petalinux-build -c u-boot

  petalinux-build

3: 打包 petalinux-package

  3.1:打包有2种方式,一种和SD卡制作打包一样

      petalinux-package --boot --fsbl --fpga --u-boot

    这种方式不包括 imag.ub

    操作示例如下:我这里是先cd ~/pro/gpio/images/linux,否则要加路径。

    $ petalinux-package --boot --fsbl zynq_fsbl.elf --fpga system.bit --u-boot

  3.2:还有一种方式就是包含imag.ub, 命令如下:

    petalinux-package --boot --fsbl --fpga --u-boot --kernel

    包含imag.ub 的方式不同点就是 后面多了 --kernel 这个option。

    操作示例如下:我这里是先cd ~/pro/gpio/images/linux,否则要加路径。

    $ petalinux-package --boot --fsbl zynq_fsbl.elf --fpga system.bit --u-boot --kernel

    这2种方式对应不同的下载方式。

   3.3:包含image.ub的这种方式适合用SDK 软件里的 Program Flash。(下面的章节就是使用SDK的 XSCL 命令行进行的烧写,没有使用XSDK)

  这个方式应该先把启动方式拨为QSPI,然后才烧写。

  具体操作是先菜单 Xilinx->Program FPGA 下载流文件,然后Xilinx->Program FLASH 选择这个BOOT.BIN,然后下载,要等待一些时间才能完成。

  3.4: 不包含image.ub的这种方式适合用SD卡启动烧写。

  把BOOT.BIN 改名BOOT_qspi.BIN,然后复制到sd卡里,利用sd卡启动方式 启动板卡

  然后在petalinux终端或者说串口终端:

    mount /dev/mmcblk0p1 /mnt 这步是安装SD 卡,

    flashcp /mnt/BOOT_QSPI.BIN /dev/mtd0 烧写BOOT 文件到/dev/mtd0

    flashcp /mnt/image.ub /dev/mtd2 烧写image.ub 文件到/dev/mtd2

    如果已经SD 卡启动了,不想取下SD卡,也可以用tftp 方式,我就是这样的。

    把BOOT.BIN 复制到ubuntu 的tftp 目录,然后在petalinux终端或者说串口终端:

      tftp -gr BOOT.BIN 192.168.1.102

      tftp -gr image.ub 192.168.1.102

    这样传送文件到petalinux 主机这边,然后与上面类似操作:

      flashcp BOOT.BIN /dev/mtd0

      flashcp image.ub /dev/mtd2

    烧写后,当然要拨到QSPI启动方式,就可以启动了。
  

【2】Zynq 7z007s miniZed评估板 QSPI烧录方法:

  假如镜像文件zynq_fsbl.elf 文件和 BOOT.BIN文件放在目录 C:/tmp 下,启动 XSCL 命令行,
1
启动后界面如下:
2
可以使用pwd查看当前文件路径,我们需要进入 C:/tmp 文件夹下执行烧录命令;
在命令行输入:
cd /tmp
exec program_flash -f BOOT.BIN -fsbl zynq_fsbl.elf -flash_type qspi_single

  
整个烧写流程及提示信息如下:
xsct% pwd
C:/tmp
xsct%
xsct% exec program_flash -f BOOT.BIN -fsbl zynq_fsbl.elf -flash_type qspi_single
****** Xilinx Program Flash
****** Program Flash v2019.1 (64-bit)
**** SW Build 2552052 on Fri May 24 14:49:42 MDT 2019
** Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
WARNING: Failed to connect to hw_server at TCP:localhost:3121
Attempting to launch hw_server at TCP:localhost:3121
Connected to hw_server @ TCP:localhost:3121
ERROR: Unable to detect JTAG cable
xsct% exec program_flash -f BOOT.BIN -fsbl zynq_fsbl.elf -flash_type qspi_single
****** Xilinx Program Flash
****** Program Flash v2019.1 (64-bit)
**** SW Build 2552052 on Fri May 24 14:49:42 MDT 2019
** Copyright 1986-2019 Xilinx, Inc. All Rights Reserved.
WARNING: Failed to connect to hw_server at TCP:localhost:3121
Attempting to launch hw_server at TCP:localhost:3121
Connected to hw_server @ TCP:localhost:3121
Available targets and devices:
Target 0 : jsn-openjtag2-1234-oj1A
Device 0: jsn-openjtag2-1234-oj1A-4ba00477-0
Retrieving Flash info…
Initialization done, programming the memory
===== mrd->addr=0xF800025C, data=0x00000001 =====
BOOT_MODE REG = 0x00000001
WARNING: [Xicom 50-100] The current boot mode is QSPI.
If flash programming fails, configure device for JTAG boot mode and try again.
===== mrd->addr=0xF8007080, data=0x30800100 =====
===== mrd->addr=0xF8000B18, data=0x00000000 =====
Downloading FSBL…
Running FSBL…
Finished running FSBL.
===== mrd->addr=0xF8000110, data=0x000FA220 =====
READ: ARM_PLL_CFG (0xF8000110) = 0x000FA220
===== mrd->addr=0xF8000100, data=0x00028008 =====
READ: ARM_PLL_CTRL (0xF8000100) = 0x00028008
===== mrd->addr=0xF8000120, data=0x1F000200 =====
READ: ARM_CLK_CTRL (0xF8000120) = 0x1F000200
===== mrd->addr=0xF8000118, data=0x00113220 =====
READ: IO_PLL_CFG (0xF8000118) = 0x00113220
===== mrd->addr=0xF8000108, data=0x00024008 =====
READ: IO_PLL_CTRL (0xF8000108) = 0x00024008
Info: Remapping 256KB of on-chip-memory RAM memory to 0xFFFC0000.
===== mrd->addr=0xF8000008, data=0x00000000 =====
===== mwr->addr=0xF8000008, data=0x0000DF0D =====
MASKWRITE: addr=0xF8000008, mask=0x0000FFFF, newData=0x0000DF0D
===== mwr->addr=0xF8000910, data=0x000001FF =====
===== mrd->addr=0xF8000004, data=0x00000000 =====
===== mwr->addr=0xF8000004, data=0x0000767B =====
MASKWRITE: addr=0xF8000004, mask=0x0000FFFF, newData=0x0000767B

。。。 此处省略一大段 。。。
device 0 offset 0xf60000, size 0x20000
SF: 131072 bytes @ 0xf60000 Written: OK
Zynq> 100%
sf write FFFC0000 F80000 FB70
device 0 offset 0xf80000, size 0xfb70
SF: 64368 bytes @ 0xf80000 Written: OK
Zynq> Program Operation successful.
INFO: [Xicom 50-44] Elapsed time = 65 sec.

Flash Operation Successful

最后有烧写成功的提示信息。


[参考]:https://blog.csdn.net/leon_zeng0/article/details/82931099

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

heat.huang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值