Hi

I’m using v2.5.0-beta.1 with Ubuntu 20.04.6LTS. 

 

I thought from the install guide that Vivado/Vitis/Petalinux 2021.2 was a supported combination.  I’d previously tried v2.4.6 with Ubuntu 18.04 and 2019.2 Xilinx tools but had an issue with “ocpiadmin install platform xsim” and then subsequently saw some reports of compatibility issues at Ubuntu 18.04/Vivado 2019.2 combination.

 

So, I’ve subsequently tried 2021.2; xsim installs without error, but in the v2.5.0-beta.1 there’s no folder ./projects/core/rcc/platforms/xilinx21_2_aarch64.  I tried creating by looking at the differences between xilinx17_2_aarch64 and xilinx19_2_aarch64, (so limited renaming from 19_2 to 21_2, and removal of the alternative git tag in the 19_2).  After going round a loop of re-running “make cleaneverything” and “./scripts/install-opencpi.h” then trying to “ocpiadmin install platform xilinx21_2_aarch64” I get the process eventually fails in ImportSDKartifacts.sh.

 

The platform is nonetheless visible with “ocpidev show rcc platforms”.

 

 

 

The last lines of the build are:-

make[1]: Leaving directory '/tools/Xilinx/git/linux-xlnx'

============================================================================================

Capturing the built Linux uImage file and the zynq device trees in directory: /home/gareth/opencpi/projects/core/rcc/platforms/xilinx21_2_aarch64/gen/kernel-artifacts

============================================================================================

Preparing the kernel-headers tree based on the built kernel.

Removing *.cmd

Removing x86_64 binaries

rm kernel-headers/scripts/kallsyms

rm kernel-headers/scripts/sorttable

rm kernel-headers/scripts/basic/fixdep

rm kernel-headers/scripts/asn1_compiler

rm kernel-headers/scripts/extract-cert

rm kernel-headers/scripts/kconfig/conf

rm kernel-headers/scripts/mod/mk_elfconfig

rm kernel-headers/scripts/mod/modpost

rm kernel-headers/scripts/dtc/dtc

Restoring source to removed binaries

Removing unused large headers

Creating the compressed archive for kernel headers

The kernel-headers has been created.

WARNING: Cannot locate libstdc++.so* in /tools/Xilinx/Vitis/2021.2/gnu/aarch64/lin/aarch64-linux/bin/../aarch64-linux-gnu in any of these dirs below: libc/lib libc/usr/lib lib

WARNING: Cannot locate libgcc_s.so* in /tools/Xilinx/Vitis/2021.2/gnu/aarch64/lin/aarch64-linux/bin/../aarch64-linux-gnu in any of these dirs below: libc/lib libc/usr/lib lib

WARNING: Cannot locate ld-*.so* in /tools/Xilinx/Vitis/2021.2/gnu/aarch64/lin/aarch64-linux/bin/../aarch64-linux-gnu in any of these dirs below: libc/lib libc/usr/lib lib

WARNING: Cannot locate libpthread*.so* in /tools/Xilinx/Vitis/2021.2/gnu/aarch64/lin/aarch64-linux/bin/../aarch64-linux-gnu in any of these dirs below: libc/lib libc/usr/lib lib

cp: cannot stat '/tools/Xilinx/Vitis/2021.2/gnu/aarch64/lin/aarch64-linux/bin/gdbserver': No such file or directory

make: *** [/home/gareth/opencpi/cdk/include/xilinx/xilinx-rcc-platform.mk:109: gen/sdk-artifacts.done] Error 1

make: Leaving directory '/home/gareth/opencpi/projects/core/rcc/platforms/xilinx21_2_aarch64'

 

ocpidev show rcc platforms

---------------------------------------------------------------------------

| Platform           | Package-ID                   | Target              |

| ------------------ | ---------------------------- | ------------------- |

| macos11_4          | ocpi.core.macos11_4          | macos-11_4-x86_64   |

| macos11_3          | ocpi.core.macos11_3          | macos-11_3-x86_64   |

| macos12_5          | ocpi.core.macos12_5          | macos-12_5-x86_64   |

| xilinx13_3         | ocpi.core.xilinx13_3         | linux-x13_3-arm     |

| macos12_3          | ocpi.core.macos12_3          | macos-12_3-x86_64   |

| macos13_0          | ocpi.core.macos13_0          | macos-13_0-x86_64   |

| macos12_1          | ocpi.core.macos12_1          | macos-12_1-x86_64   |

| xilinx19_2_aarch64 | ocpi.core.xilinx19_2_aarch64 | linux-19_2-aarch64  |

| macos13_1          | ocpi.core.macos13_1          | macos-13_1-x86_64   |

