summaryrefslogtreecommitdiff
path: root/meta-xilinx/meta-xilinx-standalone
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2020-06-27 08:00:16 +0300
committerAndrew Geissler <geissonator@yahoo.com>2020-06-27 08:12:57 +0300
commit84ad7c5b112283d1ccb14744025a2d2ba986412d (patch)
treece7e2e442492f852445c40f47e506979a7bc0ee3 /meta-xilinx/meta-xilinx-standalone
parent19902a4d12bea3dbebf9974913422c080c199935 (diff)
downloadopenbmc-84ad7c5b112283d1ccb14744025a2d2ba986412d.tar.xz
meta-xilinx: subtree update:757bac706c..bef2bf9b15
Alejandro Enedino Hernandez Samaniego (76): libmali-xlnx: Use update-alternatives to switch between GL backends libmali-xlnx: modify REQUIRED_DISTRO_FEATURES libmali-xlnx: only use and install dependencies that the DISTRO supports libmali-xlnx: fix x11 headers libmali-xlnx: Dont provide KHR headers libmali-xlnx: Change version on gbm.pc to be compatible with mesa libmali-xlnx: modify version on egl.pc for compatibility run-postinsts: Pass the output of the scripts run to kmsg zynqmp-pmu.conf: Upgrade tune to use Microblaze v10.0 zynqmp-pmu.conf: Update to Microblaze v11.0 newlib: export CC_FOR_TARGET as CC gcc-cross: Dont override EXTRA_OECONF unless DISTRO is xilinx-standalone Adds MACHINE.conf containing default tune for Cortex R5 Adds MACHINE.conf containing default tune for Cortex A53 toolchain: Provide specific configuration for cross(-canadian) gcc and binutils Adds MACHINE.conf containing default tune for Cortex A72 xilinx-standalone: switch override and append xilinx-standalone: Add staticdev packages for newlib and libgloss to dependencies xilinx-standalone: Reorganize toolchain configure options toolchain: add cortex-A9 options for gcc and binutils gcc-cross-microblazeel: disable multilib gcc: Separate binutils options gcc: Add multilib-list=aprofile configure option for cortex A9 gcc-runtime: Enable bulding libsdtc++ for baremetal applications gcc-runtime: Set correct overrides now that the build has been fixed in oe-core gcc-xilinx-standalone: Enable multilib builds for baremetal microblaze gcc-microblaze: Remove multilib builds that arent working (m64) meta-xilinx-standalone: Restructure layer properly, gcc and binutils belong on recipes-devtools newlib: Keep version numbers on bbappends meta-xilinx-standalone: Restructure layer properly, newlib belongs to recipes-bsp gcc-runtime: Move gcc-runtime to GCCs directory layer.conf: Include recipe files from a pattern with no directory required Create machines that use SOC_FAMILY Microblaze-pmu: Change overrides to reflect machine name changes from zynqmp-pmu to microblaze-pmu cortexr5: Change overrides to reflect machine name changes from cortexr5 to zynqmp and versal variants cortexa72: To keep up with a standard rename cortexa72 to add its SOC_FAMILY to its name meta-xilinx-bsp: Unify machine confs cortexr5-versal.conf: Include the tune inc file from the correct path cortexr5-zynqmp.conf: Include the tune inc file from the correct path tune-cortexrm: Include PACKAGE_EXTRA_ARCHS to avoid parsing errors esw: first step to move everything into an embeddedsw class pmufw: Install and hence package and strip the pmufw elf file fix license and compatible host for now pmufw: fix filename on elf file and fix task order to get stripped elf file deployed libxil: add flow for a53 using dtg device-tree.bbappend: add appent to support cortexa53 MACHINE device-tree: switch to AUTOREV to keep up with the repo changes for now zynqmp-fsbl: Sync flow with pmufw libxil: fix device tree flags for a53 libxil: Fix DTB and DTG flow to make it more transparent for the user Fix XILINX_RELEASE_VERSION Increase layer priority device-tree: the Flags used from device tree have to be set on the device tree recipe, not in the libxil one esw.bbclass: Fix devtool and externalsrc flow esw.bbclass: Install artifacts from the build directory vs WORKDIR pmufw: Install artifacts from the build directory vs WORKDIR esw.bbclass: Make it possible for packages to use the cmake ncurses gui libxil: Unify flow and get DTB using the device-tree recipe instead of creating it manually SOC_FAMILY: Change overrides Microblaze-pmu: Change overrides to reflect machine name chanches from zynqmp-pmu to microblaze-pmu device-tree: Install psu_init files as well fsbl: avoid using underscore in the directory filename meta-xilinx-standalone: Restructure layer properly, pmufw and fsbl belong on recipes-applications meta-xilinx-standalone: device-tree belongs on recipes-bsp meta-xilinx-standalone: Restructure layer properly, move existing libraries from decoupling to recipes-libraries zynqmp-fsbl: Fix race condition on copy_psu_init device-tree: Fix install directory meta-xilinx-standalone: clean up layer libraries: Add inherit on python3native on libraries that were invoking nativepython3 meta-xilinx: Include templates for local.conf and bblayers.conf esw: fix machines that have been renamed libgloss: Dont install libgloss as libxil since we actually have libxil esw: Switch release version to 2020.1 xilinx-standalone: Add buildhistory to the DISTRO to avoid cooker errors device-tree: Override repo for supported machines system-zcu102: Create heterogeneous machine configuration for ZCU102 evaluation board. Anirudha Sarangi (4): meta-xilinx-standalone: conf: distro: Add new distro for freertos meta-xilinx-standalone: classes: Update CMAKE_SYSTEM_NAME for Freertos meta-xilinx-standalone: recipes-libraries: Add recipe for freertos meta-xilinx-standalone: recipes-applications: freertos-hello-world: Add recipe for freertos hello world Appana Durga Kedareswara rao (82): libxil: Add recipes for libxil and xilstandalone pmufw: recipes for pmufw app generation in decoupled flow Add recipes for xilffs and xilpm libraries Add recipes for building zynqmp fsbl application meta-xilinx-standalone: Add support for PLM and dependent library recipes zynqmp-fsbl: Copy psu_init files to source code meta-xilinx: meta-xilinx-standalone: Update source url path meta-xilinx: meta-xilinx-standalone: comment flto flags by default meta-xilinx-standalone: Using S instead of WORKDIR meta-xilinx-standalone: classes: Add bbclass for building esw examples meta-xilinx-standalone: recipes-drivers: Add recipe for compiling csudma driver examples meta-xilinx-standalone: recipes-drivers: Add recipe for compiling emacps driver examples meta-xilinx-standalone: recipes-drivers: Add recipe for compiling axiethernet driver examples meta-xilinx-standalone: recipes-drivers: Add recipe for compiling axicdma driver examples meta-xilinx-standalone: recipes-drivers: Add recipe for compiling axidma driver examples meta-xilinx-standalone: recipes-drivers: Add recipe for compiling llfifo driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling mcdma driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling zdma driver examples meta-xilinx-standalone: recipes-applications: Add recipe for compiling hello world application meta-xilinx-standalone: classes: Update md5 checksum as per latest license meta-xilinx-standalone: Add support for cortexa72 processor meta-xilinx-standalone: recipes-libraries: xilstandalone: Cleanup the recipe meta-xilinx-standalone: recipes-libraries: libxil: Cleanup the recipe meta-xilinx-standalone: classes: cleanup the class meta-xilinx-standalone: recipes-applications: hello-world: Remove dependency on esw_examples class meta-xilinx-standalone: recipes-libraries: Add recipe for xilmailbox cortexa72: Update cortexa72 machine variable naming meta-xilinx: Add support for cortexr5 processor meta-xilinx-standalone: Add dependencies on python3-dtc-native meta-xilinx-standalone: recipes-libraries: xiltimer: Add task for generating cmake meta-data meta-xilinx-standalone: recipes-libraries: lwip: Add recipe for lwip meta-xilinx-standalone: recipes-applications: lwip-echo-server: Add recipe for compiling lwip echo server application meta-xilinx-standalone: Add support for versal cortexr5 processor meta-xilinx-standalone: recipes-applications: lwip-tcp-perf-client: Add recipe for compiling lwip tcp perf client application meta-xilinx-standalone: recipes-applications: lwip-tcp-perf-server: Add recipe for compiling lwip tcp perf server application meta-xilinx-standalone: recipes-applications: lwip-udp-perf-server: Add recipe for compiling lwip udp perf server application meta-xilinx-standalone: recipes-applications: lwip-udp-perf-client: Add recipe for compiling lwip udp perf client application meta-xilinx-standalone: recipes-applications: freertos-lwip-echo-server: Add recipe for compiling freertos lwip echo server application meta-xilinx-standalone: recipes-applications: freertos-lwip-tcp-perf-client: Add recipe for compiling freertos lwip tcp perf client application meta-xilinx-standalone: recipes-applications: freertos-lwip-tcp-perf-server: Add recipe for compiling freertos lwip tcp perf server application meta-xilinx-standalone: recipes-applications: freertos-lwip-udp-perf-client: Add recipe for compiling freertos lwip udp perf client application meta-xilinx-standalone: recipes-applications: freertos-lwip-udp-perf-server: Add recipe for compiling freertos lwip udp perf server application meta-xilinx-standalone: recipes-libraries: Update depends list for socket mode meta-xilinx-standalone: recipes-libraries: Add recipe for xilpuf meta-xilinx-standalone: recipes-libraries: Fix workarounds meta-xilinx-standalone: recipes-libraries: xilloader: Update depends list meta-xilinx-standalone: recipes-applications: freertos-hello-world: Fix do_deploy elf variable name meta-xilinx-standalone: classes: esw: Remove unneeded DISTRO check meta-xilinx-standalone: recipe-drivers: Add recipe for compiling dmaps driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling usbpsu driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling axivdma driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling emaclite driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling xxvethernet driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling scugic driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling ttcps driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling tmrctr driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling qspipsu driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling ospipsv driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling resetps driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling clockps driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling canfd driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling canps driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling can driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling wdtps driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling rtcpsu driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling gpiops driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling sdps driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling ipipsu driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling nandpsu driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling devcfg driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling mbox driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling mutex driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling uartlite driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling uartps driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling gpio driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling spips driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling qspips driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling xadcps driver examples meta-xilinx-standalone: recipe-drivers: Add recipe for compiling sysmon driver examples device-tree: Install psu_init files as well for zynqmp machines meta-xilinx-standalone: recipes-applications: zynqmp-fsbl: Correct cflags based on the machine type meta-xilinx-standalone: recipes-bsp: device-tree: Install psu_init* files only for standalone configuration Bruce Ashfield (1): linux-xlnx: cleanup and make yocto-kernel-cache available Himanshu Choudhary (8): xrt_git:zocl_git: added package_class for generating rpm zocl_git: added post install script xrt_git: added veral flags and dependencies xrt_git:zocl_git: license and PV update from meta-xilinx-internal xrt,zocl:Update commit id for 2020.1 release xrt_git:zocl_git: updated commitid > CR-1063204 xrt_git:zocl_git: update commitid for 2020.1 release xrt_git:zocl_git: update commitid for 2020.1 release Jaewon Lee (28): Update recipes for 2019.2 release u-boot-zynq-scr: reworking boot.scr recipe to work for zynq and zynqmp u-boot-zynq-scr: Setting sd as default bootmode for versal zynq/zynqmp confs: Adding boot.scr to IMAGE_BOOT_FILES bootgen_1.0.bb: Adding initial bootgen recipe to build bootgen flashstrip utility: Build and ship flash strip utility needed for qemu machine-xilinx-default.inc: Adding required dependencies to image_wic **TEMPORARY**: Removing preferred provider overrides for mali backend meson: Adding patch to add microblaze as supported CPU glibc-locale_%.bbappend: Fix directory installed but not shipped issue Revert "**TEMPORARY**: Removing preferred provider overrides for mali backend" arm-trusted-firmware.inc: Changing generic DEBUG to DEBUG_ATF gcc-cross-canadian_%.bbappend:temporary hack to build gcc cross canadian gcc-source: Adding microblaze patch to fix compiler crash with -freg-struct-return newlib: Adding xilinx specific patches on top of newlib/libgloss 3.1.0 cortexa*.conf: Change arch-armv8.inc to arch-armv8a.inc gdb: Switching microblaze to use upstream gdb version 8.3.1 microblaze gdb/binutils: Adding necessary patches for microblaze Using tune-cortexa72-cortexa53.inc for versal and zynqmp tunes qemu-system-aarch64-multiarch: Adding comment for future fix xilinx-standalone.conf: Adding qemu to TOOLCHAIN_HOST_TASK arm-trusted-firmware.inc: installing elf with standard name u-boot-xlnx:Updating defconfig for all zynq machines Correcting ':' placement for appending file paths Add older version of OpenCV 3.4.3 opencv_3.4.3.bb: Removing tiny-dnn from SRC_URI versal confs: Upping RAM in runqemu command to 8G for versal boards versal confs: cleaning up unnecessary file loading in runqemu command Jean-Francois Dagenais (3): libmali-xlnx: clean and fix FILESXTRAPATHS libmali-xlnx: make version recognizable kernel-module-mali: add patch to check dma_map_page error Jeegar Patel (1): kernel-module-vcu.bb : Autoload dmaproxy module on boot Madhurkiran Harikrishnan (14): libmali-xlnx: MALI will not provide wayland-egl libmali-xlnx.bb: ABIs are made consistent for all backends libmali-xlnx: Squash all monolithic library name into a variable libmali-xlnx: Upgrade the userspace driver to r9p0 kernel-module-mali: Upgrade the kernel space driver to r9p0 weston: Migrate ZynqMP specific patches for weston to meta-xilinx weston: Remove opaque substitute for ARGB8888 as ZynqMP DP does not support kernel-module-mali: Make the driver compatible with kernel 5.4 Revert "libmali-xlnx: Dont provide KHR headers" mesa: Do not provide KHR headers cairo: For ZynqMP enable glesv2 packageconfig libglu: Add build time dependency on glesv2 for zynqmp xf86-video-armsoc: Bypass the exa layer to free the root pixmap libmali: Fetch mali binaries from rel-v2020.1 branch Manjukumar Matha (17): libmali-xlnx: upgrade MALI recipe for 2019.2 xrt_git.bb: Fix xrt recipe for externalsrc zocl_git.bb: Update the S path for zocl kernel-module-hdmi_git.bb: New Yocto recipe for Xilinx HDMI drivers machine-xilinx-default.inc: Add qemu-xilinx-helper-native as preferred provider zynq-generic.conf: Add qemu wiring to generic conf meta-xilinx-pynq: Add layer to support PYNQ image-types-xilinx-qemu.bbclass: Add sector size as 512K ultra96-zynqmp.conf: Add support for Ultra96 evaluation board linux-firmware_git.bbappend: Add hook for wl18xx and bts file vc-p-a2197-00-versal.conf:Add versal Tenzing +SE1 board configuration kc705-microblaze: Update u-boot patch for kc705 layer.conf: Update XILINX_RELEASE_VERSION to v2020.1 libgpg-error: Add microblaze platform specific gpg-error.h file qemu-xilinx-native: Enable packageconfig option for libgcrypt qemu-xilinx.inc: Remove stale packageconfig options qemu-xilinx.inc: Configure qemu-xilinx with gcrypt Mark Hatle (82): binutils/gcc: Refactor the oeconf Revert "binutils/gcc: Refactor the oeconf" gcc-runtime: Make the baremetal changes specific to class-target binutils/gcc: Refactor the oeconf gcc: Remove cortexa53 errata fixes binutils: Merge latest binutils work Revert "gcc-microblaze: Remove multilib builds that arent working (m64)" gcc-cross-canadian: Fix issue being unable to find stdio.h Enable multilib baremetal toolchains gcc-runtime: Fix C++ multilib headers Limit multilib toolchains to symlinks to the main toolchain Create new baremetal toolchain machines Fix arm cortex r/m profiles microblaze-tc: Minor update and corrections Adjust the microblaze standalone toolchain to match vitis expectations. newlib: Adjust configuration for standalone to allow BSP library qemu-xilinx: Point to master branch by default distro/xilinx-standalone: Make LTO optional distr/xilinx-standalone: Switch default optimization from ESW to Distro cortex-r5: Add cortexr5f configuration xilinx-standalone: When building for cortexr5, add -DARMR5 for CCARGS newlib: Move microblaze support newlib: Cleanup and merge the two newlib bbappends into a single append python3-dtc: Add python3 dtc module Ensure that bbappends do not affect task hashes xlnx-compatible-os.bbclass: Class to allow recipes to list OS compatibility Remove hardcoded XILINX_RELEASE_VERSION in recipes meta-xilinx-standalone: Add dependencies on python3-dtc meta-xilinx-standalone/device-tree: remove duplicate internal references lopper: Add lopper utility xilinx-standalone: sync distros xilinx-standalone.inc: Replace qemu dependency with mingw32 specific recipe lopper: Add runtime dependency of python3-dtc cortexa53-zynqmp/cortexa72-versal: Fix cortex based BSPs README.md: revise README.md based README.md: Add information about the new embeddedsw support microblaze_dtb.py: Convert a dtb to one or more microblaze TUNE_FEATURES linux-xlnx: Use new default defconfigs meta-xilinx-bsp: Rename soc configuration masquerading as a tune file meta-xilinx-bsp: Remove default values machine-xilinx-overrides: Make this generic meta-xilinx-bsp: Update recipes to use SOC_FAMILY_ARCH and SOC_VARIANT_ARCH meta-xilinx-bsp: rename machine-xilinx-override to xilinx-soc-family.inc meta-xilinx-standalone: Move soc overrides from meta-xilinx-default meta-xilinx-bsp: Adjust soc to permit multiple CPU/TUNES libmali-xlnx: Remove virtual provides meta-xilinx-bsp: remove redundant PREFERRED_PROVIDER Revert "libmali-xlnx: Remove virtual provides" meta-xilinx-bsp: machine-xilinx-default.inc allow empty WIC_DEPENDS microblaze_dtb.py: Move to scripts subdir zc706-zynq7: Add qemu wiring for zc706 machine qemu-zynq7: Add qemu wiring for zc706 machine meta-xilinx-bsp: cleanup qemu references xilinx-qemu: Move -multiarch extension to the machine-xilinx-qemu *-generic.conf: Add QEMU support to each of the generic BSPs versal-generic: Move from vck190 to vc-p-a2197-00-versal esw.bbclass: Adjust get_xlnx_cmake_process to use both tune and machine Revise COMPATIBLE_MACHINE settings esw.bbclass: Move DTBFILE to a single definition xilinx-standalone.conf: Add workaround for microblaze -Os bug Revert "linux-xlnx: Use new default defconfigs" qemu-xilinx.inc: Move the URL to 'gitsm' and disable compile time submodules esw.bbclass: Only work with xilinx-standalone distro Rename plm_git.bb to plm-standalong_git.bb meta-xilinx-standalone esw.bbclass: Allow SRCREV and SRC_URI to be overwritten esw.bbclass: Change 'or' to 'and' to verify EXTERNALSRC is defined Revert "xlnx-compatible-os.bbclass: Class to allow recipes to list OS compatibility" Define COMPATIBLE_HOST to prevent mix of Linux and Baremetal recipes device-tree.bbappend: Move to COMPATIBLE_HOST machines: Move from SERIAL_CONSOLE (deprecated) to SERIAL_CONSOLES machines: Move from SERIAL_CONSOLE (deprecated) to SERIAL_CONSOLES machines: Allow the user to override SERIAL_CONSOLES machines: Remove default SERIAL_CONSOLES_CHECK machines: Allow user to override SERIAL_CONSOLE microblaze machines: Set LINKER_HASH_STYLE defaults kernel-module-mali: WIP libcma: Fix SRC_URI definition binutils: Microblaze integrate fix from upstream init-ifupdown: Fix BSPs that were setting partial overrides zynq-generic.conf: Remove the qemu overrides, not needed meta-xilinx-standalone gcc: Fix microblaze crtend.o lopper: Fix python3 reference in lopper_sanity.py Min Ma (1): xrt_git.bb: update XRT dependency Mubin Usman Sayyed (3): meta-xilinx-bsp: conf: machine: Add standalone based machine for zynq meta-xilinx-standalone: Add support for zynq meta-xilinx-standalone: classes: esw: Update ESW_CFLAGS with spec file Mukund PVVN (3): zcu1275-zynqmp.conf: Rename zc1275 to zcu1275 zcu1285-zynqmp.conf: Update UBOOT_MACHINE v350-versal.conf:Add versal board configuration Peter Ogden (1): python3-pynq.bb: Update PYNQ to 2.5.1 Sai Hari Chandana Kalluri (54): u-boot-xlnx_2019.2.bb: Rename zc1275 to zcu1275 board name ultra96-zynqmp.conf: Include mipi as MACHINE_FEATURE linux-xlnx.inc: Add MIPI kernel configuration for Ultra96 pynq-ultra96-*: Add Ultra96 specific pynq example demo: vck-sc-zynqmp: Machine configuration for vck190 system controller v350-versal.conf: Enforce system.dtb name when using virtual/dtb vmk180-versal.conf: Add machine configuration for vmk180-versal tune-versal.inc: Set default SOC_VARIANT = s80 arm-trusted-firmware_2019.2.bbappend: Update compilation flag u-boot-xlnx: Add the platform init file for zcu216-zynqmp plm_2019.2.bb: recipe to build plm standalone psm-firmware_2019.2.bb: Create psm-firmware recipe for standalone build versal-mb.conf: Add machine configuration to support standalone build for versal components like plm, psm-firmware vck190-versal.conf: Add deploy dir for psm and plm firmware tune-versal.inc: Rename include file from arch-armv8 to arch-armv8a Move recipes to use _%.bb instead of version qemu-*: Upgrade QEMU version 2.11 -> 4.1.5 Upgrade recipes to 2020.1 libmali-xlnx: Provide single shlib provider for libMali.so.9 "**TEMPORARY**" linux-xlnx.inc: Trim PV variable expansion Revert "Revert "**TEMPORARY**: Removing preferred provider overrides for mali backend"" versal-generic: Add versal-generic machine configuration Revert "**TEMPORARY**: Removing preferred provider overrides for mali backend""" qemu-xilinx*: Enable qemu-xilinx-native as PROVIDER for qemu-native u-boot-zyqn-scr.bb: Update DEVICETREE and KERNEL LOAD ADDRESS for zynqmp machines u-boot-xlnx:Update UBOOT-MACHINE to xilinx_zynqmp_virt_defconfig for all zynqmp machines qemu-xilinx: Enable qemu-xilinx to provide nativesdk-qemu zedboard-zynq7.conf:update u-boot binary name qemu-system-aarch64-multiarch: Update the binpath for qemu targets zcu102-zynqmp.conf: Modify PMU_FIRMWARE_DEPLOY_DIR and PMU_FIRMWARE_IMAGE_NAME Update KERNEL_VERSION to 5.4 zcu102-zynqmp.conf: Pass dtb and dtb load address as QB_OPT args for qemuboot Enable kernel configurations for viruatlization distro feature zc702-zynq7: Add qemu wiring for zc702 machine qemu-xilinx-multiarch-helper-native_1.0.bb: Move multiarch wrapper script to bindir qemuboot-xilinx.bbclass: Remove the subdir added to the qemu target path external-hdf.bbappend: move to meta-xilinx-tools layer xrt: Remove references to PACKAGE_CLASSES from xrt recipes kernel-module-hdmi: Update LICENSE_CHECKSUM for kenrel-module-hdmi xilinx-kmeta: Upstream xen and ocicontainer configs to YP kernel-cache Update commit ids for 2020.1 release arm-trusted-firmware.inc: Update package version Update commit ids for 2020.1 release lopper: Update commit id for 2020.1 release layer.conf: Set layer compat to dunfell & gatesgarth qemu-xilinx-native.inc: Fix the patch file names for dunfell Fix patch file names for dunfell libmali-xlnx: Inherit features_check instead of distro_features_check gcc-9*: Upgrade gcc from 9.2->10.1 libgloss, newlib: Upgrade version from 3.1 -> 3.3 meson_%.bbappend: Remove bbappend from layer qemu-xilinx.inc: Add patch to enable/disbable libudev in qemu configure python3-dtc_1.5.1.bb: Explicitly set the path to run make during configure qemu-devicetrees: Use python3 instead of python u-boot-xlnx.inc: Explicitly set builddir path Sandeep Gundlupet Raju (2): conf/machine/kc705-microbalzeel.conf: Fix U-boot defconfig local.conf.sample: Updating XILINX_VER_MAIN Swagath Gadde (4): u-boot-zynq-scr: Add pxeboot support in u-boot-scr zcu216-zynqmp: Add support for zcu216 board u-boot-zynq-scr:Add initrd label to pxe config zcu208-zynqmp: Add support for zcu208 board Varalaxmi Bingi (4): Update XILINX_RELEASE_VERSION to v2020.1 zcu1285-zynqmp.conf:using common u-boot defconfig u-boot-xlnx.inc:u-boot-xlnx_2020.1.bb: kc705 patch removing kc705 patch Vishal Sagar (3): kernel-module-hdmi_git.bb: Add versal support kernel-module-hdmi: Update for 2020.1 release kernel-module-hdmi: Update commit id and license md5sum for 2020.1 ch vamshi krishna (1): xrt_git.bb: Add icd support for edge platforms Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: I71ace4a7992c023b84c864abd45e634b5e48f751
Diffstat (limited to 'meta-xilinx/meta-xilinx-standalone')
-rw-r--r--meta-xilinx/meta-xilinx-standalone/README.md24
-rw-r--r--meta-xilinx/meta-xilinx-standalone/classes/esw.bbclass107
-rw-r--r--meta-xilinx/meta-xilinx-standalone/classes/esw_examples.bbclass27
-rw-r--r--meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-freertos.conf9
-rw-r--r--meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-standalone-nolto.conf1
-rw-r--r--meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-standalone.conf21
-rw-r--r--meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-standalone.inc47
-rw-r--r--meta-xilinx/meta-xilinx-standalone/conf/layer.conf10
-rw-r--r--meta-xilinx/meta-xilinx-standalone/conf/machine/zynqmp-pmu.conf11
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-hello-world/freertos-hello-world_git.bb33
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-echo-server/freertos-lwip-echo-server_git.bb41
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-tcp-perf-client/freertos-lwip-tcp-perf-client_git.bb41
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-tcp-perf-server/freertos-lwip-tcp-perf-server_git.bb41
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-udp-perf-client/freertos-lwip-udp-perf-client_git.bb41
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-udp-perf-server/freertos-lwip-udp-perf-server_git.bb41
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-applications/hello-world/hello-world_git.bb35
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-echo-server/lwip-echo-server_git.bb41
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-tcp-perf-client/lwip-tcp-perf-client_git.bb41
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-tcp-perf-server/lwip-tcp-perf-server_git.bb41
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-udp-perf-client/lwip-udp-perf-client_git.bb41
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-udp-perf-server/lwip-udp-perf-server_git.bb41
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-applications/pmufw/pmufw_git.bb30
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-applications/zynqmp-fsbl/zynqmp-fsbl_git.bb40
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-bsp/device-tree/device-tree.bbappend28
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-core/meta/gnu-toolchain-canadian.bb25
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-core/meta/meta-toolchain.bbappend3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-core/newlib/libgloss_3.1.0.bbappend13
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-core/newlib/newlib_3.1.0.bbappend21
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-core/packagegroups/packagegroup-cross-canadian.bbappend14
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-core/packagegroups/packagegroup-newlib-standalone-sdk-target.bb13
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-devtools/binutils/binutils-cross-canadian_%.bbappend1
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-devtools/binutils/binutils-cross_%.bbappend1
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-devtools/binutils/binutils-xilinx-standalone.inc19
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-9/additional-microblaze-multilibs.patch84
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-configure-xilinx-standalone.inc7
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-cross-canadian_%.bbappend20
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-cross_%.bbappend6
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-runtime_%.bbappend74
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-source_9.%.bbappend7
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-xilinx-standalone.inc31
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/libgcc_%.bbappend26
-rwxr-xr-xmeta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/mb-convert-head.sh16
-rwxr-xr-xmeta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/mb-convert.sh60
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-devtools/qemu/qemuwrapper-cross_1.0.bbappend1
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/axicdma_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/axidma_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/axiethernet_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/axivdma_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/can_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/canfd_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/canps_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/clockps_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/csudma_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/devcfg_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/dmaps_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/emaclite_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/emacps_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/gpio_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/gpiops_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/ipipsu_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/llfifo_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/mbox_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/mcdma_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/mutex_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/nandpsu_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/ospipsv_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/qspips_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/qspipsu_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/resetps_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/rtcpsu_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/scugic_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/sdps_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/spips_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/sysmon_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/tmrctr_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/ttcps_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/uartlite_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/uartps_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/usbpsu_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/wdtps_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/xadcps_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/xxvethernet_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-drivers/zdma_git.bb3
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-kernel/linux/linux-dummy.bbappend1
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-libraries/freertos10-xilinx_git.bb12
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-libraries/libxil_git.bb27
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-libraries/lwip_git.bb23
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilffs_git.bb10
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilfpga_git.bb7
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilloader_git.bb6
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilmailbox_git.bb6
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilmem_git.bb6
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilpdi_git.bb6
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilplmi_git.bb6
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilpm_git.bb7
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilpuf_git.bb6
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilsecure_git.bb6
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilsem_git.bb6
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilskey_git.bb6
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilstandalone_git.bb12
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-libraries/xiltimer_git.bb12
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross_%.bbappend18
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-standalone/newlib/libgloss_3.0.0.bbappend10
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-standalone/newlib/newlib_3.0.0.bbappend4
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-standalone/plm/plm-standalone_git.bb32
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-standalone/plm/plm_2020.1.bb69
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmware_2020.1.bb (renamed from meta-xilinx/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmware_2019.1.bb)9
-rw-r--r--meta-xilinx/meta-xilinx-standalone/recipes-standalone/psm-firmware/psm-firmware_2020.1.bb69
-rw-r--r--meta-xilinx/meta-xilinx-standalone/scripts/microblaze_dtb.py174
109 files changed, 1871 insertions, 71 deletions
diff --git a/meta-xilinx/meta-xilinx-standalone/README.md b/meta-xilinx/meta-xilinx-standalone/README.md
index c7bdeb6ea..50ac9ad76 100644
--- a/meta-xilinx/meta-xilinx-standalone/README.md
+++ b/meta-xilinx/meta-xilinx-standalone/README.md
@@ -1,21 +1,28 @@
meta-xilinx-standalone
======================
-This layer is meant to augment Yocto/OE functionality to provide a Baremetal/Standalone Toolchain.
+This layer is meant to augment Yocto/OE functionality to provide a
+Baremetal/Standalone Toolchain as well as the foundation for building
+the embeddedsw components that enable non-Linux software required for
+Xilinx based FPGA/SOCs.
+
+Note, the non-Linux software components are still in development and
+this should be considered to be a preview release only. For instance,
+some components may not be buildable, expect APIs to change on various
+parts and pieces.
Maintainers, Mailing list, Patches
==================================
-Please send any patches, pull requests, comments or questions for this layer to
-the [meta-xilinx mailing list](https://lists.yoctoproject.org/listinfo/meta-xilinx):
+Please send any patches, pull requests, comments or questions for this
+layer to the [meta-xilinx mailing list]
+(https://lists.yoctoproject.org/listinfo/meta-xilinx):
meta-xilinx@lists.yoctoproject.org
Maintainers:
- Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
- Manjukumar Harthikote Matha <manjukumar.harthikote-matha@xilinx.com>
Sai Hari Chandana Kalluri <chandana.kalluri@xilinx.com>
Mark Hatle <mark.hatle@xilinx.com>
@@ -37,13 +44,12 @@ Usage
3.- Add this layer to BBLAYERS on conf/bblayers.conf
-4.- Add the following to your conf/local.conf to build for the microblaze architecture:
+4.- Add the following to your conf/local.conf to build for the
+microblaze architecture:
DISTRO="xilinx-standalone"
-MACHINE="zynqmp-pmu"
-
-GCCVERSION="7.%"
+MACHINE="microblaze-pmu"
5.- Build a package:
diff --git a/meta-xilinx/meta-xilinx-standalone/classes/esw.bbclass b/meta-xilinx/meta-xilinx-standalone/classes/esw.bbclass
new file mode 100644
index 000000000..c50014917
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/classes/esw.bbclass
@@ -0,0 +1,107 @@
+inherit pkgconfig cmake
+
+LICENSE = "Proprietary"
+LICFILENAME = "license.txt"
+LIC_FILES_CHKSUM = "file://${S}/${LICFILENAME};md5=39ab6ab638f4d1836ba994ec6852de94"
+
+# We should move to an actual SRCREV eventually
+include conf/xilinx/esw-srcrev.inc
+
+EMBEDDEDSW_SRCREV ?= "${AUTOREV}"
+SRCREV = "${EMBEDDEDSW_SRCREV}"
+PV = "${XILINX_RELEASE_VERSION}+git${SRCPV}"
+EMBEDDEDSW_REPO ?= "git://github.com/xilinx/embeddedsw.git;protocol=https"
+EMBEDDEDSW_BRANCH ?= "master"
+SRC_URI = "${EMBEDDEDSW_REPO};branch=${EMBEDDEDSW_BRANCH}"
+
+SRCREV_FORMAT = "src_decouple"
+
+S = "${WORKDIR}/git/"
+B = "${WORKDIR}/build/"
+OECMAKE_SOURCEPATH = "${S}/${ESW_COMPONENT_SRC}"
+
+SPECFILE_PATH_arm = "${S}/scripts/specs/arm/Xilinx.spec"
+SPECFILE_PATH_aarch64 = "${S}/scripts/specs/arm/Xilinx.spec"
+SPECFILE_PATH_microblaze = "${S}/scripts/specs/microblaze/Xilinx.spec"
+
+ESW_CFLAGS += "-specs=${SPECFILE_PATH}"
+
+inherit ccmake
+
+COMPATIBLE_HOST = ".*-elf"
+COMPATIBLE_HOST_arm = "[^-]*-[^-]*-eabi"
+
+DTBFILE ?= "${RECIPE_SYSROOT}/boot/devicetree/system-top.dtb"
+
+def get_xlnx_cmake_machine(fam, d):
+ cmake_machine = fam
+ if (fam == 'zynqmp'):
+ cmake_machine = 'ZynqMP'
+ elif (fam == 'versal'):
+ cmake_machine = 'Versal'
+ elif (fam == 'zynq'):
+ cmake_machine = 'Zynq'
+ return cmake_machine
+
+def get_xlnx_cmake_processor(tune, machine, d):
+ cmake_processor = tune
+ if tune.startswith('microblaze'):
+ if (machine == 'microblaze-pmu'):
+ cmake_processor = 'pmu_microblaze'
+ elif (machine == 'microblaze-plm'):
+ cmake_processor = 'plm_microblaze'
+ else:
+ cmake_processor = 'microblaze'
+ elif (tune in [ 'cortexr5', 'cortexr5f' ]):
+ cmake_processor = 'cortexr5'
+ elif tune.startswith('cortexa9'):
+ cmake_processor = 'cortexa9'
+ elif (tune in [ 'cortexa53', 'cortexa72-cortexa53' ]):
+ cmake_processor = 'cortexa53'
+ elif tune == 'cortexa72':
+ cmake_processor = 'cortexa72'
+ return cmake_processor
+
+XLNX_CMAKE_MACHINE = "${@get_xlnx_cmake_machine(d.getVar('SOC_FAMILY'), d)}"
+XLNX_CMAKE_PROCESSOR = "${@get_xlnx_cmake_processor(d.getVar('DEFAULTTUNE'), d.getVar('MACHINE'), d)}"
+XLNX_CMAKE_SYSTEM_NAME ?= "Generic"
+
+cmake_do_generate_toolchain_file_append() {
+ cat >> ${WORKDIR}/toolchain.cmake <<EOF
+ include(CMakeForceCompiler)
+ CMAKE_FORCE_C_COMPILER("${OECMAKE_C_COMPILER}" GNU)
+ CMAKE_FORCE_CXX_COMPILER("${OECMAKE_CXX_COMPILER}" GNU)
+ set( CMAKE_SYSTEM_PROCESSOR "${XLNX_CMAKE_PROCESSOR}" )
+ set( CMAKE_MACHINE "${XLNX_CMAKE_MACHINE}" )
+ # Will need this in the future to make cmake understand esw variables
+ # set( CMAKE_SYSTEM_NAME `echo elf | sed -e 's/^./\u&/' -e 's/^\(Linux\).*/\1/'` )
+ set( CMAKE_SYSTEM_NAME "${XLNX_CMAKE_SYSTEM_NAME}" )
+EOF
+}
+
+do_install() {
+ install -d ${D}${libdir}
+ install -d ${D}${includedir}
+ install -m 0755 ${B}/${ESW_COMPONENT_NAME} ${D}${libdir}
+ install -m 0644 ${B}/include/*.h ${D}${includedir}
+}
+
+CFLAGS_append = " ${ESW_CFLAGS}"
+
+# We need to find the license file, which vaires depending on the component
+# recurse a maximum of x times, could be fancier but it gets complicated since
+# we dont know for certain we are running devtool or just externalsrc
+python(){
+ import os.path
+ if bb.data.inherits_class('externalsrc', d) and d.getVar('EXTERNALSRC'):
+ externalsrc = d.getVar('EXTERNALSRC')
+ lic_file = d.getVar('LIC_FILES_CHKSUM', False)
+ licpath=externalsrc
+ for i in range(5):
+ if os.path.isfile(licpath + '/' + d.getVar('LICFILENAME',True)):
+ lic_file = lic_file.replace('${S}',licpath)
+ d.setVar('LIC_FILES_CHKSUM', lic_file)
+ return
+ licpath=os.path.dirname(licpath)
+ bb.error("Couldn't find license file: %s, within directory %s or his parent directories" % (d.getVar('LICFILENAME',True), externalsrc))
+}
diff --git a/meta-xilinx/meta-xilinx-standalone/classes/esw_examples.bbclass b/meta-xilinx/meta-xilinx-standalone/classes/esw_examples.bbclass
new file mode 100644
index 000000000..391f388e4
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/classes/esw_examples.bbclass
@@ -0,0 +1,27 @@
+inherit esw deploy python3native
+
+DEPENDS += "dtc-native python3-dtc-native python3-pyyaml-native xilstandalone libxil xiltimer device-tree"
+
+do_configure_prepend() {
+ cd ${S}
+ nativepython3 ${S}/scripts/linker_gen.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+
+do_generate_eglist () {
+ cd ${S}
+ nativepython3 ${S}/scripts/example.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+addtask generate_eglist before do_configure after do_prepare_recipe_sysroot
+do_prepare_recipe_sysroot[rdeptask] = "do_unpack"
+
+do_install() {
+ install -d ${D}/${base_libdir}/firmware
+ install -m 0755 ${B}/*.elf ${D}/${base_libdir}/firmware
+}
+
+do_deploy() {
+ install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/*.elf ${DEPLOYDIR}/
+}
+addtask deploy before do_build after do_package
+
+FILES_${PN} = "${base_libdir}/firmware/*.elf"
diff --git a/meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-freertos.conf b/meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-freertos.conf
new file mode 100644
index 000000000..cba5fd904
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-freertos.conf
@@ -0,0 +1,9 @@
+require conf/distro/xilinx-standalone.inc
+
+DISTRO_NAME_append = " (freertos)"
+
+XLNX_CMAKE_SYSTEM_NAME = "FreeRTOS"
+
+# We need to pass FREERTOS_BSP compliler flag it is consumed
+# esw components.
+ESW_CFLAGS += " -DFREERTOS_BSP"
diff --git a/meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-standalone-nolto.conf b/meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-standalone-nolto.conf
new file mode 100644
index 000000000..315f555cb
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-standalone-nolto.conf
@@ -0,0 +1 @@
+require conf/distro/xilinx-standalone.inc
diff --git a/meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-standalone.conf b/meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-standalone.conf
index 7cd23ccdb..8f53e99b3 100644
--- a/meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-standalone.conf
+++ b/meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-standalone.conf
@@ -1,13 +1,14 @@
-DISTRO = "xilinx-standalone"
-DISTRO_NAME = "Xilinx Standalone Distro"
-DISTRO_VERSION = "1.0"
-TARGET_VENDOR = "-xilinx"
+require conf/distro/xilinx-standalone.inc
-TCLIBC = "newlib"
-TCLIBCAPPEND =""
+DISTRO_NAME_append = " (lto)"
-# Change SDK name
-SDK_VERSION = "xilinx-standalone"
+# By default we want to optimize for size.
+FULL_OPTIMIZATION = "-Os -pipe ${DEBUG_FLAGS}"
+
+# Workaround for microblaze -Os bug
+FULL_OPTIMIZATION_microblaze = "-O2 -pipe ${DEBUG_FLAGS}"
+
+# We also need to use Link Time Optimization for many items, make this the
+# default.
+ESW_CFLAGS += " -flto -ffat-lto-objects"
-require conf/distro/include/yocto-uninative.inc
-INHERIT += "uninative"
diff --git a/meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-standalone.inc b/meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-standalone.inc
new file mode 100644
index 000000000..5c8ae67a1
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/conf/distro/xilinx-standalone.inc
@@ -0,0 +1,47 @@
+DISTRO_NAME = "Xilinx Standalone Distro"
+DISTRO_VERSION = "1.0"
+TARGET_VENDOR = "-xilinx"
+
+# Make sure any users get the xilinx-standalone distro override
+DISTROOVERRIDES_prepend = "${@'xilinx-standalone:' if d.getVar('DISTRO') != "xilinx-standalone" else ''}"
+
+TCLIBC = "newlib"
+TCLIBCAPPEND =""
+
+# Change SDK name
+SDK_VERSION = "xilinx-standalone"
+
+require conf/distro/include/yocto-uninative.inc
+INHERIT += "uninative"
+
+# Hold this until it gets merged in core, we need libc.a and libgloss.a for cross-canadian
+LIBC_DEPENDENCIES_append = " newlib-staticdev libgloss-staticdev"
+
+ESW_CFLAGS ?= ""
+
+INHERIT += "buildhistory"
+
+# Cortex R5 requires an additional cflag to be passed for compatibility with the embeddedsw
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'cortexr5', ' -DARMR5', '', d)}"
+
+# Make sure all regular recipes are excluded from compatibility
+# Avoid using this for native, nativesdk or cross recipes
+COMPATOS = ""
+# Set the regex for target recipes only, follow TARGET_OS default
+COMPATOS_class-target = ".*-linux${LIBCEXTENSION}${ABIEXTENSION}"
+COMPATIBLE_HOST ?= "${COMPATOS}"
+
+# Clear defaults
+DISTRO_FEATURES_BACKFILL_xilinx-standalone = ""
+VIRTUAL-RUNTIME_init_manager_xilinx-standalone = ""
+
+PREFERRED_PROVIDER_virtual/kernel = "linux-dummy"
+
+# Hold this until it gets merged in core, we need libc.a and libgloss.a for cross-canadian
+LIBC_DEPENDENCIES_append = " newlib-staticdev libgloss-staticdev"
+
+# No cached configsite files
+TOOLCHAIN_NEED_CONFIGSITE_CACHE = ""
+
+# Workaround for pulling in nativesdk-mingw-w64-winpthreads
+TOOLCHAIN_HOST_TASK_append_sdkmingw32 = " nativesdk-mingw-w64-winpthreads"
diff --git a/meta-xilinx/meta-xilinx-standalone/conf/layer.conf b/meta-xilinx/meta-xilinx-standalone/conf/layer.conf
index 16bfb74ae..223059a95 100644
--- a/meta-xilinx/meta-xilinx-standalone/conf/layer.conf
+++ b/meta-xilinx/meta-xilinx-standalone/conf/layer.conf
@@ -3,12 +3,16 @@ BBPATH .= ":${LAYERDIR}"
# We have recipes-* directories, add to BBFILES
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
- ${LAYERDIR}/recipes-*/*/*.bbappend"
+ ${LAYERDIR}/recipes-*/*/*.bbappend \
+ ${LAYERDIR}/recipes-*/*.bb \
+ ${LAYERDIR}/recipes-*/*.bbappend \
+ "
BBFILE_COLLECTIONS += "xilinx-standalone"
BBFILE_PATTERN_xilinx-standalone = "^${LAYERDIR}/"
-BBFILE_PRIORITY_xilinx-standalone = "5"
+BBFILE_PRIORITY_xilinx-standalone = "7"
LAYERDEPENDS_xilinx-standalone = "core xilinx"
-LAYERSERIES_COMPAT_xilinx-standalone = "warrior"
+LAYERSERIES_COMPAT_xilinx-standalone = "dunfell gatesgarth"
+XILINX_RELEASE_VERSION = "v2020.1"
diff --git a/meta-xilinx/meta-xilinx-standalone/conf/machine/zynqmp-pmu.conf b/meta-xilinx/meta-xilinx-standalone/conf/machine/zynqmp-pmu.conf
deleted file mode 100644
index 2f692db0d..000000000
--- a/meta-xilinx/meta-xilinx-standalone/conf/machine/zynqmp-pmu.conf
+++ /dev/null
@@ -1,11 +0,0 @@
-DEFAULTTUNE ?= "microblaze"
-
-require conf/machine/include/microblaze/arch-microblaze.inc
-
-# Endianess, multiplier, barrel shift, pattern compare, floating point double or single, are the possibilities
-AVAILTUNES += "microblaze"
-TUNE_FEATURES_tune-microblaze = "microblaze v9.2 barrel-shift pattern-compare"
-PACKAGE_EXTRA_ARCHS_tune-microblaze = "${TUNE_PKGARCH}"
-SOC_FAMILY = "zynqmp"
-
-TARGET_LINK_HASH_STYLE_microblaze = ""
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-hello-world/freertos-hello-world_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-hello-world/freertos-hello-world_git.bb
new file mode 100644
index 000000000..9b5bb1103
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-hello-world/freertos-hello-world_git.bb
@@ -0,0 +1,33 @@
+inherit esw deploy
+
+ESW_COMPONENT_SRC = "/lib/sw_apps/freertos_hello_world/src/"
+
+DEPENDS += "dtc-native python3-dtc-native libxil xilstandalone xiltimer freertos10-xilinx device-tree"
+
+do_configure_prepend() {
+ cd ${S}
+ nativepython3 ${S}/scripts/linker_gen.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+
+do_install() {
+ install -d ${D}/${base_libdir}/firmware
+ # Note that we have to make the ELF executable for it to be stripped
+ install -m 0755 ${B}/freertos_hello_world* ${D}/${base_libdir}/firmware
+}
+
+FREERTOS_HELLO_WORLD_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+FREERTOS_HELLO_WORLD_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+
+ # We need to deploy the stripped elf, hence why not doing it from ${D}
+ install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/freertos_hello_world.elf ${DEPLOYDIR}/${FREERTOS_HELLO_WORLD_BASE_NAME}.elf
+ ln -sf ${FREERTOS_HELLO_WORLD_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${WORKDIR}/package/${base_libdir}/firmware/freertos_hello_world.elf ${WORKDIR}/package/${base_libdir}/firmware/freertos_hello_world.bin
+ install -m 0644 ${WORKDIR}/package/${base_libdir}/firmware/freertos_hello_world.bin ${DEPLOYDIR}/${FREERTOS_HELLO_WORLD_BASE_NAME}.bin
+ ln -sf ${FREERTOS_HELLO_WORLD_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_package
+
+FILES_${PN} = "${base_libdir}/firmware/freertos_hello_world*"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-echo-server/freertos-lwip-echo-server_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-echo-server/freertos-lwip-echo-server_git.bb
new file mode 100644
index 000000000..ebfc85aaa
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-echo-server/freertos-lwip-echo-server_git.bb
@@ -0,0 +1,41 @@
+inherit esw deploy python3native
+
+ESW_COMPONENT_SRC = "/lib/sw_apps/freertos_lwip_echo_server/src/"
+
+DEPENDS += "dtc-native python3-dtc-native libxil lwip xiltimer device-tree python3-pyyaml-native freertos10-xilinx"
+
+do_configure_prepend() {
+ cd ${S}
+ nativepython3 ${S}/scripts/linker_gen.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+
+do_generate_app_data() {
+ # This script should also not rely on relative paths and such
+ cd ${S}
+ nativepython3 ${S}/scripts/lib_parser.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+addtask do_generate_app_data before do_configure after do_prepare_recipe_sysroot
+do_prepare_recipe_sysroot[rdeptask] = "do_unpack"
+
+do_install() {
+ install -d ${D}/${base_libdir}/firmware
+ # Note that we have to make the ELF executable for it to be stripped
+ install -m 0755 ${B}/freertos_lwip_echo* ${D}/${base_libdir}/firmware
+}
+
+FREERTOS_LWIP_ECHO_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+FREERTOS_LWIP_ECHO_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+
+ # We need to deploy the stripped elf, hence why not doing it from ${D}
+ install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_echo_server.elf ${DEPLOYDIR}/${FREERTOS_LWIP_ECHO_BASE_NAME}.elf
+ ln -sf ${FREERTOS_LWIP_ECHO_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_echo_server.elf ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_echo_server.bin
+ install -m 0644 ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_echo_server.bin ${DEPLOYDIR}/${FREERTOS_LWIP_ECHO_BASE_NAME}.bin
+ ln -sf ${FREERTOS_LWIP_ECHO_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_package
+
+FILES_${PN} = "${base_libdir}/firmware/freertos_lwip_echo*"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-tcp-perf-client/freertos-lwip-tcp-perf-client_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-tcp-perf-client/freertos-lwip-tcp-perf-client_git.bb
new file mode 100644
index 000000000..eb199d39e
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-tcp-perf-client/freertos-lwip-tcp-perf-client_git.bb
@@ -0,0 +1,41 @@
+inherit esw deploy python3native
+
+ESW_COMPONENT_SRC = "/lib/sw_apps/freertos_lwip_tcp_perf_client/src/"
+
+DEPENDS += "dtc-native python3-dtc-native libxil lwip xiltimer device-tree python3-pyyaml-native freertos10-xilinx"
+
+do_configure_prepend() {
+ cd ${S}
+ nativepython3 ${S}/scripts/linker_gen.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+
+do_generate_app_data() {
+ # This script should also not rely on relative paths and such
+ cd ${S}
+ nativepython3 ${S}/scripts/lib_parser.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+addtask do_generate_app_data before do_configure after do_prepare_recipe_sysroot
+do_prepare_recipe_sysroot[rdeptask] = "do_unpack"
+
+do_install() {
+ install -d ${D}/${base_libdir}/firmware
+ # Note that we have to make the ELF executable for it to be stripped
+ install -m 0755 ${B}/freertos_lwip_tcp_perf_client* ${D}/${base_libdir}/firmware
+}
+
+FREERTOS_LWIP_TCP_PERF_CLIENT_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+FREERTOS_LWIP_TCP_PERF_CLIENT_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+
+ # We need to deploy the stripped elf, hence why not doing it from ${D}
+ install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_tcp_perf_client.elf ${DEPLOYDIR}/${FREERTOS_LWIP_TCP_PERF_CLIENT_BASE_NAME}.elf
+ ln -sf ${FREERTOS_LWIP_TCP_PERF_CLIENT_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_tcp_perf_client.elf ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_tcp_perf_client.bin
+ install -m 0644 ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_tcp_perf_client.bin ${DEPLOYDIR}/${FREERTOS_LWIP_TCP_PERF_CLIENT_BASE_NAME}.bin
+ ln -sf ${FREERTOS_LWIP_TCP_PERF_CLIENT_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_package
+
+FILES_${PN} = "${base_libdir}/firmware/freertos_lwip_tcp_perf_client*"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-tcp-perf-server/freertos-lwip-tcp-perf-server_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-tcp-perf-server/freertos-lwip-tcp-perf-server_git.bb
new file mode 100644
index 000000000..c22825934
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-tcp-perf-server/freertos-lwip-tcp-perf-server_git.bb
@@ -0,0 +1,41 @@
+inherit esw deploy python3native
+
+ESW_COMPONENT_SRC = "/lib/sw_apps/freertos_lwip_tcp_perf_server/src/"
+
+DEPENDS += "dtc-native python3-dtc-native libxil lwip xiltimer device-tree python3-pyyaml-native freertos10-xilinx"
+
+do_configure_prepend() {
+ cd ${S}
+ nativepython3 ${S}/scripts/linker_gen.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+
+do_generate_app_data() {
+ # This script should also not rely on relative paths and such
+ cd ${S}
+ nativepython3 ${S}/scripts/lib_parser.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+addtask do_generate_app_data before do_configure after do_prepare_recipe_sysroot
+do_prepare_recipe_sysroot[rdeptask] = "do_unpack"
+
+do_install() {
+ install -d ${D}/${base_libdir}/firmware
+ # Note that we have to make the ELF executable for it to be stripped
+ install -m 0755 ${B}/freertos_lwip_tcp_perf_server* ${D}/${base_libdir}/firmware
+}
+
+FREERTOS_LWIP_TCP_PERF_SERVER_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+FREERTOS_LWIP_TCP_PERF_SERVER_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+
+ # We need to deploy the stripped elf, hence why not doing it from ${D}
+ install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_tcp_perf_server.elf ${DEPLOYDIR}/${FREERTOS_LWIP_TCP_PERF_SERVER_BASE_NAME}.elf
+ ln -sf ${FREERTOS_LWIP_TCP_PERF_SERVER_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_tcp_perf_server.elf ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_tcp_perf_server.bin
+ install -m 0644 ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_tcp_perf_server.bin ${DEPLOYDIR}/${FREERTOS_LWIP_TCP_PERF_SERVER_BASE_NAME}.bin
+ ln -sf ${FREERTOS_LWIP_TCP_PERF_SERVER_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_package
+
+FILES_${PN} = "${base_libdir}/firmware/freertos_lwip_tcp_perf_server*"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-udp-perf-client/freertos-lwip-udp-perf-client_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-udp-perf-client/freertos-lwip-udp-perf-client_git.bb
new file mode 100644
index 000000000..ccf8f09e4
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-udp-perf-client/freertos-lwip-udp-perf-client_git.bb
@@ -0,0 +1,41 @@
+inherit esw deploy python3native
+
+ESW_COMPONENT_SRC = "/lib/sw_apps/freertos_lwip_udp_perf_client/src/"
+
+DEPENDS += "dtc-native python3-dtc-native libxil lwip xiltimer device-tree python3-pyyaml-native freertos10-xilinx"
+
+do_configure_prepend() {
+ cd ${S}
+ nativepython3 ${S}/scripts/linker_gen.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+
+do_generate_app_data() {
+ # This script should also not rely on relative paths and such
+ cd ${S}
+ nativepython3 ${S}/scripts/lib_parser.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+addtask do_generate_app_data before do_configure after do_prepare_recipe_sysroot
+do_prepare_recipe_sysroot[rdeptask] = "do_unpack"
+
+do_install() {
+ install -d ${D}/${base_libdir}/firmware
+ # Note that we have to make the ELF executable for it to be stripped
+ install -m 0755 ${B}/freertos_lwip_udp_perf_client* ${D}/${base_libdir}/firmware
+}
+
+FREERTOS_LWIP_TCP_PERF_CLIENT_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+FREERTOS_LWIP_TCP_PERF_CLIENT_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+
+ # We need to deploy the stripped elf, hence why not doing it from ${D}
+ install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_udp_perf_client.elf ${DEPLOYDIR}/${FREERTOS_LWIP_TCP_PERF_CLIENT_BASE_NAME}.elf
+ ln -sf ${FREERTOS_LWIP_TCP_PERF_CLIENT_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_udp_perf_client.elf ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_udp_perf_client.bin
+ install -m 0644 ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_udp_perf_client.bin ${DEPLOYDIR}/${FREERTOS_LWIP_TCP_PERF_CLIENT_BASE_NAME}.bin
+ ln -sf ${FREERTOS_LWIP_TCP_PERF_CLIENT_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_package
+
+FILES_${PN} = "${base_libdir}/firmware/freertos_lwip_udp_perf_client*"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-udp-perf-server/freertos-lwip-udp-perf-server_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-udp-perf-server/freertos-lwip-udp-perf-server_git.bb
new file mode 100644
index 000000000..f2c9eaed1
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-applications/freertos-lwip-udp-perf-server/freertos-lwip-udp-perf-server_git.bb
@@ -0,0 +1,41 @@
+inherit esw deploy python3native
+
+ESW_COMPONENT_SRC = "/lib/sw_apps/freertos_lwip_udp_perf_server/src/"
+
+DEPENDS += "dtc-native python3-dtc-native libxil lwip xiltimer device-tree python3-pyyaml-native freertos10-xilinx"
+
+do_configure_prepend() {
+ cd ${S}
+ nativepython3 ${S}/scripts/linker_gen.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+
+do_generate_app_data() {
+ # This script should also not rely on relative paths and such
+ cd ${S}
+ nativepython3 ${S}/scripts/lib_parser.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+addtask do_generate_app_data before do_configure after do_prepare_recipe_sysroot
+do_prepare_recipe_sysroot[rdeptask] = "do_unpack"
+
+do_install() {
+ install -d ${D}/${base_libdir}/firmware
+ # Note that we have to make the ELF executable for it to be stripped
+ install -m 0755 ${B}/freertos_lwip_udp_perf_server* ${D}/${base_libdir}/firmware
+}
+
+FREERTOS_LWIP_UDP_PERF_SERVER_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+FREERTOS_LWIP_UDP_PERF_SERVER_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+
+ # We need to deploy the stripped elf, hence why not doing it from ${D}
+ install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_udp_perf_server.elf ${DEPLOYDIR}/${FREERTOS_LWIP_UDP_PERF_SERVER_BASE_NAME}.elf
+ ln -sf ${FREERTOS_LWIP_UDP_PERF_SERVER_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_udp_perf_server.elf ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_udp_perf_server.bin
+ install -m 0644 ${WORKDIR}/package/${base_libdir}/firmware/freertos_lwip_udp_perf_server.bin ${DEPLOYDIR}/${FREERTOS_LWIP_UDP_PERF_SERVER_BASE_NAME}.bin
+ ln -sf ${FREERTOS_LWIP_UDP_PERF_SERVER_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_package
+
+FILES_${PN} = "${base_libdir}/firmware/freertos_lwip_udp_perf_server*"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-applications/hello-world/hello-world_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-applications/hello-world/hello-world_git.bb
new file mode 100644
index 000000000..c67fb5f5f
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-applications/hello-world/hello-world_git.bb
@@ -0,0 +1,35 @@
+inherit esw deploy
+
+ESW_COMPONENT_SRC = "/lib/sw_apps/hello_world/src/"
+
+DEPENDS += "dtc-native python3-dtc-native libxil xiltimer device-tree"
+
+inherit python3native
+
+do_configure_prepend() {
+ cd ${S}
+ nativepython3 ${S}/scripts/linker_gen.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+
+do_install() {
+ install -d ${D}/${base_libdir}/firmware
+ # Note that we have to make the ELF executable for it to be stripped
+ install -m 0755 ${B}/hello_world* ${D}/${base_libdir}/firmware
+}
+
+HELLO_WORLD_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+HELLO_WORLD_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+
+ # We need to deploy the stripped elf, hence why not doing it from ${D}
+ install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/hello_world.elf ${DEPLOYDIR}/${HELLO_WORLD_BASE_NAME}.elf
+ ln -sf ${HELLO_WORLD_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${WORKDIR}/package/${base_libdir}/firmware/hello_world.elf ${WORKDIR}/package/${base_libdir}/firmware/hello_world.bin
+ install -m 0644 ${WORKDIR}/package/${base_libdir}/firmware/hello_world.bin ${DEPLOYDIR}/${HELLO_WORLD_BASE_NAME}.bin
+ ln -sf ${HELLO_WORLD_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_package
+
+FILES_${PN} = "${base_libdir}/firmware/hello_world*"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-echo-server/lwip-echo-server_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-echo-server/lwip-echo-server_git.bb
new file mode 100644
index 000000000..e0d6f13cf
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-echo-server/lwip-echo-server_git.bb
@@ -0,0 +1,41 @@
+inherit esw deploy python3native
+
+ESW_COMPONENT_SRC = "/lib/sw_apps/lwip_echo_server/src/"
+
+DEPENDS += "dtc-native python3-dtc-native libxil lwip xiltimer device-tree python3-pyyaml-native"
+
+do_configure_prepend() {
+ cd ${S}
+ nativepython3 ${S}/scripts/linker_gen.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+
+do_generate_app_data() {
+ # This script should also not rely on relative paths and such
+ cd ${S}
+ nativepython3 ${S}/scripts/lib_parser.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+addtask do_generate_app_data before do_configure after do_prepare_recipe_sysroot
+do_prepare_recipe_sysroot[rdeptask] = "do_unpack"
+
+do_install() {
+ install -d ${D}/${base_libdir}/firmware
+ # Note that we have to make the ELF executable for it to be stripped
+ install -m 0755 ${B}/lwip_echo* ${D}/${base_libdir}/firmware
+}
+
+LWIP_ECHO_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+LWIP_ECHO_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+
+ # We need to deploy the stripped elf, hence why not doing it from ${D}
+ install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/lwip_echo_server.elf ${DEPLOYDIR}/${LWIP_ECHO_BASE_NAME}.elf
+ ln -sf ${LWIP_ECHO_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${WORKDIR}/package/${base_libdir}/firmware/lwip_echo_server.elf ${WORKDIR}/package/${base_libdir}/firmware/lwip_echo.bin
+ install -m 0644 ${WORKDIR}/package/${base_libdir}/firmware/lwip_echo.bin ${DEPLOYDIR}/${LWIP_ECHO_BASE_NAME}.bin
+ ln -sf ${LWIP_ECHO_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_package
+
+FILES_${PN} = "${base_libdir}/firmware/lwip_echo*"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-tcp-perf-client/lwip-tcp-perf-client_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-tcp-perf-client/lwip-tcp-perf-client_git.bb
new file mode 100644
index 000000000..6f0c9b4a2
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-tcp-perf-client/lwip-tcp-perf-client_git.bb
@@ -0,0 +1,41 @@
+inherit esw deploy python3native
+
+ESW_COMPONENT_SRC = "/lib/sw_apps/lwip_tcp_perf_client/src/"
+
+DEPENDS += "dtc-native python3-dtc-native libxil lwip xiltimer device-tree python3-pyyaml-native"
+
+do_configure_prepend() {
+ cd ${S}
+ nativepython3 ${S}/scripts/linker_gen.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+
+do_generate_app_data() {
+ # This script should also not rely on relative paths and such
+ cd ${S}
+ nativepython3 ${S}/scripts/lib_parser.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+addtask do_generate_app_data before do_configure after do_prepare_recipe_sysroot
+do_prepare_recipe_sysroot[rdeptask] = "do_unpack"
+
+do_install() {
+ install -d ${D}/${base_libdir}/firmware
+ # Note that we have to make the ELF executable for it to be stripped
+ install -m 0755 ${B}/lwip_tcp_perf_client* ${D}/${base_libdir}/firmware
+}
+
+LWIP_TCP_PERF_CLIENT_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+LWIP_TCP_PERF_CLIENT_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+
+ # We need to deploy the stripped elf, hence why not doing it from ${D}
+ install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/lwip_tcp_perf_client.elf ${DEPLOYDIR}/${LWIP_TCP_PERF_CLIENT_BASE_NAME}.elf
+ ln -sf ${LWIP_TCP_PERF_CLIENT_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${WORKDIR}/package/${base_libdir}/firmware/lwip_tcp_perf_client.elf ${WORKDIR}/package/${base_libdir}/firmware/lwip_tcp_perf_client.bin
+ install -m 0644 ${WORKDIR}/package/${base_libdir}/firmware/lwip_tcp_perf_client.bin ${DEPLOYDIR}/${LWIP_TCP_PERF_CLIENT_BASE_NAME}.bin
+ ln -sf ${LWIP_TCP_PERF_CLIENT_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_package
+
+FILES_${PN} = "${base_libdir}/firmware/lwip_tcp_perf_client*"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-tcp-perf-server/lwip-tcp-perf-server_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-tcp-perf-server/lwip-tcp-perf-server_git.bb
new file mode 100644
index 000000000..d9f990c4c
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-tcp-perf-server/lwip-tcp-perf-server_git.bb
@@ -0,0 +1,41 @@
+inherit esw deploy python3native
+
+ESW_COMPONENT_SRC = "/lib/sw_apps/lwip_tcp_perf_server/src/"
+
+DEPENDS += "dtc-native python3-dtc-native libxil lwip xiltimer device-tree python3-pyyaml-native"
+
+do_configure_prepend() {
+ cd ${S}
+ nativepython3 ${S}/scripts/linker_gen.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+
+do_generate_app_data() {
+ # This script should also not rely on relative paths and such
+ cd ${S}
+ nativepython3 ${S}/scripts/lib_parser.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+addtask do_generate_app_data before do_configure after do_prepare_recipe_sysroot
+do_prepare_recipe_sysroot[rdeptask] = "do_unpack"
+
+do_install() {
+ install -d ${D}/${base_libdir}/firmware
+ # Note that we have to make the ELF executable for it to be stripped
+ install -m 0755 ${B}/lwip_tcp_perf_server* ${D}/${base_libdir}/firmware
+}
+
+LWIP_TCP_PERF_SERVER_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+LWIP_TCP_PERF_SERVER_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+
+ # We need to deploy the stripped elf, hence why not doing it from ${D}
+ install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/lwip_tcp_perf_server.elf ${DEPLOYDIR}/${LWIP_TCP_PERF_SERVER_BASE_NAME}.elf
+ ln -sf ${LWIP_TCP_PERF_SERVER_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${WORKDIR}/package/${base_libdir}/firmware/lwip_tcp_perf_server.elf ${WORKDIR}/package/${base_libdir}/firmware/lwip_tcp_perf_server.bin
+ install -m 0644 ${WORKDIR}/package/${base_libdir}/firmware/lwip_tcp_perf_server.bin ${DEPLOYDIR}/${LWIP_TCP_PERF_SERVER_BASE_NAME}.bin
+ ln -sf ${LWIP_TCP_PERF_SERVER_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_package
+
+FILES_${PN} = "${base_libdir}/firmware/lwip_tcp_perf_server*"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-udp-perf-client/lwip-udp-perf-client_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-udp-perf-client/lwip-udp-perf-client_git.bb
new file mode 100644
index 000000000..fc89c13ec
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-udp-perf-client/lwip-udp-perf-client_git.bb
@@ -0,0 +1,41 @@
+inherit esw deploy python3native
+
+ESW_COMPONENT_SRC = "/lib/sw_apps/lwip_udp_perf_client/src/"
+
+DEPENDS += "dtc-native python3-dtc-native libxil lwip xiltimer device-tree python3-pyyaml-native"
+
+do_configure_prepend() {
+ cd ${S}
+ nativepython3 ${S}/scripts/linker_gen.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+
+do_generate_app_data() {
+ # This script should also not rely on relative paths and such
+ cd ${S}
+ nativepython3 ${S}/scripts/lib_parser.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+addtask do_generate_app_data before do_configure after do_prepare_recipe_sysroot
+do_prepare_recipe_sysroot[rdeptask] = "do_unpack"
+
+do_install() {
+ install -d ${D}/${base_libdir}/firmware
+ # Note that we have to make the ELF executable for it to be stripped
+ install -m 0755 ${B}/lwip_udp_perf_client* ${D}/${base_libdir}/firmware
+}
+
+LWIP_UDP_PERF_CLIENT_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+LWIP_UDP_PERF_CLIENT_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+
+ # We need to deploy the stripped elf, hence why not doing it from ${D}
+ install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/lwip_udp_perf_client.elf ${DEPLOYDIR}/${LWIP_UDP_PERF_CLIENT_BASE_NAME}.elf
+ ln -sf ${LWIP_UDP_PERF_CLIENT_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${WORKDIR}/package/${base_libdir}/firmware/lwip_udp_perf_client.elf ${WORKDIR}/package/${base_libdir}/firmware/lwip_udp_perf_client.bin
+ install -m 0644 ${WORKDIR}/package/${base_libdir}/firmware/lwip_udp_perf_client.bin ${DEPLOYDIR}/${LWIP_UDP_PERF_CLIENT_BASE_NAME}.bin
+ ln -sf ${LWIP_UDP_PERF_CLIENT_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_package
+
+FILES_${PN} = "${base_libdir}/firmware/lwip_udp_perf_client*"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-udp-perf-server/lwip-udp-perf-server_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-udp-perf-server/lwip-udp-perf-server_git.bb
new file mode 100644
index 000000000..8b9114ac3
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-applications/lwip-udp-perf-server/lwip-udp-perf-server_git.bb
@@ -0,0 +1,41 @@
+inherit esw deploy python3native
+
+ESW_COMPONENT_SRC = "/lib/sw_apps/lwip_udp_perf_server/src/"
+
+DEPENDS += "dtc-native python3-dtc-native libxil lwip xiltimer device-tree python3-pyyaml-native"
+
+do_configure_prepend() {
+ cd ${S}
+ nativepython3 ${S}/scripts/linker_gen.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+
+do_generate_app_data() {
+ # This script should also not rely on relative paths and such
+ cd ${S}
+ nativepython3 ${S}/scripts/lib_parser.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+addtask do_generate_app_data before do_configure after do_prepare_recipe_sysroot
+do_prepare_recipe_sysroot[rdeptask] = "do_unpack"
+
+do_install() {
+ install -d ${D}/${base_libdir}/firmware
+ # Note that we have to make the ELF executable for it to be stripped
+ install -m 0755 ${B}/lwip_udp_perf_server* ${D}/${base_libdir}/firmware
+}
+
+LWIP_UDP_PERF_SERVER_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+LWIP_UDP_PERF_SERVER_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+
+ # We need to deploy the stripped elf, hence why not doing it from ${D}
+ install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/lwip_udp_perf_server.elf ${DEPLOYDIR}/${LWIP_UDP_PERF_SERVER_BASE_NAME}.elf
+ ln -sf ${LWIP_UDP_PERF_SERVER_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${WORKDIR}/package/${base_libdir}/firmware/lwip_udp_perf_server.elf ${WORKDIR}/package/${base_libdir}/firmware/lwip_udp_perf_server.bin
+ install -m 0644 ${WORKDIR}/package/${base_libdir}/firmware/lwip_udp_perf_server.bin ${DEPLOYDIR}/${LWIP_UDP_PERF_SERVER_BASE_NAME}.bin
+ ln -sf ${LWIP_UDP_PERF_SERVER_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_package
+
+FILES_${PN} = "${base_libdir}/firmware/lwip_udp_perf_server*"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-applications/pmufw/pmufw_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-applications/pmufw/pmufw_git.bb
new file mode 100644
index 000000000..19238f97a
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-applications/pmufw/pmufw_git.bb
@@ -0,0 +1,30 @@
+inherit esw deploy
+
+COMPATIBLE_MACHINE = "microblaze-pmu"
+
+ESW_COMPONENT_SRC = "/lib/sw_apps/zynqmp_pmufw/src"
+
+DEPENDS += "xilstandalone xiltimer xilfpga xilskey"
+
+do_install() {
+ install -d ${D}/${base_libdir}/firmware
+ # Note that we have to make the ELF executable for it to be stripped
+ install -m 0755 ${B}/pmufw* ${D}/${base_libdir}/firmware
+}
+
+PMU_FIRMWARE_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+PMU_FIRMWARE_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+
+ # We need to deploy the stripped elf, hence why not doing it from ${D}
+ install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/pmufw.elf ${DEPLOYDIR}/${PMU_FIRMWARE_BASE_NAME}.elf
+ ln -sf ${PMU_FIRMWARE_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${WORKDIR}/package/${base_libdir}/firmware/pmufw.elf ${WORKDIR}/package/${base_libdir}/firmware/pmufw.bin
+ install -m 0644 ${WORKDIR}/package/${base_libdir}/firmware/pmufw.bin ${DEPLOYDIR}/${PMU_FIRMWARE_BASE_NAME}.bin
+ ln -sf ${PMU_FIRMWARE_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_package
+
+FILES_${PN} = "${base_libdir}/firmware/pmufw*"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-applications/zynqmp-fsbl/zynqmp-fsbl_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-applications/zynqmp-fsbl/zynqmp-fsbl_git.bb
new file mode 100644
index 000000000..a0d2d2b9d
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-applications/zynqmp-fsbl/zynqmp-fsbl_git.bb
@@ -0,0 +1,40 @@
+inherit esw deploy
+
+COMPATIBLE_MACHINE = ".*-zynqmp"
+
+ESW_COMPONENT_SRC = "/lib/sw_apps/zynqmp_fsbl/src"
+
+DEPENDS += "xilstandalone xiltimer xilffs xilsecure xilpm device-tree"
+
+PSU_INIT = "${RECIPE_SYSROOT}/${includedir}/devicetree/psu_init*"
+
+do_configure_prepend() {
+ # Copy psu_init* files to fsbl source code
+ cp ${PSU_INIT} ${S}/${ESW_COMPONENT_SRC}
+}
+
+do_install() {
+ install -d ${D}/${base_libdir}/firmware
+ # Note that we have to make the ELF executable for it to be stripped
+ install -m 0755 ${B}/zynqmp_fsbl* ${D}/${base_libdir}/firmware
+}
+
+ZYNQMP_FSBL_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+ZYNQMP_FSBL_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+
+ # We need to deploy the stripped elf, hence why not doing it from ${D}
+ install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/zynqmp_fsbl.elf ${DEPLOYDIR}/${ZYNQMP_FSBL_BASE_NAME}.elf
+ ln -sf ${ZYNQMP_FSBL_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${WORKDIR}/package/${base_libdir}/firmware/zynqmp_fsbl.elf ${WORKDIR}/package/${base_libdir}/firmware/zynqmp_fsbl.bin
+ install -m 0644 ${WORKDIR}/package/${base_libdir}/firmware/zynqmp_fsbl.bin ${DEPLOYDIR}/${ZYNQMP_FSBL_BASE_NAME}.bin
+ ln -sf ${ZYNQMP_FSBL_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_package
+
+CFLAGS_append_aarch64 = " -DARMA53_64"
+CFLAGS_append_armrm = " -DARMR5"
+
+FILES_${PN} = "${base_libdir}/firmware/zynqmp_fsbl*"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-bsp/device-tree/device-tree.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-bsp/device-tree/device-tree.bbappend
new file mode 100644
index 000000000..2cc088f27
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-bsp/device-tree/device-tree.bbappend
@@ -0,0 +1,28 @@
+COMPATIBLE_HOST_xilinx-standalone = "${HOST_SYS}"
+
+COMPATIBLE_MACHINE_cortexa53-zynqmp = ".*"
+COMPATIBLE_MACHINE_cortexr5-zynqmp = ".*"
+COMPATIBLE_MACHINE_microblaze-pmu = ".*"
+COMPATIBLE_MACHINE_microblaze-plm = ".*"
+COMPATIBLE_MACHINE_cortexa72-versal = ".*"
+COMPATIBLE_MACHINE_cortexr5-versal = ".*"
+COMPATIBLE_MACHINE_cortexa9-zynq = ".*"
+
+XSCTH_PROC_cortexa53-zynqmp ??= "psu_cortexa53_0"
+XSCTH_PROC_cortexr5-zynqmp ??= "psu_cortexr5_0"
+XSCTH_PROC_microblaze-pmu ??= "psu_pmu_0"
+XSCTH_PROC_cortexa72-versal ??= "psv_cortexa72_0"
+XSCTH_PROC_microblaze-plm ??= "psv_pmc_0"
+XSCTH_PROC_cortexr5-versal ??= "psv_cortexr5_0"
+XSCTH_PROC_cortexa9-zynq ??= "ps7_cortexa9_0"
+
+# Enable @ flag on dtc which is required by libxil
+DTC_FLAGS_append_xilinx-standalone = " -@"
+DT_INCLUDE_append_xilinx-standalone = " ${WORKDIR}/git/device_tree/data/kernel_dtsi/${XILINX_RELEASE_VERSION}/include/"
+
+
+do_install_append_zynqmp_xilinx-standalone() {
+ install -d ${D}${includedir}/devicetree
+ install -m 0644 ${B}/${PN}/psu_init.c ${D}/${includedir}/devicetree/psu_init.c
+ install -m 0644 ${B}/${PN}/psu_init.h ${D}/${includedir}/devicetree/psu_init.h
+}
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-core/meta/gnu-toolchain-canadian.bb b/meta-xilinx/meta-xilinx-standalone/recipes-core/meta/gnu-toolchain-canadian.bb
new file mode 100644
index 000000000..ca8885b87
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-core/meta/gnu-toolchain-canadian.bb
@@ -0,0 +1,25 @@
+inherit cross-canadian
+
+SUMMARY = "Links to the various GNU toolchains for use with the Xilinx multilib toolchain"
+PN = "gnu-toolchain-canadian-${TARGET_SYS}"
+BPN = "gnu-toolchain-canadian"
+
+LICENSE = "MIT"
+
+do_install () {
+ if [ "${TARGET_SYS_MULTILIB_ORIGINAL}" != "" -a "${TARGET_SYS_MULTILIB_ORIGINAL}" != "${TARGET_SYS}" ]; then
+ mkdir -p ${D}${bindir}
+
+ # Create a link for each item references by the environment files
+ for each in gcc g++ as ld gdb strip ranlib objcopy objdump readelf ar nm ; do
+ ln -s ../${TARGET_SYS_MULTILIB_ORIGINAL}/${TARGET_SYS_MULTILIB_ORIGINAL}-${each} ${D}${bindir}/${TARGET_SYS}-$each
+ done
+ fi
+}
+
+INHIBIT_DEFAULT_DEPS = "1"
+
+ALLOW_EMPTY_${PN} = "1"
+FILES_${PN} = "${bindir}"
+
+PACKAGES = "${PN}"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-core/meta/meta-toolchain.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-core/meta/meta-toolchain.bbappend
new file mode 100644
index 000000000..51b700357
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-core/meta/meta-toolchain.bbappend
@@ -0,0 +1,3 @@
+COMPATIBLE_HOST = "${HOST_SYS}"
+
+TOOLCHAIN_TARGET_TASK_xilinx-standalone = "${@multilib_pkg_extend(d, 'packagegroup-newlib-standalone-sdk-target')}"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-core/newlib/libgloss_3.1.0.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-core/newlib/libgloss_3.1.0.bbappend
new file mode 100644
index 000000000..b2245022e
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-core/newlib/libgloss_3.1.0.bbappend
@@ -0,0 +1,13 @@
+COMPATIBLE_HOST = ".*-elf"
+COMPATIBLE_HOST_arm = "[^-]*-[^-]*-eabi"
+
+# When building multiple, we need to depend on the multilib newlib
+DEPENDS_append_xilinx-standalone = " ${MLPREFIX}newlib"
+
+EXTRA_OECONF_append_xilinx-standalone = " \
+ --enable-newlib-io-c99-formats \
+ --enable-newlib-io-long-long \
+ --enable-newlib-io-float \
+ --enable-newlib-io-long-double \
+ --disable-newlib-supplied-syscalls \
+"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-core/newlib/newlib_3.1.0.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-core/newlib/newlib_3.1.0.bbappend
new file mode 100644
index 000000000..536a23a1a
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-core/newlib/newlib_3.1.0.bbappend
@@ -0,0 +1,21 @@
+COMPATIBLE_HOST = ".*-elf"
+COMPATIBLE_HOST_arm = "[^-]*-[^-]*-eabi"
+
+EXTRA_OECONF_append_xilinx-standalone = " \
+ --enable-newlib-io-c99-formats \
+ --enable-newlib-io-long-long \
+ --enable-newlib-io-float \
+ --enable-newlib-io-long-double \
+ --disable-newlib-supplied-syscalls \
+"
+
+# Avoid trimmping CCARGS from CC by newlib configure
+do_configure_prepend_xilinx-standalone(){
+ export CC_FOR_TARGET="${CC}"
+}
+
+# Fix for multilib newlib installations
+do_install_prepend_xilinx-standalone() {
+ mkdir -p $(dirname ${D}${libdir})
+ mkdir -p $(dirname ${D}${includedir})
+}
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-core/packagegroups/packagegroup-cross-canadian.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-core/packagegroups/packagegroup-cross-canadian.bbappend
new file mode 100644
index 000000000..456ec6c1c
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-core/packagegroups/packagegroup-cross-canadian.bbappend
@@ -0,0 +1,14 @@
+# Avoid installing all of the alternative toolchains
+# due to multilib enabled in the primary toolchain.
+
+# Create the links to the multilib toolchain components
+GNUTCLINKS = "gnu-toolchain-canadian-${TARGET_SYS}"
+
+# Without the := the eval during do_package is occasionally missing multilibs
+RDEPENDS_${PN}_xilinx-standalone := " \
+ ${@all_multilib_tune_values(d, 'GNUTCLINKS')} \
+ ${BINUTILS} \
+ ${GCC} \
+ ${GDB} \
+ meta-environment-${MACHINE} \
+"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-core/packagegroups/packagegroup-newlib-standalone-sdk-target.bb b/meta-xilinx/meta-xilinx-standalone/recipes-core/packagegroups/packagegroup-newlib-standalone-sdk-target.bb
new file mode 100644
index 000000000..b64554d35
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-core/packagegroups/packagegroup-newlib-standalone-sdk-target.bb
@@ -0,0 +1,13 @@
+COMPATIBLE_HOST = "${HOST_SYS}"
+
+SUMMARY = "Target packages for the standalone SDK"
+
+PACKAGE_ARCH = "${TUNE_PKGARCH}"
+
+inherit packagegroup
+
+RDEPENDS_${PN} = "\
+ libgcc-dev \
+ libstdc++-dev \
+ ${LIBC_DEPENDENCIES} \
+ "
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-devtools/binutils/binutils-cross-canadian_%.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/binutils/binutils-cross-canadian_%.bbappend
new file mode 100644
index 000000000..5ba6039bd
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/binutils/binutils-cross-canadian_%.bbappend
@@ -0,0 +1 @@
+require binutils-xilinx-standalone.inc
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-devtools/binutils/binutils-cross_%.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/binutils/binutils-cross_%.bbappend
new file mode 100644
index 000000000..5ba6039bd
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/binutils/binutils-cross_%.bbappend
@@ -0,0 +1 @@
+require binutils-xilinx-standalone.inc
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-devtools/binutils/binutils-xilinx-standalone.inc b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/binutils/binutils-xilinx-standalone.inc
new file mode 100644
index 000000000..ac5697362
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/binutils/binutils-xilinx-standalone.inc
@@ -0,0 +1,19 @@
+LDGOLD_xilinx-standalone = ""
+LDGOLD_ALTS_xilinx-standalone = ""
+
+EXTRA_OECONF_append_xilinx-standalone = " \
+ --disable-gprof \
+ --disable-shared \
+ --enable-lto \
+ --enable-static \
+ --enable-multilib \
+"
+
+# CortexR5 and 32-bit arm are both "arm"
+EXTRA_OECONF_append_xilinx-standalone_arm = " \
+ --enable-interwork \
+"
+
+EXTRA_OECONF_append_xilinx-standalone_microblaze = " \
+ --disable-initfini-array \
+"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-9/additional-microblaze-multilibs.patch b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-9/additional-microblaze-multilibs.patch
new file mode 100644
index 000000000..a32045bc2
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-9/additional-microblaze-multilibs.patch
@@ -0,0 +1,84 @@
+Change the multilib settings to match the expectations of Vitis and related.
+
+The multilib list is as follows:
+
+.;
+le;@mlittle-endian
+bs;@mxl-barrel-shift
+p;@mxl-pattern-compare
+m;@mno-xl-soft-mul
+fpd;@mhard-float
+m/fpd;@mno-xl-soft-mul@mhard-float
+p/m;@mxl-pattern-compare@mno-xl-soft-mul
+p/fpd;@mxl-pattern-compare@mhard-float
+p/m/fpd;@mxl-pattern-compare@mno-xl-soft-mul@mhard-float
+bs/p;@mxl-barrel-shift@mxl-pattern-compare
+bs/m;@mxl-barrel-shift@mno-xl-soft-mul
+bs/fpd;@mxl-barrel-shift@mhard-float
+bs/m/fpd;@mxl-barrel-shift@mno-xl-soft-mul@mhard-float
+bs/p/m;@mxl-barrel-shift@mxl-pattern-compare@mno-xl-soft-mul
+bs/p/fpd;@mxl-barrel-shift@mxl-pattern-compare@mhard-float
+bs/p/m/fpd;@mxl-barrel-shift@mxl-pattern-compare@mno-xl-soft-mul@mhard-float
+le/m64;@mlittle-endian@m64
+le/bs;@mlittle-endian@mxl-barrel-shift
+le/p;@mlittle-endian@mxl-pattern-compare
+le/m;@mlittle-endian@mno-xl-soft-mul
+le/fpd;@mlittle-endian@mhard-float
+le/m/fpd;@mlittle-endian@mno-xl-soft-mul@mhard-float
+le/p/m;@mlittle-endian@mxl-pattern-compare@mno-xl-soft-mul
+le/p/fpd;@mlittle-endian@mxl-pattern-compare@mhard-float
+le/p/m/fpd;@mlittle-endian@mxl-pattern-compare@mno-xl-soft-mul@mhard-float
+le/bs/p;@mlittle-endian@mxl-barrel-shift@mxl-pattern-compare
+le/bs/m;@mlittle-endian@mxl-barrel-shift@mno-xl-soft-mul
+le/bs/fpd;@mlittle-endian@mxl-barrel-shift@mhard-float
+le/bs/m/fpd;@mlittle-endian@mxl-barrel-shift@mno-xl-soft-mul@mhard-float
+le/bs/p/m;@mlittle-endian@mxl-barrel-shift@mxl-pattern-compare@mno-xl-soft-mul
+le/bs/p/fpd;@mlittle-endian@mxl-barrel-shift@mxl-pattern-compare@mhard-float
+le/bs/p/m/fpd;@mlittle-endian@mxl-barrel-shift@mxl-pattern-compare@mno-xl-soft-mul@mhard-float
+le/m64/bs;@mlittle-endian@m64@mxl-barrel-shift
+le/m64/p;@mlittle-endian@m64@mxl-pattern-compare
+le/m64/m;@mlittle-endian@m64@mno-xl-soft-mul
+le/m64/fpd;@mlittle-endian@m64@mhard-float
+le/m64/m/fpd;@mlittle-endian@m64@mno-xl-soft-mul@mhard-float
+le/m64/p/m;@mlittle-endian@m64@mxl-pattern-compare@mno-xl-soft-mul
+le/m64/p/fpd;@mlittle-endian@m64@mxl-pattern-compare@mhard-float
+le/m64/p/m/fpd;@mlittle-endian@m64@mxl-pattern-compare@mno-xl-soft-mul@mhard-float
+le/m64/bs/p;@mlittle-endian@m64@mxl-barrel-shift@mxl-pattern-compare
+le/m64/bs/m;@mlittle-endian@m64@mxl-barrel-shift@mno-xl-soft-mul
+le/m64/bs/fpd;@mlittle-endian@m64@mxl-barrel-shift@mhard-float
+le/m64/bs/m/fpd;@mlittle-endian@m64@mxl-barrel-shift@mno-xl-soft-mul@mhard-float
+le/m64/bs/p/m;@mlittle-endian@m64@mxl-barrel-shift@mxl-pattern-compare@mno-xl-soft-mul
+le/m64/bs/p/fpd;@mlittle-endian@m64@mxl-barrel-shift@mxl-pattern-compare@mhard-float
+le/m64/bs/p/m/fpd;@mlittle-endian@m64@mxl-barrel-shift@mxl-pattern-compare@mno-xl-soft-mul@mhard-float
+
+As part of this the order of the multilibs was changes from upstream to make
+it easier to avoid big-endian m64, which is not supported by the toolchain.
+
+Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
+
+diff -ur gcc-9.2.0.orig/gcc/config/microblaze/t-microblaze gcc-9.2.0/gcc/config/microblaze/t-microblaze
+--- gcc-9.2.0.orig/gcc/config/microblaze/t-microblaze 2020-02-07 09:46:48.286261214 -0800
++++ gcc-9.2.0/gcc/config/microblaze/t-microblaze 2020-02-10 17:07:52.440598949 -0800
+@@ -1,16 +1,11 @@
+-MULTILIB_OPTIONS = m64 mxl-barrel-shift mlittle-endian mno-xl-soft-mul mxl-multiply-high
+-MULTILIB_DIRNAMES = m64 bs le m mh
+-MULTILIB_EXCEPTIONS = *m64/mxl-multiply-high mxl-multiply-high
+-MULTILIB_EXCEPTIONS += *m64
+-MULTILIB_EXCEPTIONS += *m64/mxl-barrel-shift
+-MULTILIB_EXCEPTIONS += *m64/mno-xl-soft-mul
+-MULTILIB_EXCEPTIONS += *m64/mxl-barrel-shift/mno-xl-soft-mul
+-MULTILIB_EXCEPTIONS += *m64/mno-xl-soft-mul
+-MULTILIB_EXCEPTIONS += *m64/mxl-barrel-shift/mno-xl-soft-mul/mxl-multiply-high
+-MULTILIB_EXCEPTIONS += *m64/mno-xl-soft-mul/mxl-multiply-high
++MULTILIB_OPTIONS = mlittle-endian m64 mxl-barrel-shift mxl-pattern-compare mno-xl-soft-mul mhard-float
++MULTILIB_DIRNAMES = le m64 bs p m fpd
++MULTILIB_EXCEPTIONS = mxl-multiply-high
+ MULTILIB_EXCEPTIONS += *mxl-barrel-shift/mxl-multiply-high mxl-multiply-high
+ MULTILIB_EXCEPTIONS += *mlittle-endian/mxl-multiply-high mxl-multiply-high
+-MULTILIB_EXCEPTIONS += *m64/mxl-barrel-shift/mlittle-endian/mxl-multiply-high
++MULTILIB_EXCEPTIONS += *mxl-pattern-compare*/*mxl-multiply-high*
++# Big endian m64 is not supported
++MULTILIB_EXCEPTIONS += m64*
+
+ # Extra files
+ microblaze-c.o: $(srcdir)/config/microblaze/microblaze-c.c \
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-configure-xilinx-standalone.inc b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-configure-xilinx-standalone.inc
new file mode 100644
index 000000000..b9bfe83dd
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-configure-xilinx-standalone.inc
@@ -0,0 +1,7 @@
+# Mimic the file gcc-configure-common from the Yocto Project
+LINKER_HASH_STYLE_xilinx-standalone = ""
+SYMVERS_CONF_xilinx-standalone = ""
+
+EXTRA_OECONF_append_xilinx-standalone_microblaze = " --disable-initfini_array"
+
+EXTRA_OECONF_append_xilinx-standalone_microblaze = " --disable-__cxa_atexit"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-cross-canadian_%.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-cross-canadian_%.bbappend
new file mode 100644
index 000000000..152348486
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-cross-canadian_%.bbappend
@@ -0,0 +1,20 @@
+require gcc-configure-xilinx-standalone.inc
+require gcc-xilinx-standalone.inc
+
+# We want to use the stock multilib configs, when available
+EXTRACONFFUNCS_xilinx-standalone = ""
+
+EXTRA_OECONF_append_xilinx-standalone = " \
+ --enable-multilib \
+"
+
+# Temporary hack to build gcc cross canadian for tclibc-newlib as --with-sysroot=/not/exist
+# has been removed from TARGET_OS for elf and eabi in gcc-cross-canadian.inc
+
+python() {
+ if 'xilinx-standalone' in d.getVar("DISTROOVERRIDES").split(':'):
+ extraoeconfgcc = d.getVar('EXTRA_OECONF')
+ extraoeconfgcc += " --with-sysroot=/not/exist"
+ d.delVar('EXTRA_OECONF')
+ d.setVar('EXTRA_OECONF', extraoeconfgcc)
+}
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-cross_%.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-cross_%.bbappend
new file mode 100644
index 000000000..22a3e3a9b
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-cross_%.bbappend
@@ -0,0 +1,6 @@
+require gcc-configure-xilinx-standalone.inc
+require gcc-xilinx-standalone.inc
+
+# We want to use the stock multilib configs, when available
+EXTRACONFFUNCS_xilinx-standalone = ""
+
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-runtime_%.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-runtime_%.bbappend
new file mode 100644
index 000000000..7057a0576
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-runtime_%.bbappend
@@ -0,0 +1,74 @@
+require gcc-configure-xilinx-standalone.inc
+
+COMPATIBLE_HOST = "${HOST_SYS}"
+
+EXTRA_OECONF_append_xilinx-standalone_class-target = " \
+ --disable-libstdcxx-pch \
+ --with-newlib \
+ --disable-threads \
+ --enable-plugins \
+ --with-gnu-as \
+ --disable-libitm \
+"
+
+EXTRA_OECONF_append_xilinx-standalone_aarch64_class-target = " \
+ --disable-multiarch \
+ --with-arch=armv8-a \
+ "
+
+# Both arm and armrm overrides are set w/ cortex r5
+# So only set rmprofile if armrm is defined.
+ARM_PROFILE = "aprofile"
+ARM_PROFILE_armrm = "rmprofile"
+
+EXTRA_OECONF_append_xilinx-standalone_arm_class-target = " \
+ --with-multilib-list=${ARM_PROFILE} \
+ "
+
+EXTRA_OECONF_append_xilinx-standalone_armrm_class-target = " \
+ --disable-tls \
+ --disable-decimal-float \
+ "
+
+EXTRA_OECONF_append_xilinx-standalone_microblaze_class-target = " \
+ --enable-target-optspace \
+ --without-long-double-128 \
+ "
+
+# Changes local to gcc-runtime...
+
+# Dont build libitm, etc.
+RUNTIMETARGET_xilinx-standalone_class-target = "libstdc++-v3"
+
+do_install_append_xilinx-standalone_class-target() {
+ # Fixup what gcc-runtime normally would do, we don't want linux directories!
+ rm -rf ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR}-linux
+
+ # The multilibs have different headers, so stop combining them!
+ if [ "${TARGET_VENDOR_MULTILIB_ORIGINAL}" != "" -a "${TARGET_VENDOR}" != "${TARGET_VENDOR_MULTILIB_ORIGINAL}" ]; then
+ rm -rf ${D}${includedir}/c++/${BINV}/${TARGET_ARCH}${TARGET_VENDOR_MULTILIB_ORIGINAL}-${TARGET_OS}
+ fi
+
+ # link the C++ header into the place that multilib gcc expects
+ # C++ compiler looks at usr/include/c++/version/canonical-arch/mlib
+ if [ "${TARGET_SYS_MULTILIB_ORIGINAL}" != "" -a "${TARGET_SYS_MULTILIB_ORIGINAL}" != "${TARGET_SYS}" ]; then
+ mlib=${BASE_LIB_tune-${DEFAULTTUNE}}
+ mlib=${mlib##lib/}
+
+ link_name=${D}${includedir}/c++/${BINV}/${TARGET_SYS_MULTILIB_ORIGINAL}/${mlib}
+ target=${D}${includedir}/c++/${BINV}/${TARGET_SYS}
+
+ echo mkdir -p $link_name
+ mkdir -p $link_name
+ for each in bits ext ; do
+ relpath=$(python3 -c "import os.path; print(os.path.relpath('$target/$each', '$(dirname $link_name/$each)'))")
+
+ echo ln -s $relpath $link_name/$each
+ ln -s $relpath $link_name/$each
+ done
+ fi
+}
+
+FILES_${PN}-dbg_append_xilinx-standalone_class-target = "\
+ ${libdir}/libstdc++.a-gdb.py \
+"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-source_9.%.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-source_9.%.bbappend
new file mode 100644
index 000000000..6a4a8c5a3
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-source_9.%.bbappend
@@ -0,0 +1,7 @@
+COMPATIBLE_HOST = "${HOST_SYS}"
+
+# Add MicroBlaze Patches (only when using MicroBlaze)
+FILESEXTRAPATHS_append_microblaze_xilinx-standalone := ":${THISDIR}/gcc-9"
+SRC_URI_append_microblaze_xilinx-standalone = " \
+ file://additional-microblaze-multilibs.patch \
+"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-xilinx-standalone.inc b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-xilinx-standalone.inc
new file mode 100644
index 000000000..29f67aff2
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/gcc-xilinx-standalone.inc
@@ -0,0 +1,31 @@
+EXTRA_OECONF_append_xilinx-standalone = " \
+ --disable-libstdcxx-pch \
+ --with-newlib \
+ --disable-threads \
+ --enable-plugins \
+ --with-gnu-as \
+ --disable-libitm \
+"
+
+EXTRA_OECONF_append_xilinx-standalone_aarch64 = " \
+ --disable-multiarch \
+ --with-arch=armv8-a \
+ "
+
+# Both arm and armrm overrides are set w/ cortex r5
+# So only set rmprofile if armrm is defined.
+ARM_PROFILE = "aprofile"
+ARM_PROFILE_armrm = "rmprofile"
+EXTRA_OECONF_append_xilinx-standalone_arm = " \
+ --with-multilib-list=${ARM_PROFILE} \
+ "
+
+EXTRA_OECONF_append_xilinx-standalone_armrm = " \
+ --disable-tls \
+ --disable-decimal-float \
+ "
+
+EXTRA_OECONF_append_xilinx-standalone_microblaze = " \
+ --enable-target-optspace \
+ --without-long-double-128 \
+ "
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/libgcc_%.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/libgcc_%.bbappend
new file mode 100644
index 000000000..e80b0b79f
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/libgcc_%.bbappend
@@ -0,0 +1,26 @@
+require gcc-configure-xilinx-standalone.inc
+
+COMPATIBLE_HOST = "${HOST_SYS}"
+
+python do_multilib_install_xilinx-standalone_class-target () {
+ pass
+}
+
+standalone_fixup () {
+ (
+ cd ${D}${libdir}
+ for each in ${TARGET_SYS}/*/* ; do
+ ln -s $each $(basename $each)
+ done
+ )
+}
+
+FIXUP_FUNCTION = ""
+FIXUP_FUNCTION_xilinx-standalone_class-target = " standalone_fixup"
+
+do_install[postfuncs] .= "${FIXUP_FUNCTION}"
+
+FILES_${PN}-dev_append_xilinx-standalone_class-target = " \
+ ${libdir}/*.a \
+ ${libdir}/*.o \
+"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/mb-convert-head.sh b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/mb-convert-head.sh
new file mode 100755
index 000000000..b59dff1e0
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/mb-convert-head.sh
@@ -0,0 +1,16 @@
+#! /bin/bash
+
+# Call using:
+#../microblaze/sysroots/x86_64-oesdk-linux/usr/bin/microblaze-xilinx-elf/microblaze-xilinx-elf-gcc -print-multi-lib | mb-convert-head.sh
+
+# Then copy the output into the special microblaze-tc BSP
+
+sed -e 's,;, ,' |
+ while read mlib args ; do
+ if [ $mlib = '.' ]; then
+ continue
+ fi
+ multilib="libmb$(echo $mlib | sed -e 's,/,,g')"
+
+ echo 'MULTILIBS += "multilib:'${multilib}'"'
+ done
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/mb-convert.sh b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/mb-convert.sh
new file mode 100755
index 000000000..e05145ec4
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/gcc/mb-convert.sh
@@ -0,0 +1,60 @@
+#! /bin/bash
+
+# Call using:
+#../microblaze/sysroots/x86_64-oesdk-linux/usr/bin/microblaze-xilinx-elf/microblaze-xilinx-elf-gcc -print-multi-lib | mb-convert.sh
+
+# Then copy the output into the special microblaze-tc BSP
+
+mlib_to_feature() {
+ feature_base="microblaze"
+ feature_endian=" bigendian"
+ feature_barrel=""
+ feature_pattern=""
+ feature_multiply=""
+ feature_multiplyhigh=""
+ feature_sixtyfour=""
+ feature_math=""
+ while read feature ; do
+ case $feature in
+ le) feature_endian="";;
+ bs) feature_barrel=" barrel-shift";;
+ p) feature_pattern=" pattern-compare";;
+ m) if [ -z ${feature_multiplyhigh} ]; then feature_multiply=" multiply-low" ; fi ;;
+ mh) feature_multiply="" ; feature_multiplyhigh=" multiply-high";;
+ m64) feature_sixtyfour=" 64-bit";;
+ fpd) feature_math=" fpu-hard";;
+ *) echo "UNKNOWN $feature";;
+ esac
+ done
+ echo "${feature_base}${feature_sixtyfour}${feature_endian}${feature_barrel}${feature_pattern}${feature_multiply}${feature_multiplyhigh}${feature_math}"
+}
+
+sed -e 's,;, ,' |
+ while read mlib args ; do
+ if [ $mlib = '.' ]; then
+ echo '# Base configuration'
+ echo '# CFLAGS:'
+ echo 'DEFAULTTUNE = "microblaze"'
+ echo
+ echo 'AVAILTUNES += "microblaze"'
+ echo 'BASE_LIB_tune-microblaze = "lib"'
+ echo 'TUNE_FEATURES_tune-microblaze = "microblaze bigendian"'
+ echo 'PACKAGE_EXTRA_ARCHS_tune-microblaze = "${TUNE_PKGARCH}"'
+ continue
+ fi
+
+ cflags=$(echo $args | sed -e 's,@, -,g')
+ multilib="libmb$(echo $mlib | sed -e 's,/,,g')"
+ tune="microblaze$(echo $mlib | sed -e 's,m64,64,' -e 's,/,,g')"
+ features=$(echo $mlib | sed -e 's,/, ,g' | xargs -n 1 echo | mlib_to_feature)
+ echo
+ echo
+ echo "# $mlib"
+ echo "# CFLAGS:${cflags}"
+ echo "DEFAULTTUNE_virtclass-multilib-$multilib = \"$tune\""
+ echo
+ echo "AVAILTUNES += \"$tune\""
+ echo "BASE_LIB_tune-$tune = \"lib/$mlib\""
+ echo "TUNE_FEATURES_tune-$tune = \"${features}\""
+ echo "PACKAGE_EXTRA_ARCHS_tune-$tune = \"\${TUNE_PKGARCH}\""
+ done
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-devtools/qemu/qemuwrapper-cross_1.0.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/qemu/qemuwrapper-cross_1.0.bbappend
new file mode 100644
index 000000000..0d8243241
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-devtools/qemu/qemuwrapper-cross_1.0.bbappend
@@ -0,0 +1 @@
+COMPATIBLE_HOST = "${HOST_SYS}"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/axicdma_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/axicdma_git.bb
new file mode 100644
index 000000000..442ffb7b3
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/axicdma_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/axicdma/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/axidma_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/axidma_git.bb
new file mode 100644
index 000000000..05f4c342b
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/axidma_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/axidma/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/axiethernet_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/axiethernet_git.bb
new file mode 100644
index 000000000..1dc83406f
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/axiethernet_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/axiethernet/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/axivdma_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/axivdma_git.bb
new file mode 100644
index 000000000..415cb9b4b
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/axivdma_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/axivdma/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/can_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/can_git.bb
new file mode 100644
index 000000000..3f688c3b3
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/can_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/can/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/canfd_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/canfd_git.bb
new file mode 100644
index 000000000..36fa367ba
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/canfd_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/canfd/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/canps_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/canps_git.bb
new file mode 100644
index 000000000..ab6f6478f
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/canps_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/canps/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/clockps_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/clockps_git.bb
new file mode 100644
index 000000000..b0bb1ccb9
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/clockps_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/clockps/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/csudma_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/csudma_git.bb
new file mode 100644
index 000000000..f505a8af3
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/csudma_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/csudma/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/devcfg_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/devcfg_git.bb
new file mode 100644
index 000000000..044144655
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/devcfg_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/devcfg/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/dmaps_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/dmaps_git.bb
new file mode 100644
index 000000000..0891fb86a
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/dmaps_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/dmaps/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/emaclite_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/emaclite_git.bb
new file mode 100644
index 000000000..927bc93be
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/emaclite_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/emaclite/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/emacps_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/emacps_git.bb
new file mode 100644
index 000000000..530087a49
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/emacps_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/emacps/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/gpio_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/gpio_git.bb
new file mode 100644
index 000000000..8302d66d3
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/gpio_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/gpio/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/gpiops_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/gpiops_git.bb
new file mode 100644
index 000000000..9ece49a95
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/gpiops_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/gpiops/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/ipipsu_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/ipipsu_git.bb
new file mode 100644
index 000000000..83a107eb1
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/ipipsu_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/ipipsu/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/llfifo_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/llfifo_git.bb
new file mode 100644
index 000000000..dbc1945fe
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/llfifo_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/llfifo/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/mbox_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/mbox_git.bb
new file mode 100644
index 000000000..085a459eb
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/mbox_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/mbox/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/mcdma_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/mcdma_git.bb
new file mode 100644
index 000000000..4b45d0037
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/mcdma_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/mcdma/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/mutex_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/mutex_git.bb
new file mode 100644
index 000000000..6a7b39b4c
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/mutex_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/mutex/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/nandpsu_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/nandpsu_git.bb
new file mode 100644
index 000000000..8fd7251b0
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/nandpsu_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/nandpsu/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/ospipsv_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/ospipsv_git.bb
new file mode 100644
index 000000000..b98f9b517
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/ospipsv_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/ospipsv/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/qspips_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/qspips_git.bb
new file mode 100644
index 000000000..1f0a12409
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/qspips_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/qspips/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/qspipsu_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/qspipsu_git.bb
new file mode 100644
index 000000000..f1c97e972
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/qspipsu_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/qspipsu/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/resetps_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/resetps_git.bb
new file mode 100644
index 000000000..51e4eaad6
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/resetps_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/resetps/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/rtcpsu_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/rtcpsu_git.bb
new file mode 100644
index 000000000..19f17f731
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/rtcpsu_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/rtcpsu/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/scugic_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/scugic_git.bb
new file mode 100644
index 000000000..f20c82411
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/scugic_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/scugic/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/sdps_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/sdps_git.bb
new file mode 100644
index 000000000..cba4543cd
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/sdps_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/sdps/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/spips_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/spips_git.bb
new file mode 100644
index 000000000..d1395a1e1
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/spips_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/spips/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/sysmon_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/sysmon_git.bb
new file mode 100644
index 000000000..cc10bbc1e
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/sysmon_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/sysmon/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/tmrctr_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/tmrctr_git.bb
new file mode 100644
index 000000000..2e675fb7f
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/tmrctr_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/tmrctr/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/ttcps_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/ttcps_git.bb
new file mode 100644
index 000000000..72a215665
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/ttcps_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/ttcps/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/uartlite_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/uartlite_git.bb
new file mode 100644
index 000000000..0f6d688ff
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/uartlite_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/uartlite/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/uartps_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/uartps_git.bb
new file mode 100644
index 000000000..e898f011c
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/uartps_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/uartps/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/usbpsu_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/usbpsu_git.bb
new file mode 100644
index 000000000..976453758
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/usbpsu_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/usbpsu/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/wdtps_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/wdtps_git.bb
new file mode 100644
index 000000000..de70d5fce
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/wdtps_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/wdtps/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/xadcps_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/xadcps_git.bb
new file mode 100644
index 000000000..2e6075213
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/xadcps_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/xadcps/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/xxvethernet_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/xxvethernet_git.bb
new file mode 100644
index 000000000..66e6bcd62
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/xxvethernet_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/xxvethernet/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-drivers/zdma_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/zdma_git.bb
new file mode 100644
index 000000000..584a1b204
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-drivers/zdma_git.bb
@@ -0,0 +1,3 @@
+inherit esw_examples
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/zdma/examples/"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-kernel/linux/linux-dummy.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-kernel/linux/linux-dummy.bbappend
new file mode 100644
index 000000000..0d8243241
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-kernel/linux/linux-dummy.bbappend
@@ -0,0 +1 @@
+COMPATIBLE_HOST = "${HOST_SYS}"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-libraries/freertos10-xilinx_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/freertos10-xilinx_git.bb
new file mode 100644
index 000000000..870524d20
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/freertos10-xilinx_git.bb
@@ -0,0 +1,12 @@
+inherit esw python3native
+
+ESW_COMPONENT_SRC = "/ThirdParty/bsp/freertos10_xilinx/src/"
+ESW_COMPONENT_NAME = "libfreertos.a"
+
+DEPENDS += "libxil xilstandalone xilmem dtc-native python3-pyyaml-native python3-dtc-native xiltimer"
+
+do_configure_prepend() {
+ # This script should also not rely on relative paths and such
+ cd ${S}
+ nativepython3 ${S}/scripts/lib_parser.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-libraries/libxil_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/libxil_git.bb
new file mode 100644
index 000000000..4ac7c1150
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/libxil_git.bb
@@ -0,0 +1,27 @@
+inherit esw python3native
+
+ESW_COMPONENT_SRC = "/XilinxProcessorIPLib/drivers/"
+ESW_COMPONENT_NAME = "libxil.a"
+
+DEPENDS += "dtc-native python3-dtc-native python3-pyyaml-native xilstandalone xilmem device-tree"
+
+do_configure_prepend() {
+ # This will generate CMakeLists.txt which contains
+ # drivers for the libxil
+ cd ${S}
+ #TODO
+ # This call was initially used to get the list of drivers and libraries required
+ # by the design to the build system to use as dependencies to the application
+ # being built, at this point this is all done in a single cmake build bundling
+ # everything in libxil, which is undesired.
+ DRIVERS_LIST=$(nativepython3 ${S}/scripts/getdrvlist.py -d ${DTBFILE})
+}
+
+do_generate_driver_data() {
+ # This script should also not rely on relative paths and such
+ cd ${S}
+ nativepython3 ${S}/scripts/generate_drvdata.py -d ${DTBFILE}
+}
+
+addtask do_generate_driver_data before do_configure after do_prepare_recipe_sysroot
+do_prepare_recipe_sysroot[rdeptask] = "do_unpack"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-libraries/lwip_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/lwip_git.bb
new file mode 100644
index 000000000..7e31b32e8
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/lwip_git.bb
@@ -0,0 +1,23 @@
+inherit esw python3native
+
+ESW_COMPONENT_SRC = "/ThirdParty/sw_services/lwip211/src/"
+ESW_COMPONENT_NAME = "liblwip211.a"
+
+DEPENDS += "dtc-native python3-dtc-native libxil python3-pyyaml-native"
+DEPENDS_append_xilinx-freertos = "freertos10-xilinx"
+
+do_configure_prepend() {
+ # This script should also not rely on relative paths and such
+ cd ${S}
+ nativepython3 ${S}/scripts/lib_parser.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
+
+do_install() {
+ install -d ${D}${libdir}
+ install -d ${D}${includedir}
+ install -m 0755 ${B}/${ESW_COMPONENT_NAME} ${D}${libdir}
+ install -m 0644 ${B}/include/*.h ${D}${includedir}
+ cp -r ${B}/include/arch/ ${D}${includedir}
+ cp -r ${B}/include/include/lwip/ ${D}${includedir}
+ cp -r ${B}/include/include/netif/ ${D}${includedir}
+}
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilffs_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilffs_git.bb
new file mode 100644
index 000000000..fdfbb7cff
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilffs_git.bb
@@ -0,0 +1,10 @@
+inherit esw
+
+ESW_COMPONENT_SRC = "/lib/sw_services/xilffs/src/"
+ESW_COMPONENT_NAME = "libxilffs.a"
+
+EXTRA_OECMAKE += "-DXILFFS_use_mkfs=OFF"
+EXTRA_OECMAKE += "-DXILFFS_read_only=ON"
+EXTRA_OECMAKE += "-DXILFFS_word_access=OFF"
+
+DEPENDS += "xilstandalone libxil"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilfpga_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilfpga_git.bb
new file mode 100644
index 000000000..41405fdfb
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilfpga_git.bb
@@ -0,0 +1,7 @@
+inherit esw
+
+ESW_COMPONENT_SRC = "/lib/sw_services/xilfpga/src/"
+ESW_COMPONENT_NAME = "libxilfpga.a"
+
+DEPENDS += " libxil xilsecure"
+
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilloader_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilloader_git.bb
new file mode 100644
index 000000000..682908adb
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilloader_git.bb
@@ -0,0 +1,6 @@
+inherit esw
+
+ESW_COMPONENT_SRC = "/lib/sw_services/xilloader/src/"
+ESW_COMPONENT_NAME = "libxilloader.a"
+
+DEPENDS += "xilstandalone libxil xilpm xilpdi xilffs xilsecure xilpuf"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilmailbox_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilmailbox_git.bb
new file mode 100644
index 000000000..ff61d95d3
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilmailbox_git.bb
@@ -0,0 +1,6 @@
+inherit esw
+
+ESW_COMPONENT_SRC = "/lib/sw_services/xilmailbox/src/"
+ESW_COMPONENT_NAME = "libxilmailbox.a"
+
+DEPENDS += "xilstandalone libxil"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilmem_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilmem_git.bb
new file mode 100644
index 000000000..de9425408
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilmem_git.bb
@@ -0,0 +1,6 @@
+inherit esw
+
+ESW_COMPONENT_SRC = "/lib/sw_services/xilmem/src/"
+ESW_COMPONENT_NAME = "libxilmem.a"
+
+DEPENDS += "xilstandalone"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilpdi_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilpdi_git.bb
new file mode 100644
index 000000000..c008b0698
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilpdi_git.bb
@@ -0,0 +1,6 @@
+inherit esw
+
+ESW_COMPONENT_SRC = "/lib/sw_services/xilpdi/src/"
+ESW_COMPONENT_NAME = "libxilpdi.a"
+
+DEPENDS += "xilstandalone libxil"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilplmi_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilplmi_git.bb
new file mode 100644
index 000000000..e866e98f9
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilplmi_git.bb
@@ -0,0 +1,6 @@
+inherit esw
+
+ESW_COMPONENT_SRC = "/lib/sw_services/xilplmi/src/"
+ESW_COMPONENT_NAME = "libxilplmi.a"
+
+DEPENDS += "xilstandalone libxil"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilpm_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilpm_git.bb
new file mode 100644
index 000000000..80132c90c
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilpm_git.bb
@@ -0,0 +1,7 @@
+inherit esw
+
+ESW_COMPONENT_SRC = "/lib/sw_services/xilpm/src/"
+ESW_COMPONENT_NAME = "libxilpm.a"
+
+DEPENDS = "libxil"
+DEPENDS_microblaze-plm_append = "xilplmi"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilpuf_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilpuf_git.bb
new file mode 100644
index 000000000..31f06288b
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilpuf_git.bb
@@ -0,0 +1,6 @@
+inherit esw
+
+ESW_COMPONENT_SRC = "/lib/sw_services/xilpuf/src/"
+ESW_COMPONENT_NAME = "libxilpuf.a"
+
+DEPENDS += "libxil"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilsecure_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilsecure_git.bb
new file mode 100644
index 000000000..0ad555105
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilsecure_git.bb
@@ -0,0 +1,6 @@
+inherit esw
+
+ESW_COMPONENT_SRC = "/lib/sw_services/xilsecure/src/"
+ESW_COMPONENT_NAME = "libxilsecure.a"
+
+DEPENDS += "libxil"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilsem_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilsem_git.bb
new file mode 100644
index 000000000..3631d7f0f
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilsem_git.bb
@@ -0,0 +1,6 @@
+inherit esw
+
+ESW_COMPONENT_SRC = "/lib/sw_services/xilsem/src/"
+ESW_COMPONENT_NAME = "libxilsem.a"
+
+DEPENDS += "xilstandalone libxil"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilskey_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilskey_git.bb
new file mode 100644
index 000000000..847825546
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilskey_git.bb
@@ -0,0 +1,6 @@
+inherit esw
+
+ESW_COMPONENT_SRC = "/lib/sw_services/xilskey/src/"
+ESW_COMPONENT_NAME = "libxilskey.a"
+
+DEPENDS += "libxil"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilstandalone_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilstandalone_git.bb
new file mode 100644
index 000000000..a4a393c37
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xilstandalone_git.bb
@@ -0,0 +1,12 @@
+inherit esw python3native
+
+ESW_COMPONENT_SRC = "/lib/bsp/standalone/src/"
+ESW_COMPONENT_NAME = "libxilstandalone.a"
+
+DEPENDS += "dtc-native python3-dtc-native python3-pyyaml-native libgloss device-tree"
+
+do_configure_prepend() {
+ # This script should also not rely on relative paths and such
+ cd ${S}
+ nativepython3 ${S}/scripts/generate_libdata.py -d ${DTBFILE}
+}
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xiltimer_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xiltimer_git.bb
new file mode 100644
index 000000000..428fa6869
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-libraries/xiltimer_git.bb
@@ -0,0 +1,12 @@
+inherit esw python3native
+
+ESW_COMPONENT_SRC = "/lib/sw_services/xiltimer/src/"
+ESW_COMPONENT_NAME = "libxiltimer.a"
+
+DEPENDS += "dtc-native python3-dtc-native python3-pyyaml-native libxil device-tree"
+
+do_configure_prepend() {
+ # This script should also not rely on relative paths and such
+ cd ${S}
+ nativepython3 ${S}/scripts/lib_parser.py -d ${DTBFILE} -o ${OECMAKE_SOURCEPATH}
+}
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross_%.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross_%.bbappend
deleted file mode 100644
index bfcda3d0d..000000000
--- a/meta-xilinx/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross_%.bbappend
+++ /dev/null
@@ -1,18 +0,0 @@
-# By using tclibc-baremetal we loose sysroot functionality due to some
-# append/override behavior We need to get that back , the following append
-# overrides everything on EXTRA_OECONF for gcc cross target it avoids
-# overlapping with crt0 because of --enable-linker-id from EXTRA_OECONF
-
-EXTRA_OECONF_BASE_pn-gcc-cross-${TARGET_ARCH}_append = " \
- ${LTO} \
- ${SSP} \
- --enable-libitm \
- --disable-bootstrap \
- --disable-libmudflap \
- --with-system-zlib \
- --with-ppl=no \
- --with-cloog=no \
- --enable-checking=release \
- --enable-cheaders=c_global \
- --without-isl \
-"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-standalone/newlib/libgloss_3.0.0.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/newlib/libgloss_3.0.0.bbappend
deleted file mode 100644
index fc4db8840..000000000
--- a/meta-xilinx/meta-xilinx-standalone/recipes-standalone/newlib/libgloss_3.0.0.bbappend
+++ /dev/null
@@ -1,10 +0,0 @@
-do_configure_prepend_microblaze() {
- # hack for microblaze, which needs xilinx.ld to literally do any linking (its hard coded in its LINK_SPEC)
- export CC="${CC} -L${S}/libgloss/microblaze"
-}
-
-
-# We use libgloss as if it was libxil, to avoid linking issues
-do_install_append_zynqmp-pmu(){
- cp ${D}/${libdir}/libgloss.a ${D}/${libdir}/libxil.a
-}
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-standalone/newlib/newlib_3.0.0.bbappend b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/newlib/newlib_3.0.0.bbappend
deleted file mode 100644
index e5249ab0d..000000000
--- a/meta-xilinx/meta-xilinx-standalone/recipes-standalone/newlib/newlib_3.0.0.bbappend
+++ /dev/null
@@ -1,4 +0,0 @@
-do_configure_prepend_microblaze() {
- # hack for microblaze, which needs xilinx.ld to literally do any linking (its hard coded in its LINK_SPEC)
- export CC="${CC} -L${S}/libgloss/microblaze"
-}
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-standalone/plm/plm-standalone_git.bb b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/plm/plm-standalone_git.bb
new file mode 100644
index 000000000..25988eb9e
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/plm/plm-standalone_git.bb
@@ -0,0 +1,32 @@
+inherit esw deploy
+
+ESW_COMPONENT_SRC = "/lib/sw_apps/versal_plm/src/"
+
+DEPENDS += "xilstandalone xiltimer xilffs xilpdi xilplmi xilloader xilpm xilsecure xilsem"
+
+do_install() {
+ install -d ${D}/${base_libdir}/firmware
+ # Note that we have to make the ELF executable for it to be stripped
+ install -m 0755 ${B}/versal_plm* ${D}/${base_libdir}/firmware
+}
+
+PLM_FIRMWARE_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+PLM_FIRMWARE_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+
+ # Not a huge fan of deploying from package but we want the stripped elf to be deployed.
+ # We could, technically create another task that runs after do_install that strips it but it
+ # seems unnecessarily convoluted, unless there's an objection on performing do_install we
+ # should do it this way since it easier to keep up with changes in oe-core.
+
+ install -Dm 0644 ${WORKDIR}/package/${base_libdir}/firmware/versal_plm.elf ${DEPLOYDIR}/${PLM_FIRMWARE_BASE_NAME}.elf
+ ln -sf ${PLM_FIRMWARE_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${WORKDIR}/package/${base_libdir}/firmware/versal_plm.elf ${WORKDIR}/package/${base_libdir}/firmware/versal_plm.bin
+ install -m 0644 ${WORKDIR}/package/${base_libdir}/firmware/versal_plm.bin ${DEPLOYDIR}/${PLM_FIRMWARE_BASE_NAME}.bin
+ ln -sf ${PLM_FIRMWARE_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_package
+
+FILES_${PN} = "${base_libdir}/firmware/plm*"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-standalone/plm/plm_2020.1.bb b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/plm/plm_2020.1.bb
new file mode 100644
index 000000000..c5a68ef17
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/plm/plm_2020.1.bb
@@ -0,0 +1,69 @@
+inherit deploy
+
+LICENSE = "Proprietary"
+LIC_FILES_CHKSUM = "file://../../../../license.txt;md5=39ab6ab638f4d1836ba994ec6852de94"
+
+SRCREV = "e8db5fb118229fdc621e0ec7848641a23bf60998"
+PV = "${XILINX_RELEASE_VERSION}+git${SRCPV}"
+
+SRC_URI = "git://github.com/Xilinx/embeddedsw.git;protocol=https;nobranch=1"
+
+COMPATIBLE_HOST = "microblaze.*-elf"
+COMPATIBLE_MACHINE = "versal-mb"
+
+
+S = "${WORKDIR}/git/lib/sw_apps/versal_plm/src"
+
+# The makefile does not handle parallelization
+PARALLEL_MAKE = ""
+
+do_configure() {
+ # manually do the copy_bsp step first, so as to be able to fix up use of
+ # mb-* commands
+ ${S}/../misc/copy_bsp.sh
+}
+
+COMPILER = "${CC}"
+COMPILER_FLAGS = "-O2 -c"
+EXTRA_COMPILER_FLAGS = "-g -Wall -Wextra -Os -flto -ffat-lto-objects"
+ARCHIVER = "${AR}"
+
+BSP_DIR ?= "${S}/../misc/versal_plm_bsp"
+BSP_TARGETS_DIR ?= "${BSP_DIR}/psv_pmc_0/libsrc"
+
+def bsp_make_vars(d):
+ s = ["COMPILER", "CC", "COMPILER_FLAGS", "EXTRA_COMPILER_FLAGS", "ARCHIVER", "AR", "AS"]
+ return " ".join(["\"%s=%s\"" % (v, d.getVar(v)) for v in s])
+
+do_compile() {
+ # the Makefile in ${S}/../misc/Makefile, does not handle CC, AR, AS, etc
+ # properly. So do its job manually. Preparing the includes first, then libs.
+ for i in $(ls ${BSP_TARGETS_DIR}/*/src/Makefile); do
+ oe_runmake -C $(dirname $i) -s include ${@bsp_make_vars(d)}
+ done
+ for i in $(ls ${BSP_TARGETS_DIR}/*/src/Makefile); do
+ oe_runmake -C $(dirname $i) -s libs ${@bsp_make_vars(d)}
+ done
+
+ # --build-id=none is required due to linker script not defining a location for it.
+ # Again, recipe-systoot include is necessary
+ oe_runmake CC="${CC}" CC_FLAGS="-MMD -MP -Wl,--build-id=none -I${STAGING_DIR_TARGET}/usr/include"
+}
+
+do_install() {
+ :
+}
+
+PLM_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+PLM_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+ install -Dm 0644 ${B}/plm.elf ${DEPLOYDIR}/${PLM_BASE_NAME}.elf
+ ln -sf ${PLM_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${B}/plm.elf ${B}/plm.bin
+ install -m 0644 ${B}/plm.bin ${DEPLOYDIR}/${PLM_BASE_NAME}.bin
+ ln -sf ${PLM_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_install
+
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmware_2019.1.bb b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmware_2020.1.bb
index 030de0540..3ed9c55a6 100644
--- a/meta-xilinx/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmware_2019.1.bb
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/pmu-firmware/pmu-firmware_2020.1.bb
@@ -1,18 +1,15 @@
inherit deploy
LICENSE = "Proprietary"
-LIC_FILES_CHKSUM = "file://../../../../license.txt;md5=e9b6d01d45faccfbf05d8caea53f0a35"
+LIC_FILES_CHKSUM = "file://../../../../license.txt;md5=39ab6ab638f4d1836ba994ec6852de94"
-XILINX_RELEASE_VERSION = "v2019.1"
-SRCREV = "26c14d9861010a0e3a55c73fb79efdb816eb42ca"
+SRCREV = "e8db5fb118229fdc621e0ec7848641a23bf60998"
PV = "${XILINX_RELEASE_VERSION}+git${SRCPV}"
SRC_URI = "git://github.com/Xilinx/embeddedsw.git;protocol=https;nobranch=1"
COMPATIBLE_HOST = "microblaze.*-elf"
-COMPATIBLE_MACHINE = "^$"
-COMPATIBLE_MACHINE_zynqmp-pmu = "zynqmp-pmu"
-
+COMPATIBLE_MACHINE = "microblaze-pmu"
S = "${WORKDIR}/git/lib/sw_apps/zynqmp_pmufw/src"
diff --git a/meta-xilinx/meta-xilinx-standalone/recipes-standalone/psm-firmware/psm-firmware_2020.1.bb b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/psm-firmware/psm-firmware_2020.1.bb
new file mode 100644
index 000000000..cd346b123
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/recipes-standalone/psm-firmware/psm-firmware_2020.1.bb
@@ -0,0 +1,69 @@
+inherit deploy
+
+LICENSE = "Proprietary"
+LIC_FILES_CHKSUM = "file://../../../../license.txt;md5=39ab6ab638f4d1836ba994ec6852de94"
+
+SRCREV = "e8db5fb118229fdc621e0ec7848641a23bf60998"
+PV = "${XILINX_RELEASE_VERSION}+git${SRCPV}"
+
+SRC_URI = "git://github.com/Xilinx/embeddedsw.git;protocol=https;nobranch=1"
+
+COMPATIBLE_HOST = "microblaze.*-elf"
+COMPATIBLE_MACHINE = "versal-mb"
+
+
+S = "${WORKDIR}/git/lib/sw_apps/versal_psmfw/src"
+
+# The makefile does not handle parallelization
+PARALLEL_MAKE = ""
+
+do_configure() {
+ # manually do the copy_bsp step first, so as to be able to fix up use of
+ # mb-* commands
+ ${S}/../misc/copy_bsp.sh
+}
+
+COMPILER = "${CC}"
+COMPILER_FLAGS = "-O2 -c"
+EXTRA_COMPILER_FLAGS = "-g -Wall -Wextra -Os -flto -ffat-lto-objects"
+ARCHIVER = "${AR}"
+
+BSP_DIR ?= "${S}/../misc/versal_psmfw_bsp"
+BSP_TARGETS_DIR ?= "${BSP_DIR}/psv_psm_0/libsrc"
+
+def bsp_make_vars(d):
+ s = ["COMPILER", "CC", "COMPILER_FLAGS", "EXTRA_COMPILER_FLAGS", "ARCHIVER", "AR", "AS"]
+ return " ".join(["\"%s=%s\"" % (v, d.getVar(v)) for v in s])
+
+do_compile() {
+ # the Makefile in ${S}/../misc/Makefile, does not handle CC, AR, AS, etc
+ # properly. So do its job manually. Preparing the includes first, then libs.
+ for i in $(ls ${BSP_TARGETS_DIR}/*/src/Makefile); do
+ oe_runmake -C $(dirname $i) -s include ${@bsp_make_vars(d)}
+ done
+ for i in $(ls ${BSP_TARGETS_DIR}/*/src/Makefile); do
+ oe_runmake -C $(dirname $i) -s libs ${@bsp_make_vars(d)}
+ done
+
+ # --build-id=none is required due to linker script not defining a location for it.
+ # Again, recipe-systoot include is necessary
+ oe_runmake CC="${CC}" CC_FLAGS="-MMD -MP -Wl,--build-id=none -I${STAGING_DIR_TARGET}/usr/include"
+}
+
+do_install() {
+ :
+}
+
+PSM_FIRMWARE_BASE_NAME ?= "${BPN}-${PKGE}-${PKGV}-${PKGR}-${MACHINE}-${DATETIME}"
+PSM_FIRMWARE_BASE_NAME[vardepsexclude] = "DATETIME"
+
+do_deploy() {
+ install -Dm 0644 ${B}/psmfw.elf ${DEPLOYDIR}/${PSM_FIRMWARE_BASE_NAME}.elf
+ ln -sf ${PSM_FIRMWARE_BASE_NAME}.elf ${DEPLOYDIR}/${BPN}-${MACHINE}.elf
+ ${OBJCOPY} -O binary ${B}/psmfw.elf ${B}/psmfw.bin
+ install -m 0644 ${B}/psmfw.bin ${DEPLOYDIR}/${PSM_FIRMWARE_BASE_NAME}.bin
+ ln -sf ${PSM_FIRMWARE_BASE_NAME}.bin ${DEPLOYDIR}/${BPN}-${MACHINE}.bin
+}
+
+addtask deploy before do_build after do_install
+
diff --git a/meta-xilinx/meta-xilinx-standalone/scripts/microblaze_dtb.py b/meta-xilinx/meta-xilinx-standalone/scripts/microblaze_dtb.py
new file mode 100644
index 000000000..aba724974
--- /dev/null
+++ b/meta-xilinx/meta-xilinx-standalone/scripts/microblaze_dtb.py
@@ -0,0 +1,174 @@
+import argparse
+import libfdt
+import os
+import sys
+
+# Format: FEATURE : (dtb property, condition_operator, condition_value)
+# If dtb property is None, then the item is always on
+#
+# If the condition_operator is None, then enable if it exists for existance
+#
+# If the condition_operator is '!', and condition_value is None then enable if
+# if is not defined
+#
+# Otherwise 'condition' and value are evaluated by type.
+
+microblaze_tune_features = {
+ 'microblaze' : (None, None, None),
+ 'bigendian': ('xlnx,endianness', '!', 1),
+ '64-bit' : ('xlnx,data-size', '=', 64),
+ 'barrel-shift': ('xlnx,use-barrel', '=', 1),
+ 'pattern-compare': ('xlnx,use-pcmp-instr', '=', 1),
+ 'reorder' : ('xlnx,use-reorder-instr', '!', 0),
+ 'frequency-optimized': ('xlnx,area-optimized', '=', 2),
+ 'multiply-low': ('xlnx,use-hw-mul', '=', 1),
+ 'multiply-high': ('xlnx,use-hw-mul', '=', 2),
+ 'divide-high': ('xlnx,use-div', '=', 1),
+ 'fpu-soft': ('xlnx,use-fpu', '!', [1,2]),
+ 'fpu-hard': ('xlnx,use-fpu', '=', 1),
+ 'fpu-hard-extended':('xlnx,use-fpu', '=', 2),
+}
+
+def processProperties(fdt, node):
+ TUNE_FEATURES = []
+
+ for feature in microblaze_tune_features:
+ (property, cop, cvalue) = microblaze_tune_features[feature]
+
+ if not property:
+ TUNE_FEATURES.append(feature)
+
+ # Special processing to get the version
+ if feature == "microblaze":
+ ver = microblazeVersion(fdt, node)
+ if ver:
+ TUNE_FEATURES.append(ver)
+ continue
+
+ prop_value = fdt.getprop( node, property, libfdt.QUIET_NOTFOUND)
+
+ if not prop_value or prop_value == -1:
+ if cop == '!':
+ if not cvalue:
+ TUNE_FEATURES.append(ver)
+ continue
+ continue
+
+ # If no operator
+ if not cop or (cop == '=' and not cvalue):
+ TUNE_FEATURES.append(feature)
+ continue
+
+ ctype = type(cvalue)
+ if ctype == type(list()):
+ val_list = cvalue
+ else:
+ val_list = [ cvalue ]
+
+ result = False
+ for value in val_list:
+ ctype = type(value)
+ if ctype == type(int()):
+ val = prop_value.as_uint32()
+ else:
+ raise TypeError('Unknown type %s' % ctype)
+
+ if cop == '!':
+ if value != val:
+ result = True
+ else:
+ result = False
+ continue
+
+ if cop == '=':
+ if value == val:
+ result = True
+ else:
+ result = False
+ continue
+
+ if result == True:
+ TUNE_FEATURES.append(feature)
+
+ return TUNE_FEATURES
+
+def microblazeVersion(fdt, node):
+ version = None
+
+ val = fdt.getprop( node, 'model', libfdt.QUIET_NOTFOUND)
+
+ if val and val != -1:
+ val = fdt.getprop( node, 'model' ).as_str()
+ version = val[val.find('microblaze,') + 11:]
+
+ if version.startswith('8'):
+ # Strip 8.xx.y, to just 8.xx
+ v = version.split('.')
+ version = '.'.join(v[0:2])
+
+ version = 'v' + version
+
+ return version
+
+def MicroblazeConfig(dtbfile, out):
+ fdt = libfdt.Fdt(open(dtbfile, mode='rb').read())
+
+ cpu = -1
+ while (True):
+ cpu = cpu + 1
+ try:
+ node = fdt.path_offset('/cpus/cpu@%d' % cpu)
+
+ try:
+ prop = fdt.getprop( node, 'compatible' )
+
+ prop_val = prop[:-1].decode('utf-8').split('\x00')
+
+ microblaze = False
+ for val in prop_val:
+ if "microblaze" in val:
+ microblaze = True
+ break
+
+ if not microblaze:
+ continue
+
+ # Construct TUNE_FEATURE here
+ TUNE_FEATURES = processProperties(fdt, node)
+
+ out.write('AVAILTUNES += "microblaze-cpu%s"\n' % (cpu))
+ out.write('TUNE_FEATURES_tune-microblaze-cpu%s = "%s"\n' % (cpu, ' '.join(TUNE_FEATURES)))
+ out.write('PACKAGE_EXTRA_ARCHS_tune-microblaze-cpu%s = "${TUNE_PKGARCH}"\n' % (cpu))
+
+ except Exception as e:
+ sys.stderr.write("Exception looking at properties: %s\n" % e)
+
+ continue
+
+ except Exception as e:
+ # CPUs SHOULD be consecutive w/o gaps, so no more to search
+ break
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(description='Generate MicroBlaze TUNE_FEATURES')
+
+ parser.add_argument('-d', '--dtb-file', action='store',
+ help='DTB file to process')
+
+ parser.add_argument('-o', '--output', action='store',
+ help='Output file to store TUNE_FEATURE settings')
+
+ args = parser.parse_args()
+
+ if not args.dtb_file:
+ sys.stderr.write('ERROR: You must specify a DTB_FILE to process.\n')
+ sys.exit(1)
+
+ outputf = sys.stdout
+ if args.output:
+ if os.path.exists(args.output):
+ sys.stderr.write('ERROR: The output file "%s" exists!\n' % args.output)
+ sys.exit(1)
+ outputf = open(args.output, 'w')
+
+ MicroblazeConfig(args.dtb_file, outputf)