diff options
author | Andrew Geissler <geissonator@yahoo.com> | 2020-06-27 08:00:16 +0300 |
---|---|---|
committer | Andrew Geissler <geissonator@yahoo.com> | 2020-06-27 08:12:57 +0300 |
commit | 84ad7c5b112283d1ccb14744025a2d2ba986412d (patch) | |
tree | ce7e2e442492f852445c40f47e506979a7bc0ee3 /meta-xilinx/meta-xilinx-standalone | |
parent | 19902a4d12bea3dbebf9974913422c080c199935 (diff) | |
download | openbmc-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')
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) |