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.

CCS/AM5728: Linaro support for IPU1

Part Number: AM5728
Other Parts Discussed in Thread: MATHLIB

Tool/software: Code Composer Studio

I am attempting to setup a project that targets the M4 on the AM5728 (IPU1), and I would much prefer to use the Linaro toolchain. When I setup a project in CCS 8.1, with the default configuration and choosing the am57 linker, I do not get a building output. Specifically, I get an error surrounding HEAPSIZE not being defined, and I am guessing there needs to be other  configuration files included, or something along those lines. This code will be loaded onto the AM5728 in the yocto based Linux system and loaded into the appropriate /firmware directory. Is there an example existing of a Linaro based AM5728 IPU project floating somewhere? It'd be especially helpful if it was driving GPIO's, UART, or communicating with the A15 cores via some means.

  • Hi Lucas,

    IPU projects from Processor SDK are only built and verified with TI ARM CGT too rather than Linaro.
    Any particular reason you prefer to use the Linaro tool chain? It would be better to align with Processor SDK tool chain to minimize the potential risk.

    Regards,
    Garrett
  • Hello Garrett,

    The reason I would prefer to use Linaro is it is directly associated with GCC build tools, which our potential application could eventually be ported to a GCC based ARM M4 or H4 application. However if minimal support is available for the Linaro toolchain for the IPU's, that is a fair deterrent on our side.

    While on the subject, our application will be contain a bi-directional interface from a Linux OS, and the IPU with GPIO access on the IPU side. From the CCS Project creation, which of the sample projects would be the best to start with?
  • Hi Lucas,

    If 'bi-directional interface from a Linux OS' means interface between ARM and IPU, you may start with the UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc.zip (processors.wiki.ti.com/.../Linux_IPC_on_AM57xx ) if you are looking for a CCS project. Otherwise, if you are OK with makefile based project, there are a few examples in IPC release /examples folder.

    You can then add the GPIO control into the CCS project by referring to the GPIO examples in packages\ti\drv\gpio\test.

    Regards,
    Garret
  • Garret,

    Thanks a lot for the information. I have a project building, and an XDS110 on the way for programming.

    However, in the interim, is there any modifications I need to make to the .out file in order to load the firmware into /lib/firmware/dra7-ipu1-fw.xem4 ?

    I know you can start/ stop the firmware by calling the IPU number (58820000.ipu) into /sys/bus/platform/drivers/omap-rproc/<bind or unbind>.

  • Hi Lucas,

    The binary generated from above UART IPC example can be directly copied to dra7-ipu1-fw.xem4 without modification.

    Regards,
    Garrett
  • Garrett,

    I get the following error when loading the .out file into the firmware location, am I missing a step somewhere?

  • Hello Lucas,

    When loading an image onto a slave core with the ARM running Linux, a resource table is needed so that remoteproc knows how to allocate system resources and configure the MMU.

    Please refer to the following documents for more information on adding a resource table to your project:

    Hope this helps.

  • Hello Sahin,

    Thanks a lot for the reference! I appreciate you linking that material, and it may be especially useful as the application develops past the point of testing.

    Just to get the UART example that Garrett referenced above to operate on the AM5728, would I need to include the IPU1.cfg, IPUAmmu.cfg found under the DRA7XX_linux_elf/ex41_forwardmsg/ipu1 example to get the proper memory map loaded? I have not modified the memory layout in any way shape or form of the device tree configuration or kernel.

  • No, you don't need to include IPU1.cfg or IPUAmmu.cfg since the necessary pieces of these .cfg files were added to uart_m4_evmAM572x.cfg. They should be excluded from the build.

    I noticed uart_m4_evmAM572x.cfg was missing from the original project link which might be the reason for the error you are seeing. I've modified the project to include this file and zipped it up and attached it below.

    UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc.zip

  • Hello Sahin,

    That project file was quite useful, and thanks for looking into that! However, when I unzip the project file under the respective Ti install directory (), I am getting somehwere around 100 errors. Attached is the log file. It looks like the compiler is having difficulties understanding the pragmas starting around like 4597. Below is my directory structure for associated Ti build tools. Does it appear as though I am missing anything from my build path / is it by chance a environment mismatch? FYI, my build is taking place on Windows 10 :

    bios_6_73_00_12
    mathlib_c66x_3_1_2_1
    ti-cgt-c6000_8.2.2
    ccsv8
    ndk_3_40_01_01
    ti-cgt-pru_2.2.1
    cg_xml
    ns_2_40_01_02
    tirex-product-tree
    Code Composer Studio 8.2.0.lnk
    openmp_dsp_am57xx_2_06_02_01
    uia_2_30_01_02
    ctoolslib_2_2_0_0
    pdk_am57xx_1_0_12
    xdais_7_24_00_04
    edma3_lld_2_12_05_30C
    pinmux_v4
    xdctools_3_32_02_25_core
    framework_components_3_40_02_07
    processor_sdk_rtos_am57xx_5_01_00_11
    xdctools_3_50_07_20_core
    gcc-arm-none-eabi-6-2017-q1-update
    pru
    xdctools_3_50_08_24_core
    imglib_c66x_3_1_1_0
    Sitara_1_02_00_00
    zips
    ipc_3_50_02_02
    ti-cgt-arm_16.9.4.LTS

    **** Clean-only build of configuration Debug for project UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc ****
    
    "C:\\ti\\ccsv8\\utils\\bin\\gmake" -k -j 8 clean -O 
     
    DEL /F  "UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc.hex"  "configPkg\linker.cmd" "configPkg\compiler.opt"  "UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc.out" 
    DEL /F "MainIpu2.obj" "Server.obj" "UART_soc.obj" "main_uart_example.obj" "rsc_table_vayu_ipu.obj" 
    DEL /F "MainIpu2.d" "Server.d" "UART_soc.d" "main_uart_example.d" "rsc_table_vayu_ipu.d" 
    RMDIR /S/Q  "configPkg\" 
    Could Not Find C:\ti\pdk_am57xx_1_0_12\packages\MyExampleProjects\UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc\Debug\UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc.hex
    Could Not Find C:\ti\pdk_am57xx_1_0_12\packages\MyExampleProjects\UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc\Debug\UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc.out
    Could Not Find C:\ti\pdk_am57xx_1_0_12\packages\MyExampleProjects\UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc\Debug\MainIpu2.obj
    Could Not Find C:\ti\pdk_am57xx_1_0_12\packages\MyExampleProjects\UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc\Debug\MainIpu2.d
    Finished clean
     
    
    **** Build Finished ****
    
    **** Build of configuration Debug for project UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc ****
    
    "C:\\ti\\ccsv8\\utils\\bin\\gmake" -k -j 8 all -O 
     
    Building file: "../uart_m4_evmAM572x.cfg"
    Invoking: XDCtools
    "C:/ti/xdctools_3_32_02_25_core/xs" --xdcpath="C:/ti/bios_6_73_00_12/packages;C:/ti/pdk_am57xx_1_0_12/packages;C:/ti/edma3_lld_2_12_05_30C/packages;C:/ti/ipc_3_50_02_02/packages;C:/ti/ndk_3_40_01_01/packages;C:/ti/uia_2_30_01_02/packages;C:/ti/ccsv8/ccs_base;" xdc.tools.configuro -o configPkg -t ti.targets.arm.elf.M4 -p ti.platforms.evmDRA7XX:ipu2 -r debug -b "C:/ti/pdk_am57xx_1_0_12/packages/MyExampleProjects/UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc/config.bld" -c "C:/ti/ti-cgt-arm_16.9.4.LTS" "../uart_m4_evmAM572x.cfg"
    making package.mak (because of package.bld) ...
    generating interfaces for package configPkg (because package/package.xdc.inc is older than package.xdc) ...
    configuring uart_m4_evmAM572x.xem4 from package/cfg/uart_m4_evmAM572x_pem4.cfg ...
    generating custom ti.sysbios library makefile ... 
    generating custom ti.sdo.utils library makefile ...
    generating custom ti.sdo.ipc library makefile ...
    	Linking with library ti.board:./lib/evmAM572x/m4/release/ti.board.aem4
    	Linking with library ti.drv.i2c:./lib/m4/release/ti.drv.i2c.aem4
    	Linking with library ti.drv.uart:./lib/m4/release/ti.drv.uart.aem4
    	Linking with library ti.csl:./lib/am572x/m4/release/ti.csl.aem4
    	Linking with library ti.osal:./lib/tirtos/m4/release/ti.osal.aem4
    Starting build of library sources ...
    making C:/ti/pdk_am57xx_1_0_12/packages/MyExampleProjects/UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc/src/ipc.aem4 ...
    gmake[1]: Entering directory `C:/ti/pdk_am57xx_1_0_12/packages/MyExampleProjects/UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc/src/ipc'
    clem4 C:/ti/ipc_3_50_02_02/packages/ti/sdo/utils/NameServer.c ...
    arem4 Ipc.obj ...
    gmake[1]: Leaving directory `C:/ti/pdk_am57xx_1_0_12/packages/MyExampleProjects/UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc/src/ipc'
    making C:/ti/pdk_am57xx_1_0_12/packages/MyExampleProjects/UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc/src/utils.aem4 ...
    gmake[1]: Entering directory `C:/ti/pdk_am57xx_1_0_12/packages/MyExampleProjects/UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc/src/utils'
    clem4 C:/ti/ipc_3_50_02_02/packages/ti/sdo/utils/UTILS.c ...
    arem4 UTILS.obj ...
    gmake[1]: Leaving directory `C:/ti/pdk_am57xx_1_0_12/packages/MyExampleProjects/UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc/src/utils'
    making C:/ti/pdk_am57xx_1_0_12/packages/MyExampleProjects/UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc/src/sysbios/sysbios.aem4 ...
    gmake[1]: Entering directory `C:/ti/pdk_am57xx_1_0_12/packages/MyExampleProjects/UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc/src/sysbios'
    clem4 C:/ti/bios_6_73_00_12/packages/ti/sysbios/BIOS.c ...
    asmem4 C:/ti/bios_6_73_00_12/packages/ti/sysbios/family/arm/m3/Hwi_asm.sv7M ...
    asmem4 C:/ti/bios_6_73_00_12/packages/ti/sysbios/family/arm/m3/Hwi_asm_switch.sv7M ...
    asmem4 C:/ti/bios_6_73_00_12/packages/ti/sysbios/family/arm/m3/IntrinsicsSupport_asm.sv7M ...
    asmem4 C:/ti/bios_6_73_00_12/packages/ti/sysbios/family/arm/m3/TaskSupport_asm.sv7M ...
    asmem4 C:/ti/bios_6_73_00_12/packages/ti/sysbios/family/arm/ducati/Core_smp_asm.sv7M ...
    asmem4 C:/ti/bios_6_73_00_12/packages/ti/sysbios/timers/dmtimer/Timer_asm.sv7M ...
    arem4 BIOS.obj m3_Hwi_asm.obj m3_Hwi_asm_switch.obj m3_IntrinsicsSupport_asm.obj m3_TaskSupport_asm.obj ducati_Core_smp_asm.obj dmtimer_Timer_asm.obj ...
    gmake[1]: Leaving directory `C:/ti/pdk_am57xx_1_0_12/packages/MyExampleProjects/UART_BasicExample_evmAM572x_m4ExampleProject_with_ipc/src/sysbios'
    Build of libraries done.
    clem4 package/cfg/uart_m4_evmAM572x_pem4.c ...
     
    >> Compilation failure
    subdir_rules.mk:19: recipe for target 'build-1595508751-inproc' failed
    warning: ti.sysbios.BIOS: "C:/ti/bios_6_73_00_12/packages/ti/sysbios/BIOS.xs", line 341: ti.sysbios.BIOS heapSize: BIOS.heapSize and Memory.defaultHeapInstance have both been set.  BIOS.heapSize ignored.  Using Memory.defaultHeapInstance.
    "C:/ti/bios_6_73_00_12/packages/ti/sysbios/family/arm/m3/Hwi_smp.c", line 734: warning: a value of type "xdc_Ptr" cannot be assigned to an entity of type "xdc_SizeT"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 1836: warning: a value of type "xdc_Ptr (*)(xdc_CPtr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)" cannot be used to initialize an entity of type "xdc_Ptr (*)(xdc_Ptr, xdc_SizeT, xdc_Ptr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 1858: warning: a value of type "xdc_Ptr (*)(xdc_CPtr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)" cannot be used to initialize an entity of type "xdc_Ptr (*)(xdc_Ptr, xdc_SizeT, xdc_Ptr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 1947: warning: a value of type "xdc_Ptr (*)(xdc_CPtr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)" cannot be used to initialize an entity of type "xdc_Ptr (*)(xdc_Ptr, xdc_SizeT, xdc_Ptr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 1987: warning: a value of type "xdc_Ptr (*)(xdc_CPtr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)" cannot be used to initialize an entity of type "xdc_Ptr (*)(xdc_Ptr, xdc_SizeT, xdc_Ptr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 2008: warning: a value of type "xdc_Ptr (*)(xdc_CPtr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)" cannot be used to initialize an entity of type "xdc_Ptr (*)(xdc_Ptr, xdc_SizeT, xdc_Ptr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 2029: warning: a value of type "xdc_Ptr (*)(xdc_CPtr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)" cannot be used to initialize an entity of type "xdc_Ptr (*)(xdc_Ptr, xdc_SizeT, xdc_Ptr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 2050: warning: a value of type "xdc_Ptr (*)(xdc_CPtr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)" cannot be used to initialize an entity of type "xdc_Ptr (*)(xdc_Ptr, xdc_SizeT, xdc_Ptr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 2098: warning: a value of type "xdc_Ptr (*)(xdc_CPtr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)" cannot be used to initialize an entity of type "xdc_Ptr (*)(xdc_Ptr, xdc_SizeT, xdc_Ptr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 2120: warning: a value of type "xdc_Ptr (*)(xdc_CPtr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)" cannot be used to initialize an entity of type "xdc_Ptr (*)(xdc_Ptr, xdc_SizeT, xdc_Ptr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 2141: warning: a value of type "xdc_Ptr (*)(xdc_CPtr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)" cannot be used to initialize an entity of type "xdc_Ptr (*)(xdc_Ptr, xdc_SizeT, xdc_Ptr, const xdc_UChar *, xdc_SizeT, xdc_runtime_Error_Block *)"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 4650: error: identifier "CT__ti_ipc_namesrv_NameServerRemoteRpmsg_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 4650: error: identifier "CT__ti_ipc_namesrv_NameServerRemoteRpmsg_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 4650: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 4752: error: identifier "CT__ti_ipc_remoteproc_Resource_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 4752: error: identifier "CT__ti_ipc_remoteproc_Resource_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 4752: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 4853: error: identifier "CT__ti_ipc_transports_TransportRpmsg_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 4853: error: identifier "CT__ti_ipc_transports_TransportRpmsg_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 4853: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 4956: error: identifier "CT__ti_ipc_transports_TransportRpmsgSetup_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 4956: error: identifier "CT__ti_ipc_transports_TransportRpmsgSetup_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 4956: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 5037: error: identifier "CT__ti_osal_Settings_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 5037: error: identifier "CT__ti_osal_Settings_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 5037: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 5235: error: identifier "CT__ti_sdo_ipc_MessageQ_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 5235: error: identifier "CT__ti_sdo_ipc_MessageQ_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 5235: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 5495: error: identifier "CT__ti_sdo_ipc_family_vayu_InterruptIpu_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 5495: error: identifier "CT__ti_sdo_ipc_family_vayu_InterruptIpu_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 5495: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 5843: error: identifier "CT__ti_sdo_ipc_family_vayu_NotifySetup_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 5843: error: identifier "CT__ti_sdo_ipc_family_vayu_NotifySetup_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 5843: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6165: error: identifier "CT__ti_sdo_utils_List_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6165: error: identifier "CT__ti_sdo_utils_List_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6165: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6276: error: identifier "CT__ti_sdo_utils_MultiProc_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6276: error: identifier "CT__ti_sdo_utils_MultiProc_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6276: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6456: error: identifier "CT__ti_sdo_utils_NameServer_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6456: error: identifier "CT__ti_sdo_utils_NameServer_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6456: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6579: error: identifier "CT__ti_sdo_utils_NameServerRemoteNull_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6579: error: identifier "CT__ti_sdo_utils_NameServerRemoteNull_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6579: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6690: error: identifier "CT__ti_sysbios_BIOS_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6690: error: identifier "CT__ti_sysbios_BIOS_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6690: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6839: error: identifier "CT__ti_sysbios_family_arm_ducati_CTM_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6839: error: identifier "CT__ti_sysbios_family_arm_ducati_CTM_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6839: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6941: error: identifier "CT__ti_sysbios_family_arm_ducati_Core_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6941: error: identifier "CT__ti_sysbios_family_arm_ducati_Core_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 6941: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7085: error: identifier "CT__ti_sysbios_family_arm_ducati_GateSmp_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7085: error: identifier "CT__ti_sysbios_family_arm_ducati_GateSmp_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7085: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7241: error: identifier "CT__ti_sysbios_family_arm_ducati_Timer_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7241: error: identifier "CT__ti_sysbios_family_arm_ducati_Timer_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7241: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7338: error: identifier "CT__ti_sysbios_family_arm_ducati_TimestampProvider_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7338: error: identifier "CT__ti_sysbios_family_arm_ducati_TimestampProvider_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7338: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7419: error: identifier "CT__ti_sysbios_family_arm_ducati_Wugen_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7419: error: identifier "CT__ti_sysbios_family_arm_ducati_Wugen_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7419: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7707: error: identifier "CT__ti_sysbios_family_arm_m3_Hwi_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7707: error: identifier "CT__ti_sysbios_family_arm_m3_Hwi_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7707: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7920: error: identifier "CT__ti_sysbios_family_arm_m3_IntrinsicsSupport_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7920: error: identifier "CT__ti_sysbios_family_arm_m3_IntrinsicsSupport_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7920: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7997: error: identifier "CT__ti_sysbios_family_arm_m3_TaskSupport_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7997: error: identifier "CT__ti_sysbios_family_arm_m3_TaskSupport_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 7997: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8218: error: identifier "CT__ti_sysbios_family_shared_vayu_IntXbar_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8218: error: identifier "CT__ti_sysbios_family_shared_vayu_IntXbar_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8218: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8351: error: identifier "CT__ti_sysbios_family_shared_vayu_TimerSupport_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8351: error: identifier "CT__ti_sysbios_family_shared_vayu_TimerSupport_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8351: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8464: error: identifier "CT__ti_sysbios_gates_GateHwi_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8464: error: identifier "CT__ti_sysbios_gates_GateHwi_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8464: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8615: error: identifier "CT__ti_sysbios_gates_GateMutex_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8615: error: identifier "CT__ti_sysbios_gates_GateMutex_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8615: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8718: error: identifier "CT__ti_sysbios_gates_GateMutexPri_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8718: error: identifier "CT__ti_sysbios_gates_GateMutexPri_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8718: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8832: error: identifier "CT__ti_sysbios_gates_GateSwi_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8832: error: identifier "CT__ti_sysbios_gates_GateSwi_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8832: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8913: error: identifier "CT__ti_sysbios_hal_Cache_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8913: error: identifier "CT__ti_sysbios_hal_Cache_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8913: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8995: error: identifier "CT__ti_sysbios_hal_Core_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8995: error: identifier "CT__ti_sysbios_hal_Core_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 8995: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 9108: error: identifier "CT__ti_sysbios_hal_Hwi_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 9108: error: identifier "CT__ti_sysbios_hal_Hwi_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 9108: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 9241: error: identifier "CT__ti_sysbios_hal_Timer_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 9241: error: identifier "CT__ti_sysbios_hal_Timer_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 9241: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 9323: error: identifier "CT__ti_sysbios_hal_ammu_AMMU_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 9323: error: identifier "CT__ti_sysbios_hal_ammu_AMMU_Module__startupDoneFxn" is undefined
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 9323: error: expected a ")"
    "package/cfg/uart_m4_evmAM572x_pem4.c", line 9753: error: identifier "CT__ti_sysbios_hal_unicache_Cache_Module__startupDoneFxn" is undefined
    Error limit reached.
    100 errors detected in the compilation of "package/cfg/uart_m4_evmAM572x_pem4.c".
    Compilation terminated.
    gmake.exe: *** [package/cfg/uart_m4_evmAM572x_pem4.oem4] Error 1
    js: "C:/ti/xdctools_3_32_02_25_core/packages/xdc/tools/Cmdr.xs", line 52: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); 'linker.cmd' deleted.
    gmake[1]: *** [build-1595508751-inproc] Error 1
    gmake: *** [build-1595508751] Error 2
    subdir_rules.mk:16: recipe for target 'build-1595508751' failed
    gmake: Target 'all' not remade because of errors.
    
    **** Build Finished ****
    

  • Hello Lucas,

    It looks like you are using the wrong version of XDCtools. You will want to use the version that came bundled with the SDK, which for PRSDK v5.1 is v3.50.7.20. You can change the version by going to your project's properties > CCS General > Products.
  • Hello Sahin,

    Good call on the XDC tools. It looks like the output is very close now. After unbinding the booted firmware in ipu1, and copying over the .out file (instead of linking), and then attempting to rebind, I get the following:

    echo 58820000.ipu > /sys/bus/platform/drivers/omap-rproc/bind
    [ 183.598856] omap-rproc 58820000.ipu: assigned reserved memory node ipu1_cma@9d000000
    [ 183.612887] remoteproc remoteproc0: 58820000.ipu is available
    [ 183.624467] remoteproc remoteproc0: powering up 58820000.ipu
    root@am5728-phycore-rdk:~/m4_ipu# [ 183.632915] remoteproc remoteproc0: Booting fw image dra7-ipu1-fw.xem4, size 4611936
    [ 183.644974] omap-iommu 58882000.mmu: 58882000.mmu: version 2.1
    [ 183.655302] omap-rproc 58820000.ipu: failed to allocate dma memory: len 0x3000000
    [ 183.662890] remoteproc remoteproc0: Failed to process resources: -12

    Any thoughts into where this issue may lie?
  • I was able to fix this bit, via changing the rsc_table_vayu_ipu.c IPU_MEM_DATA_SIZE  (for IPU2?) to 16 MB from 48. It appears as though  the BSP I was using defined a limit of 32 MB, so by changing it to 16 MB I did not overflow that space.