Help building from source for Pynq


  1. I just got a Pynq board and I’d like to build both u-boot and linux from source. I’d like to build u-boot to understand the process. Where can I find the header in the configs folder for the Pynq? Currently I am using zynq-zed-defconfig.h. I’m seeing a boot failure shown below and I’m thinking it may be because I don’t have the correct config header file.

Info: ARM Cortex-A9 MPCore #0 (target 2) Stopped at 0x4057770 (Suspended)
hang() at include/bootstage.h: 380
380: show_boot_progress(-id);

I’ve been looking around for the u-boot config used to configure u-boot during the build process and can’t find it anywhere in the repo.

  1. I’d like to build the Xilinx open source linux instead of peta linux. Is that possible? I know the Pynq code can be re-purposed to other boards, but what if I want to go from Petalinux to the open source “Xilinx linux”? Can I use the same filesystem and device tree files from the repo?

Petalinux isn’t a distinct version of Linux rather it’s a tool that wraps the Yocto build system to simplify the process of building all of the dependencies. This means that when you build using Petalinux you are compiling the code from the linux-xlnx github repo. Part of what it does is generate the configuration files for u-boot and Linux based on the hardware project but this can be done manually if you prefer.

An old version of PYNQ didn’t use Petalinux and instead built all of the components directly from source - the core of that flow can be seen here: We switched to Petalinux when adding support for Zynq Ultrascale+ because the MPSoC devices have a much more complicated boot flow.


Hi Peter,

Thank you for the response! I am new so I apologize for the painful questions.

So in the repo you linked me to I found the uboot.config in the following folder:

Is this the config file uboot needs in the u-boot-xilnx/configs folder? I’m currently trying to build u-boot with the zynq_zed_def config. Is it correct to place the Pynq-Z1-defconfig in this directory and use the make Pynq-Z1-defconfig then “make” to make u-boot from source?

As for the current repo that supports Pynq - How does the system build u-boot without the config above? I’ve successfully built the pynq hardware vivado project and all that went fine. Is the intention to use the pre-built binaries for linux and u-boot rather than build them because the source to rebuild them isn’t in the repo?

I have gotten the config working I think, but there are a lot of warnings. Why are there so many warnings - I have probably around 1000 lines of warnings?

I’ve attached a screenshot of what I see after make <pynq-z1-defconfig (from the git repo you pointed me to)>

I think I’ve figured out how to use the u-boot config file. It looks like you have to rename uboot.config from the repo to zynq_p1_defconfig. Once I did this and ran “make config” the .config file was produced.

Unfortunately the “.config” file that was produced has a problem due to the CONFIG_SYS_TEXT_BASE value. I the produced config file it is equal to nothing. So,


this causes an error when building u-boot withe the “make” command. Screenshot showing issue attached.

second image