How to build DSP and OpenCL support

157 views
Skip to first unread message

fra...@helium.com

unread,
Mar 21, 2019, 8:33:12 PM3/21/19
to BeagleBoard
Mar 20, 2019, 9:31 AM

Hi Robert,

Thanks for the gist: https://gist.github.com/RobertCNelson/aca2d52e962c80343857

Our latest problem is that we can't successfully cross-compile the ti-opencl-monitor package under Buildroot.

>> Compilation failure
Makefile.am57x:147: recipe for target 'objs/edma.obj' failed
make[2]: *** [objs/edma.obj] Error 1
"/home/frank/nextgate/rootfs/output/host/share/ti-framework-components/packages/ti/sdo/fc/ires/edma3chan/ires_edma3Chan.h", line 58: fatal error: cannot open source file "ti/xdais/xdas.h"
1 catastrophic error detected in the compilation of "src/monitor.c".
Compilation terminated.

I saw the list of dependencies for ti-opencl-monitor in your gist and we are utilizing a similar list.

config BR2_PACKAGE_TI_OPENCL_MONITOR
	bool "ti-opencl-monitor"
	depends on BR2_arm
	select BR2_PACKAGE_HOST_TI_CGT_C6X
	select BR2_PACKAGE_HOST_TI_FRAMEWORK_COMPONENTS
	select BR2_PACKAGE_HOST_TI_IPC_RTOS
	select BR2_PACKAGE_HOST_TI_SYSBIOS
	select BR2_PACKAGE_HOST_TI_XDCTOOLS
	select BR2_PACKAGE_TI_EDMA3_LLD
	select BR2_PACKAGE_HOST_TI_AETLIB
	select BR2_PACKAGE_HOST_TI_XDAIS
	select BR2_PACKAGE_TI_IPC
	select BR2_PACKAGE_TI_OPENMP_RTOS
	help
	  TI OpenCL compute unit firmware.

TI_OPENCL_MONITOR_DEPENDENCIES = \
  host-ti-cgt-c6x \
  host-ti-framework-components \
  host-ti-ipc-rtos \
  ti-sysbios \
  host-ti-xdctools \
  host-ti-aetlib \
  ti-edma3-lld \
  host-ti-aetlib \
  ti-ipc \
  ti-openmp-rtos

TI_OPENCL_MONITOR_MAKE_OPTS = \
  BUILD_TARGET=ARM_AM57 \
  LINUX_DEVKIT_ROOT=$(HOST_DIR) \
  TI_OCL_CGT_INSTALL=$(HOST_TI_CGT_C6X_INSTALLDIR) \
  XDC_DIR=$(HOST_TI_XDCTOOLS_INSTALLDIR) \
  XDAIS_DIR=$(HOST_TI_XDAIS_INSTALLDIR) \
  EDMA3_DIR=$(TI_EDMA3_LLD_INSTALLDIR) \
  IPC_DIR=$(HOST_TI_IPC_RTOS_INSTALLDIR) \
  BIOS_DIR=$(TI_SYSBIOS_INSTALLDIR) \
  AET_DIR=$(HOST_TI_AETLIB_INSTALLDIR)/aet \
  FC_DIR=$(HOST_TI_FRAMEWORK_COMPONENTS_INSTALLDIR) \
  PDK_DIR=$(TARGET_DIR)/usr/share/ti/ti-pdk-tree \
  BUILD_AM57=1 \
  BUILD_EVE_FIRMWARE=0 \
  OMP_ENABLED=0

We should be building the `host-ti-xdais` package but I can't find that missing xdas.h header anywhere on my system.

I know you were able to build ti-opencl-monitor successfully using your Debian-based build system.  I am looking at your Debian build scripts for some answers.

https://github.com/beagleboard/repos/tree/master/ti-opencl/suite/jessie/debian

But all I came up with was this.

# Currently the monitor must be built in an X86 cross-compile environment
# If doing an opencl build/install on an ARM platform the monitor files
# must be copied over.
override_dh_auto_build:
  mkdir -p ./monitor/monitor_am57x/
  cp -v /usr/share/ti/opencl/dsp.out ./monitor/monitor_am57x/dsp0.out
  cp -v /usr/share/ti/opencl/dsp.syms ./monitor/monitor_am57x/dsp0.syms
  cp -v /usr/share/ti/opencl/dsp_syms.obj ./monitor/monitor_am57x/dsp0.syms.obj
  cp -v /lib/firmware/dra7-dsp2-fw.xe66 ./monitor/monitor_am57x/dsp1.out
  dh_auto_build -- BUILD_OUTPUT=lib BUILD_AM57=1 ARM_LLVM_DIR=/opt/ti-llvm-3.6 DESTDIR=$(CURDIR)/debian/ti-opencl

I'm not sure what dh_auto_build does.  This is all we're doing Buildroot to try to build that `ti-opencl-monitor` package.

define TI_OPENCL_MONITOR_BUILD_CMDS
  $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/monitor $(TI_OPENCL_MONITOR_MAKE_OPTS)
endef

Thank you for your assistance.


-Frank



Mar 20, 2019, 9:46 AM

Hi Frank,

Yeap, opencl-monitor is one i couldn't build purely on debian...
Oh, "jessie" is locked in a old release, use the stretch varient..

https://github.com/rcn-ee/repos/tree/master/ti-opencl/suite/stretch/debian

