This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

EDMA3 LLD Driver for A8

Hi,

I am working with DM8168, EZSDK 5.05.02.00, and EDMA3 LLD 02.11.05. I was able to successfully use the EDMA with my DSP code, however I am running into problems using the EDMA with my A8 application code. I do not have the compiled library for the A8, only for the DSPO. When I tried to build the library with make edma3_lld_ti816x-evm_a8_libs, I get the following error:

# Compiling src/edma3_drv_init.c to obj/a8/debug/edma3_drv_init.oea8f ...
/home/dgraziosi/z3-netra/z3-netra-DM8168-PCI-RPS-20130702/ezsdk/../toolchain/codesourcery_arm2009q1-203/bin/arm-none-linux-gnueabi-gcc  -fPIC -fno-strict-aliasing -MD -MF obj/a8/debug/.deps/edma3_drv_init.P -march=armv5t -Dfar= -D_DEBUG_=1 -DMULTICHANNEL_OPT=1 -Dxdc_target_name__=GCArmv5T -Dxdc_target_types__=gnu/targets/arm/std.h  -Dxdc_bld__profile_debug  -Dxdc_bld__vers_1_0_4_3_3        -DTI_816X_BUILD -DPLATFORM_EVM_SI -I/home/dgraziosi/z3-netra/z3-netra-DM8168-PCI-RPS-20130702/ezsdk/../toolchain/codesourcery_arm2009q1-203 -I. -I../../../.. -Isrc  -o obj/a8/debug/edma3_drv_init.oea8f src/edma3_drv_init.c
/home/dgraziosi/z3-netra/z3-netra-DM8168-PCI-RPS-20130702/toolchain/codesourcery_arm2009q1-203/bin/../arm-none-linux-gnueabi/libc/usr/lib/crt1.o: In function `_start':
init.c:(.text+0x30): undefined reference to `main'
/tmp/ccor7PyR.o: In function `EDMA3_DRV_create':
edma3_drv_init.c:(.text+0xc0): undefined reference to `edma3MemZero'
edma3_drv_init.c:(.text+0x198): undefined reference to `edma3MemCpy'
edma3_drv_init.c:(.text+0x1a8): undefined reference to `edma3MemZero'
edma3_drv_init.c:(.text+0x1f8): undefined reference to `edma3MemCpy'
edma3_drv_init.c:(.text+0x20c): undefined reference to `EDMA3_RM_create'
edma3_drv_init.c:(.text+0x228): undefined reference to `EDMA3_RM_create'
edma3_drv_init.c:(.text+0x2c4): undefined reference to `edma3MemCpy'
edma3_drv_init.c:(.text+0x410): undefined reference to `edma3MemZero'
edma3_drv_init.c:(.text+0x5bc): undefined reference to `resMgrObj'
/tmp/ccor7PyR.o: In function `EDMA3_DRV_delete':
edma3_drv_init.c:(.text+0x75c): undefined reference to `EDMA3_RM_delete'
edma3_drv_init.c:(.text+0x7fc): undefined reference to `edma3MemZero'
/tmp/ccor7PyR.o: In function `EDMA3_DRV_open':
edma3_drv_init.c:(.text+0xad4): undefined reference to `edma3MemCpy'
edma3_drv_init.c:(.text+0xb84): undefined reference to `edma3OsProtectEntry'
edma3_drv_init.c:(.text+0xbac): undefined reference to `edma3OsProtectExit'
/tmp/ccor7PyR.o: In function `EDMA3_DRV_close':
edma3_drv_init.c:(.text+0xc90): undefined reference to `EDMA3_RM_close'
edma3_drv_init.c:(.text+0xcdc): undefined reference to `edma3MemZero'
edma3_drv_init.c:(.text+0xd00): undefined reference to `edma3OsProtectEntry'
edma3_drv_init.c:(.text+0xd48): undefined reference to `edma3OsProtectExit'
/tmp/ccor7PyR.o: In function `edma3OpenResMgr':
edma3_drv_init.c:(.text+0x1074): undefined reference to `edma3MemCpy'
edma3_drv_init.c:(.text+0x1090): undefined reference to `EDMA3_RM_open'
edma3_drv_init.c:(.text+0x10cc): undefined reference to `EDMA3_RM_open'
edma3_drv_init.c:(.text+0x120c): undefined reference to `edma3MemCpy'
edma3_drv_init.c:(.text+0x13a4): undefined reference to `ptrRMIArray'
edma3_drv_init.c:(.text+0x13a8): undefined reference to `EDMA3_MAX_RM_INSTANCES'
edma3_drv_init.c:(.text+0x13ac): undefined reference to `ptrInitCfgArray'
/tmp/ccor7PyR.o: In function `EDMA3_DRV_initXbarEventMap':
edma3_drv_init.c:(.text+0x1454): undefined reference to `edma3MemCpy'
edma3_drv_init.c:(.text+0x1488): undefined reference to `EDMA3_RM_initXbarEventMap'
collect2: ld returned 1 exit status
make[2]: *** [obj/a8/debug/edma3_drv_init.oea8f] Error 1
make[2]: Leaving directory `/home/dgraziosi/z3-netra/z3-netra-DM8168-PCI-RPS-20130702/ezsdk/component-sources/edma3lld_02_11_05_02/packages/ti/sdo/edma3/drv'
make[1]: *** [edma3_lld_ti816x-evm_a8_libs_drv] Error 2
make[1]: Leaving directory `/home/dgraziosi/z3-netra/z3-netra-DM8168-PCI-RPS-20130702/ezsdk/component-sources/edma3lld_02_11_05_02/packages'
make: *** [edma3lld] Error 2

Is there any specific way to compile the EDMA3 LLD driver for the A8 ?

Thanks,

Danillo

  • Danillo,

    I will check this with the BIOS team.

    Meanwhile you can see if the below example will be in help:

    ti-ezsdk_dm816x-evm_5_05_02_00/component-sources/edma3lld_02_11_05_02/examples/edma3_driver/evmTI816x_A8

    Regards,
    Pavel

  • HI Pavel,

    I'm actually following the example cited  to incorporate the EDMA into my application. I was not able though to compile and create the ARM executable to verify the EDMA functionality. What steps should I take to create this binary, and test EDMA on the ARM side?

    Thanks,

    Danillo

  • Danillo,

    Could you please provide me your flow, step-by-step, to reproduce this issue on my side?

    Best regards,
    Pavel

  • Dear Pavlov,

    the steps that I did to try to compile the edma3_lld driver for A8 where the following:

    In ezsdk/Rules.make, I modified the following line:

    [-]EDMA3_LLD_TARGET= edma3_lld_ti816x-evm_674_libs
    [+]EDMA3_LLD_TARGET= edma3_lld_ti816x-evm_674_libs edma3_lld_ti816x-evm_a8_libs

    in ezsdk/component-sources/edma3lld_02_11_05_02/makerules/build_config.mk, I modified the following line:

    [-]TOOLCHAIN_a8 = TI

    [+]TOOLCHAIN_a8 = CS

    and in ezsdk/component-sources/edma3lld_02_11_05_02/makerules/env.mk, I modified the following line:

    [-]CODEGEN_PATH_A8 = $(EXTERNAL_SW_ROOT)/TMS470~1.2
    [+]CODEGEN_PATH_A8 = $(EXTERNAL_SW_ROOT)/../toolchain/codesourcery_arm2009q1-203

    All the drivers for the DSP are built correctly, but when the drivers are being built for the A8, the problem reported before happens. Do you have any suggestions ?

    Thanks,

    Danillo

  • Hi Pavlov,

    do you have any updates on compiling the EDMA driver for the A8? 

    Danillo

  • Danillo,

    I am checking this with the BIOS team. Meanwhile can you check if the below e2e thread will be in help:

    http://e2e.ti.com/support/embedded/linux/f/354/t/202453.aspx

    Regards,
    Pavel

  • Hi Danillo,

    The examples were compiled and tested with the TI compilers (TMS 470) for A8 core of TI816x.

    I donot think it was tested with Code sourcery tool chain. When you change the TOOLCHAIN_a8 to CS code will be compiled with make rules file rules_CS_a8.mk file in <edma_install_dir>/makerules.

    The compiler options in the file might be wrong.

    In the latest version of edma3lld (after 2.11.10.09) there is a makerules file rules_GCC_a8.mk which is tested with linaro toolchain (which also has arm-none-eabi-gcc compiler). you can use this rules.mk file or compare the compiler options between the two and take the changes.

    Regards,
    Prasad