Installation

Installing Connectal from Packages

On Ubuntu systems, connectal may be installed from pre-built packages:

sudo add-apt-repository -y ppa:jamey-hicks/connectal
sudo apt-get update
sudo apt-get -y install connectal

Installing Connectal from Source

Connectal source comes from three repositories:

git clone git://github.com/cambridgehackers/connectal
git clone git://github.com/cambridgehackers/fpgamake
git clone git://github.com/cambridgehackers/buildcache

To use Connectal to build hardware/software applications, some additional packages are required:

cd connectal; sudo make install-dependences

Installing Connectal Drivers and PCI Express Utilities:

To run Connectal applications on FPGAs attached via PCI Express, a couple of device drivers have to be built and installed:

cd connectal; make all && sudo make install

In addition, you will need to build and install fpgajtag and pciescan:

git clone git://github.com/cambridgehackers/pciescan
(cd pciescan; make && sudo make install)

git clone git://github.com/cambridgehackers/fpgajtag
(cd fpgajtag; make && sudo make install)

Installing Vivado

Download Vivado from Xilinx:

Connectal builds do not use the Vivado SDK.

Installing Ubuntu on Zynq (Zedboard, etc)

The shorthand instructions are:

  • Follow the instructions to install Ubuntu for Raspberry Pi 2 on and SD Card
  • Copy a Zedboard boot.bin to the first (VFAT) partition of the SD Card
  • Boot the Zedboard
  • Default password for user “ubuntu” is “ubuntu”

Toolchain

Zynq contains dual ARM Cortex A9 cores, which are 32-bit processors using the ARMv7 instruction set. They are compatible with the toolchain used for Raspberry Pi 2, which has prefix “arm-linux-gnueabihf”.

The “eabi” suffix indicates the ARM extended application binary interface standard.

The “hf” suffix indicates that the toolchain generates floating point instructions rather than subroutine calls to emulate floating point, because not all 32-bit ARM processors have floating point units.

Formatting and SD Card for Ubuntu

Ubuntu 16.04 uses filesystem labels to determine which partitions to mount. There should be two partitions, with the following labels:

  • system-boot The first partition should be vfat so that the firmware in the Zynq ROM can read it to find boot.bin. The following command will format the partition and label it:

    mkfs -t vfat -n system-boot /dev/sdb1

  • cloudimg-rootfs The second partition should be a Linux filesystem (default ext4) containing the ubuntu installation. The following two commands will format a partition and label it:

    mkfs -t ext4 /dev/sdb2
    e2label /dev/sdb2 cloudimg-rootfs
    

Install a boot.bin file

See the instructions at https://github.com/cambridgehackers/zynq-boot

Configuring a Linux Kernel for Ubuntu 16.04

I had to change the kernel configuration to suppport systemd, the init system used in Ubuntu 16.04.

To be written ...