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: Stopping IPU1 something the system hangs up

Part Number: AM5728

Tool/software: Linux

Hi,

I am seeing an odd situation when unloading IPU1 firmware from system. Sometimes the whole system hangs / freezes after entering the following Linux command:

echo stop > /sys/class/remoteproc/remoteproc0/state

It is odd because it do not show any system error or debug error before freezing up.

It is more odd because freezes using the TI example demo located at:

ipc_3_47_01_00\examples\DRA7XX_linux_elf\ex02_messageq\ipu1

However, there is no problem loading ipu1 firmware.

Loading ipu1 firmware goes OK :

echo start > /sys/class/remoteproc/remoteproc0/state

[ 2212.947785] remoteproc remoteproc0: powering up 58820000.ipu
[ 2212.960645] remoteproc remoteproc0: Booting fw image dra7-ipu1-fw.xem4, size 7299420
[ 2212.968931] omap-iommu 58882000.mmu: 58882000.mmu: version 2.1
[ 2212.983346] virtio_rpmsg_bus virtio1: rpmsg host is online
[ 2212.989153] remoteproc remoteproc0: registered virtio1 (type 7)
[ 2212.995388] remoteproc remoteproc0: remote processor 58820000.ipu is now up
[ 2213.002726] virtio_rpmsg_bus virtio1: creating channel rpmsg-proto addr 0x3d

I am using ti-processor-sdk-rtos-am57xx-evm-04.03.00.05-Windows-x86-Install for generating ipu1 firmware.

Questions:

  • Do you know how to make the system to not freeze up when unloading ipu1 firmware? as our application requires load/unloading ipu1 firmware on external events.
  • How do you suggest to debug or track this issue as there is no system error showed up in terminal.
  • What is the proper way to unload and then load ipu1 firmware?

Thanks in advance,

Gabohkiin

  • Hi,

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

    Please see the thread in e2e.ti.com/.../755141 which has the same issue as you. The correct command to bring down and up the IPU is using unbind/bind. I posted the full logs of unbind and bind the IPU1 in the thread.

    If this resolves your issue, please click "Resolved". Thanks

    Rex
  • Hi Rex, Biser,

    Kernel version:

    # uname -r
    4.9.41

    In regards of unbinding and binding, I followed your suggestion and this is what I am getting:

    ~# cd /sys/bus/platform/drivers/omap-rproc/
    /sys/bus/platform/drivers/omap-rproc# echo 58820000.ipu > unbind
    [  193.414975] remoteproc remoteproc0: releasing 58820000.ipu
    /sys/bus/platform/drivers/omap-rproc# echo 58820000.ipu > bind
    [  203.988149] omap-rproc 58820000.ipu: assigned reserved memory node ipu1_cma@9d000000
    [  203.996397] remoteproc remoteproc0: 58820000.ipu is available
    /sys/bus/platform/drivers/omap-rproc# echo 58820000.ipu > unbind
    [  217.656272] remoteproc remoteproc0: releasing 58820000.ipu
    /sys/bus/platform/drivers/omap-rproc# echo 58820000.ipu > bind
    [  222.527154] omap-rproc 58820000.ipu: assigned reserved memory node ipu1_cma@9d000000
    [  222.535390] remoteproc remoteproc0: 58820000.ipu is available
    /sys/bus/platform/drivers/omap-rproc# echo 58820000.ipu > unbind
    [  226.510822] remoteproc remoteproc0: releasing 58820000.ipu
    /sys/bus/platform/drivers/omap-rproc#

    Looks like I am not obtaining the rest of the output as you Rex when I use bind. In other words, using bind do not power and boot up dra7-ipu1-fw.xem4. However, using start method powers and boots OK.

    Is there something missing?

    Apparently what is described in   is the same issue, the system goes unresponsive.

    Thanks,

  • Hi, Gabohkiin,

    Your kernel is from PLSDK 4.1 release which is too old. My logs are from PLSDK 5.1, Kernel 4.14.67 (5 releases newer than 4.1).

    Rex

  • Thanks Rex.

    Do you know if this issue is a known issue of the kernel from PLSDK 4.1?

    Would you recommend to upgrade 5.1?

    Regards,

  • Hi, Gabohkiin,

    I don't think it was a known issue in 4.1 release. I just checked our bug system and 4.2 release note. AM57x IPU M4 support was an requirement and available starting in 4.2 release. In that case, running IPC example on IPU before 4.2 release is not supported. I suggest you use the latest SDK. TI just released PSDK 5.2 before the holidays.

    Rex