Pynq-Z1 u-boot移植笔记
Author: (2022.10.21)
创建vivado,生成bistream,因为前期不清楚芯片pynq-z1如何配置时钟和ddr部分,可以网上下载board file,然后在vivado安装目录下,新建board_file目录,将pynq-z1 board file放在此目录,就可以在vivado的board部分看到pynq-z1板卡,直接选中,然后新建clock,design,开始编译shengchenghdl,然后生成bitstream,倒出hardwave信息表,在vitis中使用
当前使用费的vivado和vitis是2021版本的
在官网下载xilinx-uboot-2021.2版本
默认xilinx_zynq_virt_defconfig中的设备使用的是zynz-zc706.dts(在arch/arm/dts中)
以下时钟不做更改,串口会打印乱码
在configs下找到xilinx_zynq_virt_defconfig.h(这个文件是官方说明在高版本的u-boot中,使用这个文件配置zynq系列芯片)更改设备树文件:这里使用的设备树更改为zynq-zc702.dts
u-boot源码根目录下,执行make menuconfig,配置QSPI使能
配置和编译:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- xilinx_zynq_virt_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8
可以在u-boot中看到生成的u-boot.Elf
Vitis创建fsbl:然后编译
Creat boot image
开机uart0打印结果,(注意需要设置为115200,vivado中串口配置一样需要设置为115200)
总操作:
pynq-z1移植uboot:
当前使用费的vivado和vitis是2021版本的
在官网下载xilinx-uboot-2021.2版本
默认xilinx_zynq_virt_defconfig中的设备使用的是zynz-zc706.dts(在arch/arm/dts中)
将这里使用的设备树更改为zynq-zc702.dts
打开zynq-zc702.dts
此时串口使用的是serial0=uart1,见这里更改为uart0
添加&uart0设备树节点,将mio引脚添加上去,
最重要一点pynq-z1通过vivado创建的ps时钟是50M的
默认官方是33.33333M的,需要在dts文件中找到ps时钟,将时钟修改为50M
使用
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- xilinx_zynq_virt_defconfig
make V=1 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j8
执行编译出来
拷贝u-boot.elf到桌面,用vitis创建fsbl,将模式强制更改为qspi_mode
然后将通过bootimage(使用new的)创建BOOT.BIN(包含当前的fsbl(bootloader),xx.bit,u-boot.elf)
然后生成后通过pramgram flash烧录进去板子,然后重启,将引脚模式跳冒到QSPI模式,开端口可以boot启动的信息文章来源:https://www.toymoban.com/news/detail-626713.html
因为设置为QSPI启动,需要在uboot源码中配置,将make menuconfig开启配置文章来源地址https://www.toymoban.com/news/detail-626713.html
到了这里,关于pynq-1 viaodo配置和启动uboot的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!