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.

AM5728: Unable to Bind DSP2 core

Part Number: AM5728

Hi,


I am presently working on Sitara Am5728 platform. I am planning to use DSP1 and DSP2 both cores.  I am able to use DSP1, bind and unbind it.

But if i try to bind DSP2 core standalone without binding DSP1 it is hanging the entire machine.

If I bind the DSP1 and then bind DSP2 it is binding properly.

What I understand is DSP1 and DSP2 cores is expected to work independently without any dependency. Why am I observing this kind of behavior?


Also please let me know what are the configurations to be done to enable the DSP2 to function independently.

I am placing below piece of code in "app.cfg file"

Program.global.procName = "DSP2";


I changed in Products

Platform: ti.platforms.evmDRA7XX:dsp2

Is there anything more we need to configure to enable DSP2 properly?

Thanks,

Janardan

  • Please post which Linux version you use.
  • Hi, Jarnadan,

    Today is TI holiday and I won't be able to try it. In the meantime, could you try the prebuilt ex02_messageq DSP2 binary in /usr/bin/ipc/examples/ex02_messageq and see if it works for you?

    Rex
  • HI ,

    We are using "ti-processor-sdk-linux-am57xx-evm-04.03.00.05".

    Thanks,
    Janardan
  • Hi, Janardan,

    Have you tried with TI examples or take a look at the differences between dsp1 and dsp2 in the examples? I tried and don't see any issues with loading DSP2 only. I think your issue is more to the DSP2 configuration. I'll have a DSP expert to help you.

    Rex
  • Hi Rex,

    Thanks for the response, We are using CCS based implementation and still seeing the same issue. We have taken the reference of TI examples as base for the same. Is there something to do with resource table/.cfg files?

    Thanks,

    Janardan

  • Hello Rex,

    In my case, both DSP1 and DSP2 are working in parallel when I load DSP1 first, followed by DSP2. But if I unbind DSP1, it affects DSP2 as well.

    Would you please create a small application with both DSP1 and DSP2 running in parallel and show the bind/unbind for each DSP?

    Thank you!

    Rajesh

  • Hi, Janardan & Rajesh,

    Try using TI prebuilt images in /lib/firmware/ipc/ti_platforms_evmDRA7XX_dspX/messageq_single.xe66. Below is the snippet of logs from my run:

    root@am57xx-evm:/lib/firmware# ls -l dra7-dsp?-fw.xe66
    lrwxrwxrwx 1 root root 52 Dec 16 03:38 dra7-dsp1-fw.xe66 -> ipc/ti_platforms_evmDRA7XX_dsp1/messageq_single.xe66
    lrwxrwxrwx 1 root root 52 Dec 16 03:39 dra7-dsp2-fw.xe66 -> ipc/ti_platforms_evmDRA7XX_dsp2/messageq_single.xe66

    root@am57xx-evm:/lib/firmware# reboot -f now
    Rebooting with argument 'now'.
    [ 296.647580] reboot: Restarting system with command 'now'

    U-Boot SPL 2018.01-g313dcd69c2 (Dec 16 2018 - 10:03:08)
    DRA752-GP ES2.0
    Trying to boot from MMC1
    ::::::::::::::::::
    Arago 2018.10 am57xx-evm ttyS2

    am57xx-evm login: root
    root@am57xx-evm:~# dmesg | grep remoteproc
    [ 10.570235] remoteproc remoteproc0: 58820000.ipu is available
    [ 10.736274] remoteproc remoteproc1: 55020000.ipu is available
    [ 10.824318] remoteproc remoteproc2: 40800000.dsp is available
    [ 10.969903] remoteproc remoteproc3: 41000000.dsp is available
    [ 11.078655] remoteproc remoteproc0: powering up 58820000.ipu
    [ 11.098509] remoteproc remoteproc0: Booting fw image dra7-ipu1-fw.xem4, size 6680920
    [ 11.244459] remoteproc remoteproc1: powering up 55020000.ipu
    [ 11.250691] remoteproc remoteproc1: Booting fw image dra7-ipu2-fw.xem4, size 3747220
    [ 11.425783] remoteproc remoteproc2: powering up 40800000.dsp
    [ 11.441727] remoteproc remoteproc2: Booting fw image dra7-dsp1-fw.xe66, size 4721340
    [ 11.463289] remoteproc remoteproc0: registered virtio0 (type 7)
    [ 11.463296] remoteproc remoteproc0: remote processor 58820000.ipu is now up
    [ 11.597556] remoteproc remoteproc3: powering up 41000000.dsp
    [ 11.597571] remoteproc remoteproc3: Booting fw image dra7-dsp2-fw.xe66, size 4721136
    [ 11.845781] remoteproc remoteproc3: registered virtio1 (type 7)
    [ 11.845787] remoteproc remoteproc3: remote processor 41000000.dsp is now up
    [ 11.989175] remoteproc remoteproc1: registered virtio2 (type 7)
    [ 11.996198] remoteproc remoteproc1: remote processor 55020000.ipu is now up
    [ 12.030748] remoteproc remoteproc2: registered virtio3 (type 7)
    [ 12.030754] remoteproc remoteproc2: remote processor 40800000.dsp is now up
    [ 21.389090] remoteproc remoteproc4: 4b234000.pru is available
    [ 21.920014] remoteproc remoteproc5: 4b238000.pru is available
    [ 21.992066] remoteproc remoteproc6: 4b2b4000.pru is available
    [ 22.352190] remoteproc remoteproc7: 4b2b8000.pru is available
    root@am57xx-evm:~#


    /***** Dump the dsp trace to confirm the application is running ]] *****/
    root@am57xx-evm:~# cat /sys/kernel/debug/remoteproc/remoteproc2/trace0
    [ 0.000] Watchdog disabled: TimerBase = 0x48086000 ClkCtrl = 0x4a009728
    [ 0.000] Watchdog_restore registered as a resume callback
    [ 0.000] 17 Resource entries at 0x95000000
    [ 0.000] messageq_single.c:main: MultiProc id = 4
    [ 0.000] registering rpmsg-proto:rpmsg-proto service on 61 with HOST
    [ 0.000] Watchdog disabled: TimerBase = 0x48086000 ClkCtrl = 0x4a009728
    [ 0.000] tsk1Fxn: created MessageQ: SLAVE_DSP1; QueueID: 0x40080
    [ 0.000] Awaiting sync message from host...

    root@am57xx-evm:~# cat /sys/kernel/debug/remoteproc/remoteproc3/trace0
    [ 0.000] Watchdog disabled: TimerBase = 0x48828000 ClkCtrl = 0x4a0097c8
    [ 0.000] Watchdog_restore registered as a resume callback
    [ 0.000] 17 Resource entries at 0x95000000
    [ 0.000] messageq_single.c:main: MultiProc id = 3
    [ 0.000] registering rpmsg-proto:rpmsg-proto service on 61 with HOST
    [ 0.000] Watchdog disabled: TimerBase = 0x48828000 ClkCtrl = 0x4a0097c8
    [ 0.000] tsk1Fxn: created MessageQ: SLAVE_DSP2; QueueID: 0x30080
    [ 0.000] Awaiting sync message from host...
    root@am57xx-evm:~#
    root@am57xx-evm:~# cd /sys/bus/platform/drivers/omap-rproc/
    root@am57xx-evm:/sys/bus/platform/drivers/omap-rproc# ls
    40800000.dsp 55020000.ipu bind uevent
    41000000.dsp 58820000.ipu module unbind

    /***** Power down DSP 1 *****/
    root@am57xx-evm:/sys/bus/platform/drivers/omap-rproc# echo 40800000.dsp > unbind
    [ 100.128845] omap_hwmod: mmu0_dsp1: _wait_target_disable failed
    [ 100.134744] omap-iommu 40d01000.mmu: 40d01000.mmu: version 3.0
    [ 100.140638] omap-iommu 40d02000.mmu: 40d02000.mmu: version 3.0
    [ 100.197066] omap_hwmod: mmu0_dsp1: _wait_target_disable failed
    [ 100.202966] remoteproc remoteproc2: stopped remote processor 40800000.dsp
    [ 100.241480] remoteproc remoteproc2: releasing 40800000.dsp
    root@am57xx-evm:/sys/bus/platform/drivers/omap-rproc#

    /***** Check DSP2 status which shows it is still running *****/
    root@am57xx-evm:/sys/bus/platform/drivers/omap-rproc#
    root@am57xx-evm:/sys/bus/platform/drivers/omap-rproc# cat /sys/kernel/debug/remoteproc/remoteproc3/trace0
    [ 0.000] Watchdog disabled: TimerBase = 0x48828000 ClkCtrl = 0x4a0097c8
    [ 0.000] Watchdog_restore registered as a resume callback
    [ 0.000] 17 Resource entries at 0x95000000
    [ 0.000] messageq_single.c:main: MultiProc id = 3
    [ 0.000] registering rpmsg-proto:rpmsg-proto service on 61 with HOST
    [ 0.000] Watchdog disabled: TimerBase = 0x48828000 ClkCtrl = 0x4a0097c8
    [ 0.000] tsk1Fxn: created MessageQ: SLAVE_DSP2; QueueID: 0x30080
    [ 0.000] Awaiting sync message from host...
    root@am57xx-evm:/sys/bus/platform/drivers/omap-rproc#

    /***** Check DSP1 status which shows it is not running *****/
    root@am57xx-evm:/sys/bus/platform/drivers/omap-rproc#
    root@am57xx-evm:/sys/bus/platform/drivers/omap-rproc# ls /sys/kernel/debug/remot
    eproc/remoteproc2/
    ls: /sys/kernel/debug/remoteproc/remoteproc2/: No such file or directory

    Rex
  • Thanks Rex. This is helpful.

    We will check the messageq_single example code to understand the resource table and other configurations and get back to you soon.

    Regards,

    Rajesh

  • Rajesh,

    Ok. I'll close the thread for now. You can reopen it when you reply to this thread. If your issue is resolved, please click "Resolved".
    Thanks!

    Rex
  • Thanks Rex. Please consider this as resolved.