PYNQ V2.7 SD image build fail for board PYNQ-Z2

I just try the build the Pynq-Z2 with my machine:

What Vivado version you install and did you deselect some installation?

Hi @Willy,

In the log you posted there are some logs of the failed synths

pynqz2_ps7_0_synth_1: /pynq/sdbuild/build/Pynq-Z2/petalinux_bsp/hardware_project/pynqz2/pynqz2.runs/pynqz2_ps7_0_synth_1/runme.log

You might see a hint on why this is failing. This seems like a weird Vivado issue.

I’ll echo Brian’s concern of Vivado installation. It appears you are using Vivado 2020.2.2… It shouldn’t be a problem because it is close enough to 2020.2, but I don’t believe the pynq-z2 builds were ever tested with that version.


No Skalade, he might removed some board package or series during installation that can’t tell as those warning are happening with my install environment.
As same env install should reproduce same result.

Maybe just maybe the tcl script are so dump that 2020.2 and 2020.2.2 string are not match and lead to those warnings but I should update my install guide more as I won’t expect engineer would not follow the Readme version support list.

Sorry,I still can’t understanding.
I don’t find the /PYNQ/sdbuild/PYNQ/, only see the Pynq-Z2 in the build folder.

I am using the Vitis 2020.2 and install relative updated:


I select the Vitis option during the installation GUI, it contains the Vitis and Vivado together.

I also try following steps but got the same error.

  1. Create PYNQ folder in the ~/PYNQ/sdbuild/build/
  2. cp from ~/PYNQ/ to that
  3. Remove the specified lines in the ~/PYNQ/sdbuild/build/PYNQ/
  4. Remove ~/PYNQ/sdbuild/build/Pynq-Z2
  5. cd ~/PYNQ/sdbuild and execute below command:
    make PREBUILT=focal.aarch64.2.7.0_2021_11_17.tar.gz BOARDS=Pynq-Z2

Did you install all ZYNQ series and ULTRA ZYNQ and also the board package and other necessary on the unified 2020.2 installer?

This is a two stage process, make 1st time if error check if the error related to the board you are building if not go to the the and remove the lines that are not needed make once wo the clean previous build will go through quicker and eventually successfully build the Image.
If you need prove I can run it again.

Hi briansune,
I’m not sure, I just follow the default configuration and make sure the install target option is Vitis. I think the board package and other necessary should not the root cause because I can use Vivado GUI to build the tmp project in the build folder.

I will try to remove the Vivao and Vitis 2020.2.2 version and re-install 2020.2 again for a try.

Did you patch the HLS and also run the sh setup script of each steps?

yes. 2ky22 patch, and the, are executed done.

Willy, need more details on the install location and path in order to debug more as I had install many time to ensure this is repeatable and stable on PC which the default installation guide is not mentioned nor create details on settling different broken web-link etc.

I use default path, it will install to the /tools/Xilinx.
Just want to comfirm, should I check the Vitis option during the installation guide or chose Vivado??

Vitis otherwise Vitis will not be install.

I need more details on each step
path you place and installed access right.
Follow the setup step and place the path location accordingly
Meantime CPU# and ram are enough?


  1. Install Vitis (contains Vivado) in /tools/Xilinx (2020.2 without other updates)
  2. Install y2k22_patch
  3. chmod privilege to 777


  1. chmod 777 for petalinux
    location: /home/willy/petalinx

cd ~/PYNQ/sdbuild
Got the same error:

WARNING: [Vivado 12-8222] Failed run(s) : ‘pynqz2_ps7_0_synth_1’, ‘pynqz2_rst_ps7_0_fclk0_0_synth_1’, ‘pynqz2_rst_ps7_0_fclk1_0_synth_1’, ‘pynqz2_rst_ps7_0_fclk2_0_synth_1’
wait_on_run: Time (s): cpu = 00:00:00.02 ; elapsed = 00:00:46 . Memory (MB): peak = 2624.980 ; gain = 0.000 ; free physical = 1476 ; free virtual = 1905
INFO: [Vivado 12-4895] Creating Hardware Platform: /home/willy/PYNQ/sdbuild/build/Pynq-Z2/petalinux_bsp/hardware_project/pynqz2.xsa …
INFO: [Project 1-655] Project does not have Board Part set. Board related data may be missing or incomplete in the generated Hardware Platform.
WARNING: [Project 1-646] Board name, vendor and part not set in Hardware Platform.
WARNING: [Project 1-645] Board images not set in Hardware Platform.
INFO: [Hsi 55-2053] elapsed time for repository (/tools/Xilinx/Vivado/2020.2/data/embeddedsw) loading 0 seconds
WARNING: [BD 41-2589] Platform should have atleast one axi memory mapped master interface. Enable a master AXI interface as platform AXI_PORT.
INFO: [Project 1-1042] Successfully generated hpfm file
write_project_tcl: Time (s): cpu = 00:00:16 ; elapsed = 00:00:11 . Memory (MB): peak = 2624.980 ; gain = 0.000 ; free physical = 2000 ; free virtual = 3521
ERROR: [Common 17-70] Application Exception: Need an implemented design open to write bitstream. Aborting write_hw_platform…
INFO: [Common 17-206] Exiting Vivado at Wed Jun 1 15:22:22 2022…
makefile:13: recipe for target ‘bitstream’ failed
make[1]: *** [bitstream] Error 1
make[1]: Leaving directory ‘/home/willy/PYNQ/sdbuild/build/Pynq-Z2/petalinux_bsp/hardware_project’
Makefile:343: recipe for target ‘/home/willy/PYNQ/sdbuild/build/Pynq-Z2/petalinux_bsp/xilinx-pynqz2-2020.2.bsp’ failed
make: *** [/home/willy/PYNQ/sdbuild/build/Pynq-Z2/petalinux_bsp/xilinx-pynqz2-2020.2.bsp] Error 2

