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.

Linux/AM5728: How to build tiovx-app-host-01.00.01.00 example?

Part Number: AM5728

Tool/software: Linux

Currently, I'm trying to build the tiovx firmware for the DSP. I found the dependencies include few packages in RTOS SDK and PROCESSOR_SDK_VISION. But I still miss one dependency “vps_osal_tirtos.ae66”. From the original path configuration, I figured out it may be contained in pdk package. Thus I tried to build pdk, but I failed at 

# Invoking configuro...
/bin/mkdir -p /home/rossihwang/ti/pdk_am57xx_1_0_11/packages/ti/binary
/home/rossihwang/ti/xdctools_3_50_03_33_core/xs xdc.tools.configuro --generationOnly -o /home/rossihwang/ti/pdk_am57xx_1_0_11/packages/ti/binary/pruss_app_sorte_slave/obj/idkAM572x/a15_0/release/configuro -t gnu.targets.arm.A15F -p "ti.platforms.idkAM572X" \
               -r release -b /home/rossihwang/ti/pdk_am57xx_1_0_11/packages/ti/build/am572x/config_am572x_a15.bld --ol /home/rossihwang/ti/pdk_am57xx_1_0_11/packages/ti/binary/pruss_app_sorte_slave/obj/idkAM572x/a15_0/release/configuro/linker_mod.cmd ../src/sorte_idkAM572x_app.cfg
configuring sorte_idkAM572x_app.xa15fg from package/cfg/sorte_idkAM572x_app_pa15fg.cfg ...
The DRA7XX device is not currently supported.
The following devices are supported in the ti.catalog.c6000 catalog:
js: "/home/rossihwang/ti/bios_6_52_00_12/packages/ti/sysbios/family/arm/Settings.xs", line 672: Error: Unsupported device!
    "/home/rossihwang/ti/bios_6_52_00_12/packages/ti/sysbios/family/arm/Settings.xs", line 831
    "/home/rossihwang/ti/bios_6_52_00_12/packages/ti/sysbios/family/Settings.xs", line 242
    "/home/rossihwang/ti/bios_6_52_00_12/packages/ti/sysbios/family/Settings.xs", line 121
    "/home/rossihwang/ti/pdk_am57xx_1_0_11/packages/ti/drv/pruss/example/apps/sorte/src/sorte_idkAM572x_app.cfg", line 11
    "./package/cfg/sorte_idkAM572x_app_pa15fg.cfg", line 237
gmake: *** [package/cfg/sorte_idkAM572x_app_pa15fg.xdl] Error 1
js: "/home/rossihwang/ti/xdctools_3_50_03_33_core/packages/xdc/tools/Cmdr.xs", line 52: Error: xdc.tools.configuro: configuration failed due to earlier errors (status = 2); '/home/rossihwang/ti/pdk_am57xx_1_0_11/packages/ti/binary/pruss_app_sorte_slave/obj/idkAM572x/a15_0/release/configuro/linker_mod.cmd' deleted.
/home/rossihwang/ti/pdk_am57xx_1_0_11/packages/ti/build/makerules/rules_a15.mk:278: recipe for target '/home/rossihwang/ti/pdk_am57xx_1_0_11/packages/ti/binary/pruss_app_sorte_slave/obj/idkAM572x/a15_0/release/configuro/package/cfg/sorte_idkAM572x_app_pa15fg.c' failed
make[4]: *** [/home/rossihwang/ti/pdk_am57xx_1_0_11/packages/ti/binary/pruss_app_sorte_slave/obj/idkAM572x/a15_0/release/configuro/package/cfg/sorte_idkAM572x_app_pa15fg.c] Error 1
make[4]: Leaving directory '/home/rossihwang/ti/pdk_am57xx_1_0_11/packages/ti/drv/pruss/example/apps/sorte/slave'
/home/rossihwang/ti/pdk_am57xx_1_0_11/packages/ti/build/comp_top.mk:322: recipe for target 'pruss_app_sorte_slave' failed
make[3]: *** [pruss_app_sorte_slave] Error 2
make[3]: Leaving directory '/home/rossihwang/ti/pdk_am57xx_1_0_11/packages/ti/drv/pruss'
/home/rossihwang/ti/pdk_am57xx_1_0_11/packages/ti/build/comp_top.mk:223: recipe for target 'a15_0_app' failed
make[2]: *** [a15_0_app] Error 2
make[2]: Leaving directory '/home/rossihwang/ti/pdk_am57xx_1_0_11/packages/ti/drv/pruss'
/home/rossihwang/ti/pdk_am57xx_1_0_11/packages/ti/build/comp_top.mk:220: recipe for target 'idkAM572x_app' failed
make[1]: *** [idkAM572x_app] Error 2
make[1]: Leaving directory '/home/rossihwang/ti/pdk_am57xx_1_0_11/packages/ti/drv/pruss'
makefile:226: recipe for target 'pruss' failed
make: *** [pruss] Error 2

