The PetaLinux toolkit can be used to build the YumaPro SDK code for Xilinx target boards.

  • The 19.10-16 and 20.10-4 releases fully support cross compilation for PetaLinux.
  • Installation and setup of the PetaLinux SDK is out of scope. This tutorial assumes the SDK has been correctly installed.
  • The PetaLinux build environment scripts need to be sourced into the shell that is used to run "make" to build the software
  • Several make command options specific to YumaPro are available for cross-compiling (described below)
  • In the examples below the "aarch64-xilinx-linux target is used
  • Other make parameters are allowed, unrelated to cross-compilation. They are shown in the example as positioned last, but the parameter order should not matter


make INC_PREFIX=/opt/SDK/sysroots/aarch64-xilinx-linux/usr/include \
 YP_SYSROOT=/opt/SDK/sysroots/aarch64-xilinx-linux \
 CROSS_TARGET=aarch64-xilinx-linux- \
 EXTRA_CFLAGS="-march=armv8-a+crc -mtune=cortex-a72.cortex-a53" \
 HOST=aarch64-xilinx-linux \

Make Parameters For PetaLinux Cross Compiling

Mandatory Parameters


  CROSS_TARGET=<string>: Define the prefix to use for a cross
     target toolchain. Example CROSS_TARGET=arm-linux-gnueabi-
     Note that cross compiling requires that the target architecture
     linker finds the correct external libraries such as libxml2
     Do not use this parameter for uCLinux. Use UCLINUX=1
     Do not use this parameter for Yocto. Use BITBAKE=1
     The tool names will be appended to the $(CROSS_TARGET)
     value if it is set. E.g. $(CROSS_TARGET)gcc will resolve
     to arm-linux-gnueabi-gcc


  INC_PREFIX=string: set the base string for the include path
      The default is $(DESTDIR)$(INSTALL_PREFIX)/include
      Used for cross-compiling to change the location for
      all built-in include file searches.  The USER_INC parameter
      can be used to inject -I directives into the compiler command.
      The INC_PREFIX and USER_INC parameters can be used together.


  HOST=string: standard make variable for cross-compile
     Must be set correctly together with CROSS_TARGET
      make HOST=mips64-octeon-linux-gnu CROSS_TARGET=mips64-octeon-linux-gnu-


  YP_SYSROOT=<path-string> : specify the --sysroot parameter for the
    compiler and linker. The poath cannot have any whitespace in it.
   Added to CFLAGS and CXXFLAGS:

Optional Parameters


  EXTRA_CFLAGS=<string> : Additional compiler flags to add to the CFLAGS
  directive. It will be added to CPPFLAGS as well for C++ compilation