Overview


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


Example:


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 \
 PRODUCTION=1 TIMER_MONO_CLOCK=1 WITH_CLI=1 WITH_YCONTROL=1




Make Parameters For PetaLinux Cross Compiling


Mandatory Parameters


CROSS_TARGET


  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


  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


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



YP_SYSROOT


  YP_SYSROOT=<path-string> : specify the --sysroot parameter for the
    compiler and linker. The poath cannot have any whitespace in it.
   Example:
      YP_SYSROOT=/opt/SDK/sysroots/aarch64-xilinx-linux
   Added to CFLAGS and CXXFLAGS:
      --sysroot=/opt/SDK/sysroots/aarch64-xilinx-linux




Optional Parameters


EXTRA_CFLAGS


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