Getting started

coreyhahn edited this page Jan 24, 2013 · 12 revisions
Clone this wiki locally

This is a simple BSP for the Xilinx Zynq product line. So far, only the ZC-702 board is supported.

I'm publishing this layer in an effort to avoid fragmentation and get everyone doing Zynq work with OpenEmbedded working from the same BSP. I am not in a position to spend a lot of time solving peoples problems :)

  • Read
  • I do this (because I hate nesting git repos)

    mkdir oe-core; cd oe-core
    git clone git:// oe-core
    git clone git:// bitbake
    cd oe-core
    . ./oe-init-build-env ../build ../bitbake

  • Now you are in the build directory.

  • bitbake core-image-minimal and work out what else you need to install on the build machine.
  • Also review conf/local.conf. I'd set the parallelim options and move the download directory.

  • Now clone the meta-zynq layer in the oe-core directory

    (for zedboard)
    git clone git://
    (for ZC-702)
    git clone git://

  • Add this line to conf/bblayers.conf (the one with meta-zynq)

    BBLAYERS ?= " \
    /home/balister/src/oe-core/oe-core/meta \
    /home/balister/src/oe-core/meta-zynq \

  • Now remove the tmp* directory and sstae directories from the build dir. (Mostly qemu related stuff)

  • Add the MACHINE line to local.conf to select the ZC-702 board

    (for zedboard)
    'MACHINE ?= "zedboard"'

    (for ZC-702)
    'MACHINE ?= "zynq-zc702"`

  • Run bitbake zc702-proto-image

After the build completes look in tmp-eglibc/deploy/images/. There will be a u-boot, uImage, devicetree file, and a tarball of the rootfs. I have the build configured to run from the SD card. You will need to partition an SD card into two partitions. The first partition is a FAT partition with u-boot.bin (Called BOOT.BIN), devicetree, and zImage. The second partition is an ext4 partition that you untar the tarball into. I make the second partition start at sector 131072 to try and align with an erase block boundary.

BUGS: You need to meld a first stage boot loader with the u-boot file with a magical incantation from Xilinx to make BOOT.BIN. I need to document this one day. I am not sure if I can redistribute the fsbl binary. The source is not open. BOOT.BIN's from older Xilinx cards are based on an older u-boot that expects a zImage and will not work with the newer kernel.