Adding Zmod Support in Petalinux

Overview

This guide goes through the process of adding support for a Zmod hierarchical block to a Petalinux environment, so that a user may use a custom hardware design with Petalinux.


Prerequisites

Section Requirements:

  • Petalinux Installation in a supported environment
    • Petalinux is a tool created by Xilinx, used for the creation and modification of Linux images for Xilinx chips, including the Zynq-7000.
    • Xilinx's Petalinux Tools Reference Guide (UG1144) covers installation and usage of Petalinux. Chapter 2 discusses the installation process.
    • For Windows users, Digilent recommends the use of either a dual-boot Linux setup or virtual machine that fits the requirements specified in UG1144, linked above.
  • HDF File exported from the target Vivado Project
  • MicroSD Card

Guide

  1. Download the sources for the most recent tagged commit of the Eclypse Z7 Base Petalinux Project (as a tar or zip), and extract it.
  2. Open a console and cd into the extracted Petalinux project.
  3. Call the following command to import the hardware exported from Vivado into the project:
    petalinux-config --get-hw-description=<path to .hdf folder>
  4. Navigate to and open the system-user device tree source include file (./project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi) in a text editor. Add the following code to the file:
    &AXI_ZmodADC1410_1 {
        compatible = "generic-uio";
    };
     
    &amba_pl {
        axidma_chrdev: axidma_chrdev@0 {
            compatible = "xlnx,axidma-chrdev";
            dmas = <&axi_dma_0 0>;
            dma-names = "rx_channel";
        };
    };

    Important: Confirm that the name of each IP listed, in this case the axi_dma_0 and AXI_ZmodADC1410, match names in the Vivado project. If the IP is contained in a hierarchy, the name of the hierarchy should be prepended to the IP name (example: ZmodADC_0_AXI_ZmodADC1410).

  5. Additional changes to the Petalinux project can be made at this time. For example, the default filesystem is initially set to initramfs and may be changed to SD card by calling
    petalinux-config

    navigating the menu into Image Packaging configurationRoot filesystem type and selecting SD card.

  6. Build the Petalinux project by calling the following command:
    petalinux-build

    Note that this process may take anywhere from 15 to 60 minutes, depending on the computer used.
    This process produces a FIT image called image.ub that contains the kernel, device tree and the root filesystem.

  7. Once the project has been built, the FSBL, FPGA bitstream, PMU firmware, and U-Boot must be packaged into a single binary which can be used to boot the board. This binary is named “BOOT.bin” and can be generated with
    petalinux-package --boot --force --fsbl images/linux/zynqmp_fsbl.elf --fpga images/linux/system.bit --u-boot

    and can be found in the ./images/linux folder.

  8. Format the SD card with FAT32.
  9. Copy the image.ub and the BOOT.bin from the Petalinux project's images/linux folder to the SD card's first partition.

Next Steps

See Zmod Base Library User Guide for instructions on setting up software examples for the chosen Zmod/s.

See the Eclypse Z7 Resource Center for more information on the Eclypse Platform.