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: McASP DSP example CCS issue

Part Number: AM5728

Tool/software: Linux

Dear Champs,

Is it possible to run DSP SW using CCS after linux booting done?

My customer has troubles to run DSP SW from CCS when linux booting done, but I'm curious if this is possible to run DSP SW from CCS after linux booting done.

They are testing MCASP_Audio_evmAM572x_c66EampleProject examples, and there was no issue to run it using CCS before linux booting.

i.e. when they connect EVM5728 in CCS immediately before linux booting, there was no issue to run this example SW. But, when they connect CCS after linux booting done, they failed to run example SW with below errors.

에러 내용은 아래와 같습니다.

root@am57xx-evm:/sys/bus/platform/drivers/omap-rproc#

root@am57xx-evm:/sys/bus/platform/drivers/omap-rproc#

root@am57xx-evm:/sys/bus/platform/drivers/omap-rproc#

root@am57xx-evm:/sys/bus/platform/drivers/omap-rproc#

root@am57xx-evm:/sys/bus/platform/drivers/omap-rproc# [ 4974.578247] omap-iommu 40d01000.mmu: iommu fault: da 0x43302400 flags 0x0

[ 4974.585073]  remoteproc2: crash detected in 40800000.dsp: type mmufault

[ 4974.591721] omap-iommu 40d01000.mmu: 40d01000.mmu: errs:0x00000002 da:0x43302400 pgd:0xd49b10cc *pgd:px00000000

[ 4974.602046]  remoteproc2: handling crash #1 in 40800000.dsp

[ 4974.607743]  remoteproc2: recovering 40800000.dsp

[ 4974.635833] omap_hwmod: mmu1_dsp1: _wait_target_disable failed

[ 4974.648674] omap_hwmod: mmu0_dsp1: _wait_target_disable failed

[ 4974.654658]  remoteproc2: stopped remote processor 40800000.dsp

[ 4974.671415]  remoteproc2: powering up 40800000.dsp

[ 4974.676276]  remoteproc2: Booting fw image dra7-dsp1-fw.xe66, size 7945952

[ 4974.690311] omap_hwmod: mmu0_dsp1: _wait_target_disable failed

[ 4974.696209] omap-iommu 40d01000.mmu: 40d01000.mmu: version 3.0

[ 4974.702146] omap-iommu 40d02000.mmu: 40d02000.mmu: version 3.0

[ 4974.762987]  remoteproc2: remote processor 40800000.dsp is now up

[ 4974.769473] virtio_rpmsg_bus virtio2: rpmsg host is online

[ 4974.775029]  remoteproc2: registered virtio2 (type 7)

[ 4974.781355] omap-rproc 40800000.dsp: received echo reply from 40800000.dsp

[ 4974.788357] virtio_rpmsg_bus virtio2: creating channel rpmsg-client-sample addr 0x36

[ 4974.796312] virtio_rpmsg_bus virtio2: creating channel rpmsg-client-sample addr 0x37

[ 4974.804308] virtio_rpmsg_bus virtio2: creating channel rpmsg-rpc addr 0x65

[ 4974.811446] rpmsg_rpc rpmsg18: probing service rpmsg-dce-dsp with src 1024 dst 101

[ 4974.819768] rpmsg_rpc rpmsg18: published functions = 9

They found the error was occurred while edma initialization as below source.

hEdma_0 = edma3init(0, &edmaResult); //jwkim 0 ---> 1

Could you please check this issue?

Thanks and Best Regards,

SI.

  • Hi,

    Is this the same question as the one asked here: e2e.ti.com/.../585148
  • Hi Biser,

    Thanks for informing this, but I could not response on this yet.
    I think it would be best if there is an examples showing how they can control McASP from DSP while linux is running.
    I suggested to try as below e2e, but they still failed to control McASP from DSP while linux is running.

    e2e.ti.com/.../514025

    Could you please help to get example how they can control McASP from DSP while linux is running?

    Thanks and Best Regards,
    SI.
  • First of all they should check if the McASP doesn't have a Linux driver installed, as it will lock the resources.
  • customer checked there was no setting for McASP in their linux setting, and they are still struggling with this issue.

    When they changed EDMA channel as below, they found EDMA init could be passed, but still issue in McASP connection.

    Void Audio_echo_Task()
    {
    volatile int32_t i32Count, status = 0;

    hMcaspDev2 = NULL;

    /* 1. EDMA Initializations */
    EDMA3_DRV_Result edmaResult = 0;

    /* Enable all McASP events */
    sampleEdma3GblCfgParams[0].dmaChannelHwEvtMap[0] |= 0xFFFFu;


    // hEdma_0 = edma3init(0, &edmaResult);

    hEdma_0 = edma3init(1, &edmaResult);



    *********** error log ************

    [ 301.797402] omap-iommu 40d02000.mmu: iommu fault: da 0x45c00000 flags 0x0
    [ 301.804228] remoteproc2: crash detected in 40800000.dsp: type mmufault
    [ 301.810880] omap-iommu 40d02000.mmu: 40d02000.mmu: errs:0x00000002 da:0x45c00000 pgd:0xd09ad170 *pgd:px00000000
    [ 301.821192] remoteproc2: handling crash #4 in 40800000.dsp
    [ 301.826810] remoteproc2: recovering 40800000.dsp
    [ 301.856030] omap_hwmod: mmu1_dsp1: _wait_target_disable failed
    [ 301.869072] omap_hwmod: mmu0_dsp1: _wait_target_disable failed
    [ 301.875039] remoteproc2: stopped remote processor 40800000.dsp
    [ 301.892040] remoteproc2: powering up 40800000.dsp
    [ 301.896874] remoteproc2: Booting fw image dra7-dsp1-fw.xe66, size 7945952
    [ 301.911010] omap_hwmod: mmu0_dsp1: _wait_target_disable failed
    [ 301.916910] omap-iommu 40d01000.mmu: 40d01000.mmu: version 3.0
    [ 301.922852] omap-iommu 40d02000.mmu: 40d02000.mmu: version 3.0
    [ 301.984942] remoteproc2: remote processor 40800000.dsp is now up
    [ 301.991440] virtio_rpmsg_bus virtio2: rpmsg host is online
    [ 301.996985] remoteproc2: registered virtio2 (type 7)




    It seemed EDMA channel 0 was occupied by linux.
    Could you please check and let me know how EDMA 0 channel released from linux kernel?



    Thanks and Best Regards,
    SI.
  • Hi SI
     
    There is a similar e2e thread which may help e2e.ti.com/.../2052803

    David