| macos12_0          | ocpi.core.macos12_0          | macos-12_0-x86_64   |

| macos10_15         | ocpi.core.macos10_15         | macos-10_15-x86_64  |

| macos10_14         | ocpi.core.macos10_14         | macos-10_14-x86_64  |

| ubuntu18_04        | ocpi.core.ubuntu18_04        | linux-u18_04-x86_64 |

| macos12_6          | ocpi.core.macos12_6          | macos-12_6-x86_64   |

| xilinx13_4         | ocpi.core.xilinx13_4         | linux-x13_4-arm     |

| xilinx17_1_aarch32 | ocpi.core.xilinx17_1_aarch32 | linux-17_1-aarch32  |

| ubuntu20_04        | ocpi.core.ubuntu20_04        | linux-u20_04-x86_64 |

| centos8            | ocpi.core.centos8            | linux-c8-x86_64     |

| xilinx17_2_aarch64 | ocpi.core.xilinx17_2_aarch64 | linux-17_2-aarch64  |

| mint21_1           | ocpi.core.mint21_1           | linux-m21_1-x86_64  |

| xilinx21_2_aarch64 | ocpi.core.xilinx21_2_aarch64 | linux-21_2-aarch64  |

| macos11_1          | ocpi.core.macos11_1          | macos-11_1-x86_64   |

| xilinx13_4_arm     | ocpi.core.xilinx13_4_arm     | linux-13_4-arm      |

| macos11_5          | ocpi.core.macos11_5          | macos-11_5-x86_64   |

| macos11_6          | ocpi.core.macos11_6          | macos-11_6-x86_64   |

| macos11_2          | ocpi.core.macos11_2          | macos-11_2-x86_64   |

| xilinx17_1_aarch64 | ocpi.core.xilinx17_1_aarch64 | linux-17_1-aarch64  |

| ubuntu22_04        | ocpi.core.ubuntu22_04        | linux-u22_04-x86_64 |

| xilinx19_2_aarch32 | ocpi.core.xilinx19_2_aarch32 | linux-19_2-aarch32  |

| rocky8             | ocpi.core.rocky8             | linux-r8-x86_64     |

| macos12_2          | ocpi.core.macos12_2          | macos-12_2-x86_64   |

| xilinx17_2_aarch32 | ocpi.core.xilinx17_2_aarch32 | linux-17_2-aarch32  |

| macos10_13         | ocpi.core.macos10_13         | macos-10_13-x86_64  |

| macos12_4          | ocpi.core.macos12_4          | macos-12_4-x86_64   |

| centos7            | ocpi.core.centos7            | linux-c7-x86_64     |

| xilinx18_3_aarch64 | ocpi.core.xilinx18_3_aarch64 | linux-18_3-aarch64  |

---------------------------------------------------------------------------

 

The Vitis folder structure around where the copy is failing is:-

/tools/Xilinx/Vitis/2021.2/gnu/aarch64

lin

    aarch64-linux

       aarch64-xilinx-linux

       bin

       x86_64-petalinux-linux

    aarch64-none

        aarch64-xilinx-elf

        bin

        x86_64-oesdk-linux

 

The files in lin/aarch64-linux/bin (such as aarch64-linux-gnu-cpp) seem to suggest for 21_2 the library output directories are ../aarch64-xilinx-linux and searching the files seem to end up in usr/lib.

 

Would it be a reasonable approach to modify ./runtime/hdl-support/Xilinx/importSDKartifacts.sh to add usr/lib into “places” at line 32, then create another variable for e.g. OcpiCrossCompileLibraryOutput in ./runtime/hdl-support/Xilinx and pass this to importSDKartifacts.sh as an extra parameter (which would be either set as empty or the same as OcpiCrossCompile for versions < 21_2)?

 

Obviously the error itself is a missing gdbserver; which doesn’t seem to exist for the aarch64 target in Vitis 2021_2 as far as I can see.  I did see a comment on previous versions that gdbserver is deprecated and may be removed in future versions of Vitis.

 

Has anyone resolved this already?  Are there any other big “gotchas” with targeting 2021.2 as a rcc or vhdl platform?

 

Kind regards

Gareth Cavaciuti

www.allenvanguard.com

gareth.cavaciuti@allenvanguard.com

 





Allen-Vanguard Corporation
IMPORTANT NOTICE:

This message is intended only for the use of the individual or entity to which it is addressed. The message may contain information that is privileged, confidential and exempt from disclosure under applicable law. If the reader of this message is not the intended recipient, you are notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify me immediately and delete it from your system. This system and communications using this system are monitored and recorded to secure its effective operation and for other lawful business purposes.