Tree [b046b9] master /

File Date Author Commit
 conf 2013-11-12 Oleg Dzhimiev Oleg Dzhimiev [39faa7] removing MACHINE, not needed
 recipes-bsp 2014-04-25 Oleg Dzhimiev Oleg Dzhimiev [b046b9] updated ezynq and uboot repo revisions
 LICENSE 2013-10-03 Oleg Dzhimiev Oleg Dzhimiev [ab6406] initial 2014-03-08 Oleg Dzhimiev Oleg Dzhimiev [33d8eb] corrections

Read Me


This layer provides an unofficial support for Xilinx Zynq architecture
as well as evaluation boards.

ezynq-u-boot creates u-boot image (SPL + u-boot) without any extra proprietary tools required.
It does not support secure boot functionality and loading the FPGA (PL) part
with a bitstream - it is planned to do under the control of the operating system -
if needed this feature can be implemented using u-boot.

Supported boards/machines

Boards supported by this layer:

  • MicroZed
  • Zedboard (?)
  • ZC706
  • Elphel393


This layer depends on:

  • URI: git://
  • URI: git://, layers: meta
  • URI: git://, layers: meta-sourcery (for external toolchains only)
  • URI: git://, branch=master-next
  • URI: git://

Build instructions

The following instructions require a Poky installation (or equivalent).

Initialize a build using the oe-init-build-env script in Poky. Once
initialized configure bblayers.conf by adding the meta-ezynq layer:

meta-ezynq \

To build a specific target BSP configure the associated machine in local.conf:

MACHINE ?= "microzed"

Build U-Boot:

$ bitbake u-boot-ezynq

$ bitbake virtual/bootloader
$ bitbake u-boot

Once complete the images for the target machine will be available in the output
directory tmp/deploy/images.

Images generated:

  • boot.bin+u-boot.img (fsbl is not required to boot)

Extra output at build/tmp/work/.../ezynq-u-boot/${PV}_${PR}/git/u-boot-xlnx/:

  • u-boot.html - configuration settings overview
  • - the bootloader's memory map
  • u-boot - ELF file


SD Card Boot

Note: This boot flow generates a bootable boot.bin.

  1. Copy boot.bin and u-boot.img(if generated) onto the SD Card.
  2. (might not work) Copy the following to the SD card (ensure to rename the files where appropriate):
    • uImage - kernel
    • uramdisk.image.gz (core-image-minimal-<machine name="">.ext2.gz.u-boot) - RootFS
    • devicetree.dtb (uImage-<machine name="">.dtb) - Device Tree Blob
  3. Insert SD Card, connect UART to Terminal program and boot board (Ensure the
    board is configured for SD Boot).
  4. To get to u-boot command line press any key withing 1 second.

Develop (add new machine/board)

  1. Configure the new board in build/conf/local.conf:

    MACHINE ?= "{new-board}"
  2. Create conf/machine/<new-board>.conf - use microzed.conf as a reference.

  3. Edit {new-board}.conf - add:

    UBOOT_MACHINE = "{new-config-name}_config"

    where {new-config-name} is from boards.cfg in u-boot-xlnx plus "_config"-ending

  4. Run

    bitbake ezynq-u-boot -c patch -f

    The command clones git repositories and add ezynq files to u-boot-xlnx.

    Note: Ezynq can be cloned and generate boot.bin apart from poky - please see Ezynq's documentation.

  5. Edit ezynq files located at build/tmp/work/.../ezynq-u-boot/${PV}_${PR}/git/u-boot-xlnx/:

    • boards.cfg - add {new-config-name} if it's not in the list.

    • create a new include/configs/{new-config-name}.h - use zynq_microzed.h as a reference)

    • {new-config-name}.h needs to include the following files:

      #include <configs/ezynq/ezynq_MT41K256M16RE125.h>  /* should be before zed_ezynq.h as it overwrites DDR3L with DDR3 */
      #include <configs/ezynq/ezynq_XC7Z010_1CLG400.h>
      #include <configs/ezynq/zed_ezynq.h>
    • edit the included header files according to the new board configuration.

    WARNING: After the step 5 don't run bitbake ezynq-u-boot -c clean - deletes everything in build/tmp/work/.../ezynq-u-boot/${PV}_${PR}/

  6. Run

    bitbake u-boot-ezynq

    Note: u-boot.bin (not the final boot.bin) size cannot exceed 192KB

Trademark notices

Xilinx® and Zynq® are registered trademarks of Xilinx.

Ezynq project is not endorsed by or affiliated with Xilinx Inc.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks