Jump to content
  • 0

PYNQ - how to build u-boot from source




I'm trying to understand how to build u-boot from source.  I've downloaded the source following the xilinx "fetch sources" wiki.  I also got the uboot-config file from the PYNQ repo here:


I have a Z1 board from Digilent and downloaded the latest master repo in it's entirety.  The latest on master doesn't have the above u-boot config so this is the only file I got from a non-master branch.  I can make the entire project for pynq from master with no problem.  I have a fully functional viavdo gui project etc...  I've also used the sdk to build the fsbl which works fine.  I've tested this with xsct for downloading to SoC and testing with a terminal.  I see messages from the fsbl and it waits in its handoff looop.  So my next step is to build and download uboot.

In the uboot root directory I've placed the config (pynq uboot config file above) file in configs/my_uboot_config.  When I tried to compile uboot with just this config file the compiler said it needed the zynq_arty7.h file.  I have gotten that from the Digilent repo and added that file to "include/configs/zynq_arty7.h".  I've also attached that file.

I can get the uboot build kicked off with these and it goes for a little while then errors out.  I've also attached a screenshot of that error message during compiling. 


I'm taking a step back and trying to figure out now if these configuration files are even correct.  I've noticed that when I do "make pynq_z1_defconfig" i get a .config file in my root directory.  This file never has a value for CONFIG_SYS_TEXT_BASE.  It is always blank.  All I want to do is build u-boot and download it to the SoC via jtag.  My plan was to take each part one step at a time and use the jtag link to program (using xsct) and verify they are working.  The fsbl runs fine and waits for a uboot download.  Unfortunately I can't get a good uboot image for the pynq board.  I can compile uboot for the zed board without any issues. 

Questions below:

1. Does this Pynq config file look correct?

2. Why is CONFIG_SYS_TEXT_BASE always blank in .config?

3. What other files does "make pynq_z1_defconfig" operation pull in?  Where do things like base memory addresses in the ".config" come from?

4. In the .config file, where can I find an explanation of what all the definitions mean?

6. Where do I find the base address for my debug uart?  I'm using the uart in the jtag program usb link, but what base address should the .config file have for this uart?  The mdm module?  where can I find this address in my vivado/sdk project to verify the config file is correct?

Any insight would be helpful!


pynq_uboot_defconfig.txt arty_uboot_config_dot_h.txt

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

Hello @m3atwad

Here are some steps you can use to build u-boot for Pynq-Z1

clone git https://github.com/Xilinx/u-boot-xlnx.git

checkout commit under tag `xilinx-v2018.3`

apply attached patches (git am 000*  #whitespace errors can be ignored )

export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-

make zynq_pynqz1_defconfig



0001-add-preliminary-support-for-artyz.patch 0002-allow-to-read-mac-address-from-SPI-flash.patch 0003-add-pynqz1-derivative.patch 0004-disable-gpio-command-and-fix-warnings.patch

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

  • Create New...