So, my question is, is there any detailed tutorial for building the tiovx firmware?

  • Hi,

    I suggest you to look at yocto recipes for build dependencies under sources/meta-processor-sdk/recipes-ti/tiovx. Refer to this link for further help with Yocto build -

    Regards,

    Manisha

  • Hi
    it's no need to use Yocto, I've set up the environment and built it using makefile. but I enccoutered another problem. The app_host stuck there and from the DSP trace is below

    root@am57xx-evm:~# cat /sys/kernel/debug/remoteproc/remoteproc2/trace0
    [ 0.000] 20 Resource entries at 0x95000000
    [ 0.000] [t=0x000460b3] xdc.runtime.Main: --> main:
    [ 0.000] [t=0x0007f5ca] xdc.runtime.Main: TASK_CREATE setupRxMsgTask=951b6418
    [ 0.000] registering rpmsg-proto:rpmsg-proto service on 61 with HOST
    [ 0.000] [t=0x000bd010] xdc.runtime.Main: NameMap_sendMessage: HOST 53, port=61
    [ 0.000] [t=0x000fc8b3] xdc.runtime.Main: --> smain:
    [ 0.000] [t=0x0010cb37] xdc.runtime.Main: --> tivx dsp1 entering...:
    [ 0.010] [t=0x007d7157] xdc.runtime.Main: MULTIPROC cluster
    [ 0.010] [t=0x007e9a24] xdc.runtime.Main: Proc:00 name=HOST
    [ 0.010] [t=0x007f9e9d] xdc.runtime.Main: Proc:01 name=IPU2
    [ 0.010] [t=0x0080a1c6] xdc.runtime.Main: Proc:02 name=IPU1
    [ 0.010] [t=0x0081a654] xdc.runtime.Main: Proc:03 name=DSP2
    [ 0.010] [t=0x0082a800] xdc.runtime.Main: =>Proc:04 name=DSP1
    [ 0.010] [t=0x0083af1c] xdc.runtime.Main: ======DSP1_ID=4 DSP2_ID=3===============
    [ 0.010] [t=0x00851626] xdc.runtime.Main: MainDsp: Entering main loop
    [ 0.010] [t=0x008638e1] xdc.runtime.Main: MainDsp: Before tivxInit!
    [ 0.011] [t=0x00891dcf] xdc.runtime.Main: Utils_memInit
    [ 0.011] [t=0x008a5fdd] xdc.runtime.Main: MainDsp: Before DSP2 attach
    [ 0.233] [t=0x0a244e0c] xdc.runtime.Main: MainDsp: attached now to remote DSP
    [ 0.233] [t=0x0a29bf85] Server: Thread loopbackFxn: 0 queName=QUE_RX_DSP1
    [ 0.233] [t=0x0a2b11a5] Server: hello, world
    [ 0.233] [t=0x0a2bec12] xdc.runtime.Main: TASK_CREATE setupRxMsgTask=951b8bb8
    [ 0.233] [t=0x0a2d4bd8] Server: Creating HeapBufMP...
    [ 0.234] [t=0x0a3028b3] Server: Done with creating HeapBufMP...
    [ 0.234] [t=0x0a315135] Server: Server_create: heap registered
    [ 1.235] [t=0x35248f06] Server: Server_create: remoteDSP que opened
    [ 1.235] [t=0x3525bf05] xdc.runtime.Main: smain: prepareIpc DONE
    [ 1.235] [t=0x3526c6db] xdc.runtime.Main: smain: notifyCB function:95091840
    [ 1.235] [t=0x3527f75b] xdc.runtime.Main: VPXINIT DSP success
    [ 1.235] [t=0x352d75a1] xdc.runtime.Main: Utils_memAlloc: heapId=4 size=180224
    [ 1.235] [t=0x352ee2a8] xdc.runtime.Main: Utils_memAlloc: heapId=4 size=45056
    [ 1122.676] [t=0x000000bc:342f56f0] ti.sdo.ipc.MessageQ: ERROR: line 188: assertion failure: A_head
    [ 1122.676] ti.sdo.ipc.MessageQ: line 188: assertion failure: A_heapIdInvalid: heapId is invalid
    [ 1122.676] xdc.runtime.Error.raise: terminating execution

    from the trace info, it seems like caused by the assertion in the MemoryQ_alloc()
  • Hi,

    This is a known issue and will get addressed in next Processor SDK release scheduled end of 2Q, 2019.

    Regards,
    Manisha
  • Hi,

    There's a bug fix for this and not workaround. As mentioned, the fix will be available with our next Processor SDK release. If you are needing it before, I will try to see if I can arrange a patch for you.

    Regards,
    Manisha
  • I really need it before release, THANKS!

  • Hi, I checked with my team and unfortunately, we cannot provide you anything before Processor SDK Linux 2Q, 2019 release. You will have to wait. Sorry.

    Regards,
    Manisha