make clean
make PREBUILT=focal.aarch64.2.7.0_2021_11_17.tar.gz BOARDS=Pynq-Z2
The error happen again.

VM memory: 4G
Processor: 4
BTW, I am using VirtualBox 6.1

I will suggest 8192 RAM.
Meantime I am also using VirtualBox 6.1
Try enlarge a bit ram clean and see

You got it. I change the VM’s RAM to 8G, the build error seems gone.
The building process is keep going.
So far I found a fail message as below:
Do you meet the same problem before?

BTW, could you help to comment below questions:

  1. what’s the board-agnostic stage??
  2. If we want to study the FSBL(first stage bootloader), and second stage boot loader (uboot), Could I find the source code about them in the sdbuild folder?

U didn’t setup the tftp and source of the petalinux with below settings?
source /Vitis/2020.2/
source /petalinux-2020.2-final/
petalinux-util --webtalk off

I had setup the source of petalinux, vitis, and vivado in bashrc:

source /tools/Xilinx/Vivado/2020.2/
source /tools/Xilinx/Vitis/2020.2/
source /home/willy/petalinux/

I follow your steps to setup the tftp, but I’m not sure it is working.
I open the terminal and show below image, I don’t see the tftp related error:

The make processing is done, and get below message which contains the tftp relative error:

[INFO] : Bootimage generated successfully

INFO: Binary is ready.
WARNING: Unable to access the TFTPBOOT folder /tftpboot!!!
WARNING: Skip file copy to TFTPBOOT folder!!!
cp -f /home/willy/PYNQ/sdbuild/build/Pynq-Z1/petalinux_project/images/linux/BOOT.BIN /home/willy/PYNQ/sdbuild/output/boot/Pynq-Z1
mkimage -c none -A arm -T script -d /home/willy/PYNQ/sdbuild/build/Pynq-Z1/petalinux_project/project-spec/meta-user/recipes-bsp/u-boot/u-boot-zynq-scr/boot.cmd.default /home/willy/PYNQ/sdbuild/build/Pynq-Z1/petalinux_project/images/linux/boot.scr && cp -f /home/willy/PYNQ/sdbuild/build/Pynq-Z1/petalinux_project/images/linux/boot.scr /home/willy/PYNQ/sdbuild/output/boot/Pynq-Z1/boot.scr
Image Name:
Created: Wed Jun 1 17:05:34 2022
Image Type: ARM Linux Script (gzip compressed)
Data Size: 1572 Bytes = 1.54 KiB = 0.00 MiB
Load Address: 00000000
Entry Point: 00000000
Image 0: 1564 Bytes = 1.53 KiB = 0.00 MiB
mkdir -p /home/willy/PYNQ/sdbuild/build/ZCU104
cp /home/willy/PYNQ/sdbuild/boot/image_aarch64.its /home/willy/PYNQ/sdbuild/build/ZCU104/image.its
rm -rf /home/willy/PYNQ/sdbuild/build/ZCU104/petalinux_bsp
mkdir -p /home/willy/PYNQ/sdbuild/build/ZCU104/petalinux_bsp
BSP=xilinx-zcu104-v2020.2-final.bsp BSP_BUILD=/home/willy/PYNQ/sdbuild/build/ZCU104/petalinux_bsp BSP_ABS=/home/willy/PYNQ/sdbuild/…/boards/ZCU104/xilinx-zcu104-v2020.2-final.bsp BSP_PROJECT=xilinx-zcu104-2020.2 /home/willy/PYNQ/sdbuild/scripts/ /home/willy/PYNQ/sdbuild/…/boards/ZCU104 zynqMP

  • set -e
  • board=/home/willy/PYNQ/sdbuild/…/boards/ZCU104
  • template=zynqMP
  • ‘[’ -n xilinx-zcu104-v2020.2-final.bsp ‘]’
  • [[ xilinx-zcu104-v2020.2-final.bsp == :// ]]
  • cp -f /home/willy/PYNQ/sdbuild/…/boards/ZCU104/xilinx-zcu104-v2020.2-final.bsp /home/willy/PYNQ/sdbuild/build/ZCU104/petalinux_bsp
    cp: cannot stat ‘/home/willy/PYNQ/sdbuild/…/boards/ZCU104/xilinx-zcu104-v2020.2-final.bsp’: No such file or directory
    Makefile:343: recipe for target ‘/home/willy/PYNQ/sdbuild/build/ZCU104/petalinux_bsp/xilinx-zcu104-2020.2.bsp’ failed
    make: *** [/home/willy/PYNQ/sdbuild/build/ZCU104/petalinux_bsp/xilinx-zcu104-2020.2.bsp] Error 1

I checked the build/PYNQ-Z2: it contains
image.its petalinux_bsp petalinux_project system.dtb zImage
Does it means compiler is PASS now?