Introduction

Xillinux-1.3 was released in late March 2014 for Xilinx' Zynq boards, superseding Xillinux-1.1. The latter was available only for Zedboard. A temporary kit for ZyBo was also released, which should be treated like a Zedboard for the purpose of upgrading methods.

Altera's SocKit board remains on Xillinux-1.1.

Xillinux-1.1 will be supported indefinitely, including the possibility to produce custom IP cores for this version, so upgrading is not mandatory, but is yet recommended for the following reasons:

  • Easier FPGA (PL) development cycle: The programming file in *.bit format is copied to the SD card, rather than generating the boot.bin file.
  • The Xillybus IP core relies on the ACP port, allowing for higher data bandwidth (~ 300 MB/s) and a significantly lower I/O related CPU consumption.
  • Rebooting is supported (as opposed to only shutdown / halt).
  • Linux kernel updated from version 3.3.0 to 3.12.0
  • U-boot upgrade, with more options
  • Capability of setting the board's Ethernet MAC address permanently, instead of the default

Which version am I running?

The easiest way to tell is typing "uname -r" at shell prompt on the board. For example, on Xillinux-1.3 it says

# uname -r
3.12.0-xillinux-1.3

If the answer is "3.3.0-xillinux-1.1+" or any earlier version, the system is considered Xillinux-1.1.

Staying with Xillinux-1.1

Those wishing to remain with Xillinux-1.1 should observe that the files in the main Xillinux page and the documentation have been updated. To stay with the old version, use these instead:

  • In the IP Core Factory, choose target "Old Zedboard (Xillinux-1.1)". Note that it's Xillinux that is old, not the board itself.
  • Check here for the documentation related to Xillinux-1.1
  • Click here to download the previous boot image creation kit for Zedboard.
  • Click here for the previous temporary boot partition kit for ZyBo.
  • Click here to download the previous SD card image.

Differences in root file system

Almost all differences between Xillinux-1.1 and Xillinux-1.3 are in the boot process, except for a few changes in Linux' file system, as follows:

  • Kernel modules, headers and configuration files for version 3.12.0
  • Improved startup scripts for sound support (more stable on Zedboard, and supporting sound on ZyBo).
  • Minor changes in the greeting messages, diagnostic messages etc.
  • Cleaner boot on MicroZed and Zybo boards

Upgrading

Upgrading to Xillinux-1.3 requires rebuilding the FPGA (PL) part of Xillinux, and replacing all files in the boot partition (the first partition in the SD card of type FAT32).

As for the root file system (the second partition, of type ext4, which is mounted as /) there are two alternatives:

  • Replacing the root filesystem. In essence this means downloading and building Xillinux' components from scratch, replacing the existing Linux installation. If this way is chosen, simple go Xillinux' main page, and run through the procedure. Please note that the installation instructions have been updated as well.
  • Patching the Linux filesystem for proper work with the v3.12.0 Linux kernel. This yields a system that is almost identical to an installation from scratch, but is faster and retains changes made in the Linux system.

Those choosing the second option, should follow these steps:

  • Make sure that the root filesystem has at least ~70 MB free space.
  • Download Xillinux-1.3's boot partition kit for the Zedboard or for ZyBo (but not the SD card image). Follow the instructions in section 3 of the updated documentation, except for subsections 3.6 and 3.7 (i.e. don't touch the SD card).
  • Download the filesystem patch, boot up the Zedboard (with old Xillinux) and make the downloaded file available on Zedboard's filesystem. Then, running on Zedboard's shell prompt, as root, type:
    tar -C / -xzf /path/to/xillinux-1.3-upgrade.tar.gz
    (this takes a couple of minutes to complete, and shouldn't generate any messages at all)
    If the Zedboard is connected to the Internet, it's possible to download the patch directly to the board, e.g
    wget http://xillybus.com/downloads/xillinux-1.3-upgrade.tar.gz
    tar -C / -xzf xillinux-1.3-upgrade.tar.gz
    rm xillinux-1.3-upgrade.tar.gz
  • Now copy the files for the boot partition as instructed in section 3.7 in the guide. Prior to copying the new set of files to the boot partition, delete the existing ones (possibly storing copies of them for backup).
  • Download the updated Linux kernel binary, unzip the file, and copy uImage into the boot partition as well. This file is already there in the SD card image for Xillinux-1.3, and therefore needs to be added manually when upgrading.
  • Note that no files from the previous version should be used in the boot partition. Mixing files from different versions will fail booting.
  • Veify that boot.bin, devicetree.dtb, uImage and xillydemo.bit exist in the boot partition.
  • Boot Zedboard. Verify that the new kernel is indeed running:
    # uname -r
    3.12.0-xillinux-1.3
  • Type "lsmod" at shell prompt. Several kernel modules should be listed there, among them "xillybus_core". If lsmod returns an empty list, please re-check the installation of the filesystem patch (see above).

Migrating application logic

Custom logic should be copied to the new Xillydemo project, rather than attempting to use the old project. There is however no difference in the API signals and their behavior.

There are also no differences in xillydemo.v and xillydemo.vhd between Xillinux versions 1.1 and 1.3. Hence, if xillydemo.v/vhd has been edited for integration with custom logic on Xillinux-1.1, it's fine to overwrite Xillinux-1.3's sample xillydemo file with the edited one.

If a design is based upon a custom IP core, go to the IP Core Factory and make a replica of the desired IP core. Target this replica to Zedboard (as opposed to "old Zedboard") and re-generate the IP core.