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.

AM572x EDMA problems when running audio example

Other Parts Discussed in Thread: TMDSEVM572X, SYSBIOS

Hi,

I'm trying to run audio MCASP example  MCASP_Audio_evm_AM572x_c66ExampleProject for EVM -AM572X with CCS version 6.1.3, but when code launches 'Audio_echo_Task()' from BIOS_Start(), debugger crashes when edma3init() is called.

Any idea of what can be the fault?

I can see at LINUX console the following:

[72487.557341] omap-iommu 40d01000.mmu: iommu fault: da 0x43302400 flags 0x0
[72487.564167] remoteproc2: crash detected in 40800000.dsp: type mmufault
[72487.570820] omap-iommu 40d01000.mmu: 40d01000.mmu: errs:0x00000002 da:0x43302400 pgd:0xec5c10cc *pgd:px00000000
[72487.581232] remoteproc2: handling crash #24 in 40800000.dsp
[72487.586919] remoteproc2: recovering 40800000.dsp
[72487.604989] omap_hwmod: mmu1_dsp1: _wait_target_disable failed
[72487.610928] ------------[ cut here ]------------

Regards,

  • The RTOS team have been notified. They will respond here.
  • Hi

    To get started - Could you tell us the version of processor SDK that are you running?

    PROCESSOR-SDK-LINUX-AM57X: Linux Processor SDK for AM57x -  Installed on Linux platform

    PROCESSOR-SDK-LINUX-RT-AM57X: Linux-RT Processor SDK for AM57x - Installed on Linux Platform

    PROCESSOR-SDK-RTOS-AM57X: RTOS Processor SDK for AM57x - Installed on Windows platform

     

    What version of processor SDK are you running?

     

    It sounds like you using the TMDSEVM572X versus the TMDXIDK5728, but please confirm.

     

    David

  • David, I'm using TMDSEVM572X, installed on a linux Ubuntu 16.04 Virtual Machine.
  • I'm using TMDSEVM572X with an Linux Ubuntu 16.04 virtual machine
  • Hi

    Thank you.

    Which Processor SDK are you running on your virtual machine?
    PROCESSOR-SDK-LINUX-AM57X: Linux Processor SDK for AM57x - Installed on Linux platform
    PROCESSOR-SDK-LINUX-RT-AM57X: Linux-RT Processor SDK for AM57x - Installed on Linux Platform
    PROCESSOR-SDK-RTOS-AM57X: RTOS Processor SDK for AM57x - Installed on Windows platform

    What version of the Processor SDK are you using?

    David
  • David:

    I've installed the following:

    • CCS 6.1.3 
    • ti-processor-sdk-rtos-am57xx-evm-03.00.00.04-Linux-x86-Install
    • bios_setuplinux_6_46_01_38
    • pdk_am57xx_1_0_3

    If you need it, I can transcript CCS Installation details.

    Thanks for your support.

     

  • I tried the Windows installation ti-processor-sdk-rtos-am57xx-evm-03.00.00.04-Windows-x86-Install.exe on my Windows machine, I didn't see the function edma_init() crash.

    Two questions:

    1) Your crash log has timestamp, it looks like that Linux OS is runing on ARM core, at the same time you used C66x core to run the MCASP program, is that true?

    2) You used SYSBIOS 6_46_01_38, the suggested is 6.45.1.29 as in release note.

    I am attaching my .out file built from Windows installer and SYSBIOS 6.45.1.29, and if this crash as well, then Linux/Windows doesn't matter, and version of SYSBIOS doesn't matter. The example is intended to run standalone without others, I suspected that Linux OS used some EDMA instance and C66x program tries to use the same and caused issue.  

    You can also upload your .out file to me for a trial.  https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/MCASP_5F00_Audio_5F00_evmAM572x_5F00_c66ExampleProject.out

    Regards, Eric

  • Eric:

    I'm having problems when answering you. I'm trying now with internet explorer. I hope this time post will be sent.


    I have tried your .out file and results are the same. In response for your questions:

    1.- Yes, Linux is running in my EVM.
    2.- My SYSBIOS is 6.45.1.29, not 6.46.xx.xx. My error. I have 6.46.xx.xx installer, but I have not launched it. So, no problem is with BIOS versión.

    More information:

    I have tried to change in audioSample_io.c file as follows:

    Original code in Audio_echo_Task():

        hEdma_0 = edma3init( 0, &edmaResult);

     

    Changed code:

     

        hEdma_0 = edma3init( 1, &edmaResult);

    With this modification, now EDMA driver appears as PASS. But below, programs waits forever when reaching the first semaphore_pend()

    /* Forever loop to continously receviec and transmit audio data */

    for (i32Count = 0; i32Count >= 0; i32Count++)

    {

    if(gblErrFlag)

    break;

     

    Semaphore_pend(semR, BIOS_WAIT_FOREVER); // ß- here waits forever

    Semaphore_pend(semT, BIOS_WAIT_FOREVER);

    To run with this modification, I have stopped ARMs A15_0 y A15_1.

    I wait your comments.

     

    Thanks

  • lso I upload my original code, without modifications and with modifications so you can test both.

    Files_out.zip

  • You need to connect audio input from PC or mobile using a stereo cable connected to the Audio In port and you also need to connect speakers or headphones on the Audio out port.

    Also are you able to stop booting from Linux (if you use a SD card, you can remove it) then run the SYSBIOS example on C66x without Linux?

    Regards, Eric

     

  • Eric:

    If I extract SD card, then EVM goes from power ON to OFF after 7 seconds or so. I remember that some kind of bug is in the EVM and some register has to be written in order to have power ON indefinitely.

    I have conected one microphone to audio input and headphones con audio out, but no sound is heared.

    Regads.

  • Eric:

    I have tried to stop boot in U-Boot before Linux is launched. With this, I get power ON continously, but when try to connect with debugger, a message is displayed indicating that DSP1 is held in reset and no debug can be done on it.

    Any workaround for this behaviour?

  • The procedures to connect EVM (avoid 7 seconds shut off) and connect DSP core are documented: processors.wiki.ti.com/.../AM572x_GP_EVM_Hardware_Setup

    Regards, Eric
  • Eric:

    Eureka. Example is now running OK. Thanks for your support.