summaryrefslogtreecommitdiffstats
path: root/meta-xilinx-standalone
Commit message (Collapse)AuthorAgeFilesLines
...
* pmufw: recipes for pmufw app generation in decoupled flowAppana Durga Kedareswara rao2020-02-277-2/+204
| | | | Signed-off-by: Appana Durga Kedareswara rao <appana.durga.rao@xilinx.com>
* libxil: Add recipes for libxil and xilstandaloneAppana Durga Kedareswara rao2020-02-272-0/+91
| | | | | | | | | | | Add both recipes which use the cmake class for basic funcitonality. Append the required arguments to generate the correct toolchain file And use AUTOREV while in development for easier adoption. Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com> Signed-off-by: Appana Durga Kedareswara rao <appana.durga.rao@xilinx.com>
* newlib: Adjust configuration for standalone to allow BSP libraryMark Hatle2020-02-132-0/+14
| | | | | | | | | | | | | | | Both libgloss and newlib require the same arguents to be passed in. So keep the two files in sync with each other. --disable-newlib-supplied-syscalls This configuration argument tells newlib to NOT provide builtin syscalls, which allows the BSP library to provide them. Note linking to a BSP library will require a custom GCC spec file when linking. Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
* Adjust the microblaze standalone toolchain to match vitis expectations.Mark Hatle2020-02-104-0/+165
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable the following multilibs: . le bs p m fpd m/fpd p/m p/fpd p/m/fpd bs/p bs/m bs/fpd bs/m/fpd bs/p/m bs/p/fpd bs/p/m/fpd le/m64 le/bs le/p le/m le/fpd le/m/fpd le/p/m le/p/fpd le/p/m/fpd le/bs/p le/bs/m le/bs/fpd le/bs/m/fpd le/bs/p/m le/bs/p/fpd le/bs/p/m/fpd le/m64/bs le/m64/p le/m64/m le/m64/fpd le/m64/m/fpd le/m64/p/m le/m64/p/fpd le/m64/p/m/fpd le/m64/bs/p le/m64/bs/m le/m64/bs/fpd le/m64/bs/m/fpd le/m64/bs/p/m le/m64/bs/p/fpd le/m64/bs/p/m/fpd Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
* xilinx-standalone.conf: Adding qemu to TOOLCHAIN_HOST_TASKJaewon Lee2020-02-101-0/+2
| | | | | | | | | | | | | When running gcc built for xilinx-standalone using mingw sdk machine, it would throw an error saying the winpthread dll was missing. this is because in tclibc-newlib, TOOLCHAIN_HOST_TASK was being overwritten and omitting nativesdk-packagegroup-sdk-host which pulled in the appropriate package nativesdk-mingw-w64-winpthreads. Manually adding the following to TOOLCHAIN_HOST_TASK to bypass this issue: nativesdk-qemu-xilinx Signed-off-by: Jaewon Lee <jaewon.lee@xilinx.com> Signed-off-by: Alejandro Enedino Hernandez Samaniegoi <alejandr@xilinx.com>
* Fix arm cortex r/m profilesMark Hatle2020-02-052-20/+8
| | | | | | | | | | | As part of the merge of the code bases, changes were introduced that changed the way the cortexr5 was defined. To sync this between the baremetal compilation and the baremetal toolchain compilation we create a new armrm tune file, define a new tune feature of 'armrm', define 'armrm' as a new machine override based on the feature 'armrm', and move the cortexr5 tuning to a common file. Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
* Limit multilib toolchains to symlinks to the main toolchainMark Hatle2020-01-312-0/+39
| | | | | | | | Multiple copies of the same binary toolchain will not help with anything, so limit use to a single (primary) lib toolchain, and then new symlinks to those toolchains to continue to enable the environment files. Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
* gcc-runtime: Fix C++ multilib headersMark Hatle2020-01-311-0/+19
| | | | | | | | | The C++ headers are slightly different for different multilibs. The Yocto Project name (canonical arch) is different then the gcc multilib directory name. Put in code that will syncronize these two items, allows C++ support to function properly, avoiding conflicts in the process. Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
* Enable multilib baremetal toolchainsMark Hatle2020-01-3110-25/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | Distro Changes: When building a multilib, we need to disable configsite cache. Otherwise the system will fail to generate the SDK as there are no configsite entries due to newlib based multilibs. Recipe Changes: gcc - globally disable multilib configuration - Disable Linux specific configurations (EXTRACONFFUNCS) gcc-cross-canadian - enable multilib on a recipe specific basis libgcc - add a noop override to do_multilib_install to avoid Linux specific multilib processing newlib - arm/v6+m/nofp and arm/v8-m.base/nofp do not have newlib trap implementations. libgloss contains these, workaround by disabling builtin trap syscall handler. - misc workarounds for multilib installs libgloss - Allow MLPREFIX for newlib dependencies meta-toolchain - adjust to install only the items we want/need packagegroup-newlib-standalone-sdk-target - new pkggroup for the custom baremetal SDK to select the right set of packages Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
* meta-xilinx-bsp: Unify machine confsAlejandro Enedino Hernandez Samaniego2020-01-307-101/+0
| | | | | | | | Unify the meta-xilinx-bsp and meta-xilinx-standalone layers by moving the machine confs to the BSP layer and keeping the standalone layer as a DISTRO layer Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* cortexa72: To keep up with a standard rename cortexa72 to add its SOC_FAMILY ↵Alejandro Enedino Hernandez Samaniego2020-01-301-0/+0
| | | | | | to its name Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* cortexr5: Change overrides to reflect machine name changes from cortexr5 to ↵Alejandro Enedino Hernandez Samaniego2020-01-302-4/+17
| | | | | | zynqmp and versal variants Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* Microblaze-pmu: Change overrides to reflect machine name changes from ↵Alejandro Enedino Hernandez Samaniego2020-01-302-2/+2
| | | | | | zynqmp-pmu to microblaze-pmu Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* Create machines that use SOC_FAMILYAlejandro Enedino Hernandez Samaniego2020-01-306-2/+33
| | | | Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* layer.conf: Include recipe files from a pattern with no directory requiredAlejandro Enedino Hernandez Samaniego2020-01-301-1/+4
| | | | | | | | Due to the large amount of recipes required from the ESW repo, include a pattern to parse recipes without requiring a directory per recipe Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* gcc-runtime: Move gcc-runtime to GCCs directoryAlejandro Enedino Hernandez Samaniego2020-01-301-0/+0
| | | | Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* meta-xilinx-standalone: Restructure layer properly, newlib belongs to ↵Alejandro Enedino Hernandez Samaniego2020-01-3013-0/+0
| | | | | | recipes-bsp Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* newlib: Keep version numbers on bbappendsAlejandro Enedino Hernandez Samaniego2020-01-302-0/+0
| | | | | | | | Keep the version numbers in case the version changes, so do_patch fails and forces us to revise the patches and make sure they are still required Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* meta-xilinx-standalone: Restructure layer properly, gcc and binutils belong ↵Alejandro Enedino Hernandez Samaniego2020-01-306-0/+0
| | | | | | on recipes-devtools Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* gcc-cross-canadian: Fix issue being unable to find stdio.hMark Hatle2020-01-281-0/+10
| | | | | | | | | An error in commit: 7e99d6d01b7b685048b35ac77ea6938ab2708097 resulted in dropping the section that restored the --with-sysroot workaround. This is required for the standard lib and include patches to be defined by the toolchain. Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
* gcc: Remove cortexa53 errata fixesMark Hatle2020-01-242-4/+0
| | | | | | | The Xilinx errata documents does not list the parts as affected by these errata, so remove them in order to generate better code. Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
* binutils/gcc: Refactor the oeconfMark Hatle2020-01-247-282/+88
| | | | | | | | | | | | | | | The result of the refactoring is equivalent to before the changes, with the following changes: - cortexa72 has been removed - cortexa53 has been replaced with aarch64 - zc702-zynq7 has been replaced with arm - zynqmp-pmu has been replaced with microblaze In order to avoid a multilib cflag collision on arm, clear the TUNE_CCARGS on arm (and cortexr5). Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
* gcc-runtime: Make the baremetal changes specific to class-targetMark Hatle2020-01-241-7/+8
| | | | Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
* gcc-xilinx-standalone: Enable multilib builds for baremetal microblazeAlejandro Enedino Hernandez Samaniego2020-01-241-1/+0
| | | | Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* gcc-runtime: Set correct overrides now that the build has been fixed in oe-coreAlejandro Enedino Hernandez Samaniego2020-01-241-9/+13
| | | | Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* Revert "binutils/gcc: Refactor the oeconf"Mark Hatle2020-01-246-14/+167
| | | | This reverts commit a45b1acf46f01cc5eb3ae130ab61766ed635340e.
* binutils/gcc: Refactor the oeconfMark Hatle2020-01-166-167/+14
| | | | | | | | | The special arguments do not appear to be needed, and using the standard configuration arguments will more easily enable other components as well. Note, additional refactoring will be needed, only aarch64 has been verified. Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
* gcc-runtime: Enable bulding libsdtc++ for baremetal applicationsAlejandro Enedino Hernandez Samaniego2020-01-161-0/+24
| | | | Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* cortexa*.conf: Change arch-armv8.inc to arch-armv8a.incJaewon Lee2020-01-152-3/+3
| | | | | | Changing arch-armv8.inc to arch-armv8a.inc to match upstream name change Signed-off-by: Jaewon Lee <jaewon.lee@xilinx.com>
* newlib: Adding xilinx specific patches on top of newlib/libgloss 3.1.0Jaewon Lee2020-01-1513-0/+2584
| | | | | | | Adding necessary patches on top of upstream newlib and libgloss 3.1.0 Signed-off-by: Nagaraju Mekala <nmekala@xilix.com> Signed-off-by: Jaewon Lee <jaewon.lee@xilinx.com>
* Update XILINX_RELEASE_VERSION to v2020.1Varalaxmi Bingi2020-01-134-4/+4
| | | | | | | Update XILINX_RELEASE_VERSION to v2020.1 Signed-off-by: Varalaxmi Bingi <varalaxmi.bingi@xilinx.com> Signed-off-by: Sai Hari Chandana Kalluri <chandana.kalluri@xilinx.com>
* gcc-cross-canadian_%.bbappend:temporary hack to build gcc cross canadianJaewon Lee2020-01-091-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | This is a TEMPORARY HACK to build gcc-cross-canadian toolchain for the xilinx-standalone distro. xilinx-standalone.conf will set TCLIB as newlib which will pull in tclibc-newlib.inc which sets TARGET_OS to eabi for arm and elf for everything else. In gcc-cross-canadian.inc (upstream) there is a _remove('--with-sysroot=/not/exist') for TARGET_OS overrides(elf and eabi) which fixes baremetal toolchain builds by preventing the compiler from looking in nonexistent sysroot directories e.g. https://github.com/riscv/meta-riscv/issues/117 But that flag is needed when building for newlib as that is what will specify the path in the arch specific sysroots to look for the header files that were generated. Without setting --with-sysroot the following error would occur: fatal error: stdio.h: No such file or directory 1 | #include <stdio.h> Signed-off-by: Jaewon Lee <jaewon.lee@xilinx.com> Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* Upgrade recipes to 2020.1Sai Hari Chandana Kalluri2019-12-093-0/+0
| | | | | | Upgrade u-boot, qemu, linux, atf to 2020.1 Signed-off-by: Sai Hari Chandana Kalluri <chandana.kalluri@xilinx.com>
* gcc: Add multilib-list=aprofile configure option for cortex A9Alejandro Enedino Hernandez Samaniego2019-12-091-0/+1
| | | | | | Update configure options to be in sync with the SDK Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* gcc: Separate binutils optionsAlejandro Enedino Hernandez Samaniego2019-12-096-77/+97
| | | | | | binutils options should not be tied to the gcc bbappends Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* gcc-cross-microblazeel: disable multilibAlejandro Enedino Hernandez Samaniego2019-12-091-0/+1
| | | | | | multilib builds are broken on microblaze, disable them Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* toolchain: add cortex-A9 options for gcc and binutilsAlejandro Enedino Hernandez Samaniego2019-12-093-0/+41
| | | | Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* xilinx-standalone: Reorganize toolchain configure optionsAlejandro Enedino Hernandez Samaniego2019-12-097-161/+194
| | | | | | | | | | | | Previously the GCC configure options per MACHINE were inside the MACHINE.confs, this was wrong since the BSPs are contaminated by the DISTRO options and it should be the other way around. Avoid this contamination by using MACHINE OVERRIDES along with DISTRO OVERRIDES to get the required gcc and binutils configure options by the Xilinx SDK Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* xilinx-standalone: Add staticdev packages for newlib and libgloss to ↵Alejandro Enedino Hernandez Samaniego2019-12-091-0/+3
| | | | | | | | | | | dependencies For the cross canadian toolchain we need to have both the libc.a and libgloss.a. We add them to the LIBC_DEPENDENCIES which are wired in core to be added to the sdk via the TOOLCHAIN_TARGET_TASK variable Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* xilinx-standalone: switch override and appendAlejandro Enedino Hernandez Samaniego2019-12-094-8/+12
| | | | | | Instead of overriding the append, we need to append the override. Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* Adds MACHINE.conf containing default tune for Cortex A72Alejandro Enedino Hernandez Samaniego2019-12-091-0/+54
| | | | Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* toolchain: Provide specific configuration for cross(-canadian) gcc and binutilsAlejandro Enedino Hernandez Samaniego2019-12-096-14/+149
| | | | | | | | | | | | | | | Since we need specific configuration for the SDK toolchain, we need to override the configuration coming from oe-core, this configuration needs to be per MACHINE. Use GCC_CONFIGURE_COMMON_XILINX_STANDALONE to define the default config shared amongst MACHINES, and use a GCC_CONFIGURE_<MACHINE> variable to append to this common configuration options on each MACHINE that we want. Use the same procedure for binutils Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* Adds MACHINE.conf containing default tune for Cortex A53Alejandro Enedino Hernandez Samaniego2019-12-091-0/+14
| | | | Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* Adds MACHINE.conf containing default tune for Cortex R5Alejandro Enedino Hernandez Samaniego2019-12-091-0/+13
| | | | Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* gcc-cross: Dont override EXTRA_OECONF unless DISTRO is xilinx-standaloneAlejandro Enedino Hernandez Samaniego2019-12-091-1/+1
| | | | | | | | | For the xilinx-standalone DISTRO, we need to keep some of the configure options that we lose when setting TCLIBC=newlib, although this should only happen when we are selecting xilnx-standalone as the DISTRO, otherwise, we would be overriding the configure options for GCC when this bbappend is parsed Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>
* Move recipes to use _%.bb instead of versionSai Hari Chandana Kalluri2019-12-092-0/+0
| | | | | | | The changes in these recipes are version independent. Hence move them to _%.bb Signed-off-by: Sai Hari Chandana Kalluri <chandana.kalluri@xilinx.com>
* versal-mb.conf: Add machine configuration to support standalone buildSai Hari Chandana Kalluri2019-12-091-0/+11
| | | | | | | | for versal components like plm, psm-firmware versal-mb.conf supports versal SOC standalone component builds such as plm, psm-firmware. It provides required configuration to use microblaze toolchain needed for the builds.
* psm-firmware_2019.2.bb: Create psm-firmware recipe for standalone buildSai Hari Chandana Kalluri2019-12-091-0/+71
| | | | | | | | Create psm-firmware recipe for standalone build. PSM is a PS Management unit responsible for controlling the power islands, error processing and other control functions within the PS. Signed-off-by: Sai Hari Chandana Kalluri <chandana.kalluri@xilinx.com>
* plm_2019.2.bb: recipe to build plm standaloneSai Hari Chandana Kalluri2019-12-091-0/+71
| | | | | | | | Add recipe to build plm as standalone component. plm is platform loader and manager for versal devices.It performs boot and configuration of the Versal ACAP device. Signed-off-by: Sai Hari Chandana Kalluri <chandana.kalluri@xilinx.com>
* newlib: export CC_FOR_TARGET as CCAlejandro Enedino Hernandez Samaniego2019-12-091-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Newlibs Makefiles use a variable CC_FOR_TARGET to build libraries for the TARGET machine (as opposed to CC_FOR_BUILD). We pass CC on our compile function, which is normally use to build, although in this case, the configure script is trimming CC and using simply gcc for the target machine, basically taking out the TUNE variables we pass in CC as well, such as march, mfloat-abi and such. This causes errors when building applications since CC will try to use hard floating point for example whereas the libc.a from newlib will contain libraries built with the defaults which could be soft floating point for example. e.g.: $ ${CC} a.c real-ld: error: a.out uses VFP register arguments, /usr/lib/libg.a(lib_a-stdio.o) does not. Analizing the object files we can see that one of them uses soft (library) and the other one uses hard floating point (program): $ readelf -A a.out | grep VFP Tag_ABI_VFP_args: VFP registers $ readelf -A usr/lib/libc.a | grep VFP Hence why the linker complains. Pass CC_FOR_TARGET with the contents of CC to override the trimming from the configure script and build newlib with the correct tune. Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandr@xilinx.com>