>
> But all I came up with was this.
>
> # Currently the monitor must be built in an X86 cross-compile environment
> # If doing an opencl build/install on an ARM platform the monitor files
> # must be copied over.
> override_dh_auto_build:
>   mkdir -p ./monitor/monitor_am57x/
>   cp -v /usr/share/ti/opencl/dsp.out ./monitor/monitor_am57x/dsp0.out
>   cp -v /usr/share/ti/opencl/dsp.syms ./monitor/monitor_am57x/dsp0.syms
>   cp -v /usr/share/ti/opencl/dsp_syms.obj ./monitor/monitor_am57x/dsp0.syms.obj
>   cp -v /lib/firmware/dra7-dsp2-fw.xe66 ./monitor/monitor_am57x/dsp1.out

These 4 files are taken from the ti opencl-monitor package:

I have them hosted here for easy access:

https://github.com/rcn-ee/sdk-firmware/tree/master/opencl-monitor

>   dh_auto_build -- BUILD_OUTPUT=lib BUILD_AM57=1 ARM_LLVM_DIR=/opt/ti-llvm-3.6 DESTDIR=$(CURDIR)/debian/ti-opencl
>
> I'm not sure what dh_auto_build does.  This is all we're doing in Buildroot to try to build that ti-opencl-monitor package.
>
> define TI_OPENCL_MONITOR_BUILD_CMDS
>   $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/monitor $(TI_OPENCL_MONITOR_MAKE_OPTS)
> endef
>
> Thank you so much for your assistance.

Regards,

-- 
Robert Nelson
https://rcn-ee.com/



Mar 20, 2019, 11:34 AM

On Wed, Mar 20, 2019 at 11:31 AM Frank Vasquez <fra...@helium.com> wrote:
>
> Hi Robert,
>
> Thanks for the gist.  Our latest problem is that we can't successfully cross-compile the ti-opencl-monitor package under Buildroot.
>
> >> Compilation failure
> Makefile.am57x:147: recipe for target 'objs/edma.obj' failed
> make[2]: *** [objs/edma.obj] Error 1
> "/home/frank/nextgate/rootfs/output/host/share/ti-framework-components/packages/ti/sdo/fc/ires/edma3chan/ires_edma3Chan.h", line 58: fatal error: cannot open source file "ti/xdais/xdas.h"
> 1 catastrophic error detected in the compilation of "src/monitor.c".
> Compilation terminated.

Looks like this is from:

http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/xdais/7_24_00_04/exports/xdais_7_24_00_04/xdais_7_24_00_04_ReleaseNotes.html

./build/arago-tmp-external-linaro-toolchain/sysroots-components/armv7ahf-neon/ti-xdais/usr/share/ti/ti-xdais-tree/packages/ti/xdais/xdas.h

http://gfnd.rcn-ee.org:8080/job/ti-sdk-05.02.00.10/ws/tisdk/build/arago-tmp-external-linaro-toolchain/sysroots-components/armv7ahf-neon/ti-xdais/usr/share/ti/ti-xdais-tree/packages/ti/xdais/

Regards,

-- 
Robert Nelson
https://rcn-ee.com/



Mar 20, 2019, 11:51 AM

Nothing special in meta-ti's xdais package: http://git.yoctoproject.org/cgit/cgit.cgi/meta-ti/tree/recipes-ti/xdais

-- 
Robert Nelson
https://rcn-ee.com/

fra...@helium.com

unread,
Mar 21, 2019, 8:44:13 PM3/21/19
to BeagleBoard
Hi Robert,

I downloaded and copied that xdais stuff that was missing to output/build/ti-opencl-monitor-v01.01.18.00/monitor/src/ti/xdais

Now I am getting the following compilation error when i try to build ti-opencl-monitor.

"src/monitor.c", line 92: fatal error: cannot open source file "GDB_server.h"
1 catastrophic error detected in the compilation of "src/monitor.c".
Compilation terminated.

>> Compilation failure

I didn't know gdbserver was a dependency of ti-opencl-monitor.  Maybe it's needed for dsptop.

-Frank

Robert Nelson

unread,
Mar 21, 2019, 9:28:33 PM3/21/19
to Beagle Board
On Thu, Mar 21, 2019 at 7:44 PM <fra...@helium.com> wrote:
>
> Hi Robert,
>
> I downloaded and copied that xdais stuff that was missing to output/build/ti-opencl-monitor-v01.01.18.00/monitor/src/ti/xdais
>
> Now I am getting the following compilation error when i try to build ti-opencl-monitor.
>
> "src/monitor.c", line 92: fatal error: cannot open source file "GDB_server.h"
> 1 catastrophic error detected in the compilation of "src/monitor.c".
> Compilation terminated.
>
> >> Compilation failure
>
> I didn't know gdbserver was a dependency of ti-opencl-monitor. Maybe it's needed for dsptop.

and we don't built the device tree node for dsptop/debugss anymore
either, yet that include is still needed..

http://git.ti.com/gitweb/?p=sdo-emu/gdbc6x.git;a=summary

http://git.ti.com/gitweb/?p=sdo-emu/gdbc6x.git;a=tree;f=gdbserver-c6x;h=45bed012d7e9f2d47f10e74464f7a71b118c3634;hb=HEAD

https://github.com/rcn-ee/repos/tree/master/ti-gdbserver-c6x/suite/stretch/debian
Reply all
Reply to author
Forward
0 new messages