FreeBSD on Zedboard

The Zedboard is an evaluation board for Xilinx Zynq-7000 series System-on-a-Chip. The Zynq-7000 is an FPGA combined with an ARM Cortex-A9 core and a set of standard peripherals.

SDCARD images

SD card images for FreeBSD 11-RELEASE on the Zedboard can be found on Thomas Skibo's FreeBSD on Zedboard page.

Also, Tim Kientzle's system build tool, Crochet, can build Zedboard SD card images. The following describes how to manually build an SD image for Zedboard:

Building FreeBSD for Zedboard

Zynq/Zedboard support is in -CURRENT and 11-STABLE. To build world and kernel for the Zedboard:

Building u-boot.img and boot.bin

The Zedboard needs several files in a boot partition. The file boot.bin is the first executable the Zynq chip boots. It initializes the Zynq and then hands over execution to u-boot.img. Both files are built from sources from Xilinx on github. Release xilinx-v2016.4 is the latest I've tested.

To build these files, you will need the arm-none-eabi-gcc and python2 ports. Both of these can be installed either using pkg or from ports.

Before building u-boot, it needs to be patched to enable the u-boot API and to fix a bug in the default environment:

To build u-boot.img and boot.bin execute the following:

The u-boot.img file will be in the top directory and boot.bin will be in subdirectory spl/.


The following small file overrides u-boot's default boot commands and boots ubldr which then boots FreeBSD:

Building an SDCARD image

Create SD card image

Mount filesystems

Populate root and boot partitions

From within the source directory:

Copy necessary files to the boot partition

Final tweaks

Copy the DTB file to /boot/kernel:

Customize configuration files /mnt/armroot/etc/{rc.conf,hosts,fstab} to taste.

Unmount file systems

Copy to an SD card

FreeBSD/arm/Zedboard (last edited 2017-01-14 01:17:04 by ThomasSkibo)