1 Abstract

  • Boot APU only
    • FSBL, ATF, U-boot, PMU-FW
    • APU OS: SMP Linux
  • Ethernet via FTP/SCP
  • Serial console via UART0
  • File system via SD, USB or SATA
  • Standard Linux applications on rootfs

2 Block Diagram



DM-1.jpg

3 Tool Flow Tutorials


This wiki page assumes that the user has already downloaded the Zynq UltraScale+ MPSoC Base TRD zip file and extracted its contents. For reference in the following tutorials, we export TRD_HOME as environment variable.
% export TRD_HOME=</path/to/downloaded/zip-file>/zcu102-base-trd-2016-3

3.1 Build the Petalinux BSP


The PetaLinux BSP is pre-configured for this reference design application and includes the following components:
  • u-boot bootloader u-boot.elf
  • ARM trusted firmware (ATF) bl31.elf
  • Linux kernel
  • Device tree
  • Linux root file system (rootfs)

The generated file image.ub contains the Linux kernel, devicetree blob, and rootfs in a single FIT image.

Tutorial:
  1. Change the directory to the PetaLinux board support package (BSP)
    % cd $TRD_HOME/apu/petalinux_bsp
  2. Configure all PetaLinux components
    % petalinux-config --get-hw-description=./hw-description/ --oldconfig
  3. Create a symbolic-link to point to desired design module device tree blob, e.g. system-dm1.dts for design module 1
    % cd subsystems/linux/configs/device-tree/
    % ln -sf system-dm1.dts system-top.dts
    % cd -
  4. Build all PetaLinux components including u-boot, kernel, device tree blob and rootfs
    % petalinux-build
    • The generated SYSROOT contains all system libraries and headers required to compile and link the video_qt2 application and is located at $TRD_HOME/apu/petalinux_bsp/build/linux/rootfs/stage.
    • The generated Linux image binaries will be placed at $TRD_HOME/apu/petalinux_bsp/images/linux.
  5. [Optional] Copy the generated image.ub, u-boot.elf, and bl31.elf binaries into the SDx platform's boot directory $TRD_HOME/apu/zcu102_base_trd/sw/boot or use the pre-built versions at the same location.

3.2 Build the PMU Firmware


The pmu_fw application is a bare-metal application that executes on the PMU MicroBlaze. It is loaded by the CSU early on in the boot process before the FSBL executes. The application's primary responsibility is to handle power management.

Tutorial:
  1. Launch the Xilinx software development kit (XSDK) from the console.
    % cd $TRD_HOME/pmu
    % xsdk -workspace $TRD_HOME/pmu/pmu_fw
  2. Close the Welcome screen and import the PMU firmware projects.
    • Click File -> Import... -> General -> Existing Projects into Workspace and click Next.
    • Navigate to the $TRD_HOME/pmu/pmu_fw directory using the Browse button.
    • Select the pmu_fw, pmu_fw_bsp, and zcu102_base_trd_hw_platform projects.
    • Click Finish.
    mpsoc_base_trd_pmu_fw.png
  3. Build the imported projects:
    • Right-click on the pmu_fw project and select Build Project.
    • The generated elf file will be placed at $TRD_HOME/pmu/pmu_fw/pmu_fw/Release/pmu_fw.elf.
  4. [Optional] Copy the above binary into the SDx platform at $TRD_HOME/apu/zcu102_base_trd/sw/boot.

3.3 Create a boot image

Select the bif file based on the desired design module e.g. for dm1, run:
  • % cd images/linux
    % petalinux-package --boot --bif=dm1.bif --force
    % cd -
    • The generated bin file will be placed at $TRD_HOME/apu/petalinux_bsp/images/linux/BOOT.BIN.

3.4 Execute the images


Copy the below files onto SD card:
  • BOOT.BIN
  • image.ub

On booting, observe FSBL, PMU FW, ATF messages followed by Linux boot messages.