[meta-xilinx] [FIDO PATCH] tcmode-external-xilinx: Support aarch64 toolchain
Nathan Rossi
nathan at nathanrossi.com
Wed Nov 4 15:36:14 PST 2015
On Thu, Nov 5, 2015 at 7:40 AM, Manjukumar Matha
<manjukumar.harthikote-matha at xilinx.com> wrote:
> Support aarch64 toolchain required for Zynq Ultrascale Plus family of
> processors
Couple of questions regarding the toolchain, is this the Linaro
toolchain redistributed by Xilinx? Also is this toolchain available
within the Vivado/SDK tools download (the current one v2015.3). Or do
you know the exact version of the linaro toolchain? (see releases
here: http://releases.linaro.org/)
I am going to assume that the toolchain is the Linaro one (since that
is what I last heard Xilinx was going to ship/support). The biggest
issue with this toolchain is that it is a multiarch toolchain (the
/lib/<tuple>/ sort of multiarch) and thus it's libc/sys-root is not
directly compatible with what OE/Yocto expects. In this case I think
that using the meta-linaro-toolchain layer for enabling this toolchain
is the better solution, since it handles modifying the shared objects
and dynamic linker to handle the non-multiarch sysroot.
http://git.linaro.org/openembedded/meta-linaro.git/blob/master:/meta-linaro-toolchain/recipes-devtools/external-linaro-toolchain/external-linaro-toolchain.bb
Also on a related note I was planning on deprecating and or removing
the "external-xilinx-toolchain" in favour of using existing solutions
like the external-linaro-toolchain (for AArch64/ZynqMP) and the
meta-sourcery's external-sourcery setup (for the Xilinx ARMv7a
toolchain), whilst dropping the MicroBlaze external toolchain support
(in favour of the OE built toolchain). But I would like some feedback
first, though I would like to look into doing it once 'jethro' is
branched. I will make sure to send out an email with full details for
that topic though.
Regards,
Nathan
>
> Signed-off-by: Manjukumar Matha <manjukumar.harthikote-matha at xilinx.com>
> ---
> conf/distro/include/tcmode-external-xilinx.inc | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/conf/distro/include/tcmode-external-xilinx.inc b/conf/distro/include/tcmode-external-xilinx.inc
> index 45ad240..cd86a71 100644
> --- a/conf/distro/include/tcmode-external-xilinx.inc
> +++ b/conf/distro/include/tcmode-external-xilinx.inc
> @@ -5,6 +5,7 @@
> TOOLCHAIN_PATH_ADD = "${EXTERNAL_TOOLCHAIN}/bin:"
> PATH =. "${TOOLCHAIN_PATH_ADD}"
>
> +CSL_TARGET_SYS_aarch64 ?= "aarch64-linux-gnu"
> CSL_TARGET_SYS_armv7a ?= "arm-xilinx-linux-gnueabi"
> CSL_TARGET_SYS_microblazeel ?= "microblazeel-xilinx-linux-gnu"
> CSL_TARGET_SYS = "${TARGET_SYS}"
> @@ -43,6 +44,10 @@ TARGET_CC_ARCH_append += "${TARGET_LINK_HASH_STYLE}"
> EXTERNAL_TOOLCHAIN_SYSROOT_armv7a ??= "${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc"
> EXTERNAL_TOOLCHAIN_DBGROOT_armv7a ??= ""
>
> +# Default sysroot is inside the Xilinx ARM v8-A toolchain in the '<CSL_TARGET_SYS>/libc' (no debug-root)
> +EXTERNAL_TOOLCHAIN_SYSROOT_aarch64 ??= "${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/libc"
> +EXTERNAL_TOOLCHAIN_DBGROOT_aarch64 ??= "${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/debug-root"
> +
> # Default sysroot is inside the Xilinx MicroBlaze toolchain in the '<CSL_TARGET_SYS>/sys-root'
> EXTERNAL_TOOLCHAIN_SYSROOT_microblaze ??= "${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/sys-root"
> EXTERNAL_TOOLCHAIN_DBGROOT_microblaze ??= "${EXTERNAL_TOOLCHAIN}/${CSL_TARGET_SYS}/debug-root"
> --
> 2.1.4
>
> --
> _______________________________________________
> meta-xilinx mailing list
> meta-xilinx at yoctoproject.org
> https://lists.yoctoproject.org/listinfo/meta-xilinx
More information about the meta-xilinx
mailing list