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.

dsp/bios not working correctly with OMAP 35X EVM?

Hi all,

I am woking on my OMAP 35X EVM.

I tried the clk example coming with DSP/BIOS 5_33_03 .

I followed the BIOS tutorial and created a new prokect.

When I run the clk program, after the main() finished , the program will not enter task function.

the program just finished main()and went directly to the location below:

007FEF34          main_ret:
007FEF34 1FFFD812            CALLP.S2      $evm3530cfg.s62:2294:2332$ (PC-320 = 0x007fede0),B3
007FEF38 1FF9D812            CALLP.S2      IDL_F_loop (PC-12608 = 0x007fbde0),B3
007FEF3C E2000000            .fphead       n, l, W, BU, nobr, nosat, 0010000
007FEF40 001800E2            B.S2          IRP
007FEF44 00008000            NOP           5
007FEF48 00000000            NOP          
007FEF4C 00000000            NOP          
007FEF50 00000000            NOP          
007FEF54 00000000            NOP          
007FEF58 00000000            NOP          
007FEF5C 00000000            NOP 

It looks the program exited after main()!

then I unpluged EVM and tried Beagle board , not changing anything else, this time it works!

the pgram went into the task and print something into trace and sleep and went idle.

I just dont understant why the OMAP EVM doesnt work but the beagle borad works instaed?

Actually I configured the BIOS following EVM's hardware sepc, like the memory mao address.

is the EVM  defected or something is unabled?

can abybody help me with this issue?

I want to see how I can make the EVM work!

it is funny cause that we paid $1500 for the EVM and $150 for the beagle board, now the cheap one works while the expensive not!

Thanks a lot!

 

  • This has nothing to do with OMAP35x EVM versus the Beagleboard hardware.  It very likely has to do with the software that is executed, which is loaded into the flash devices, on those platforms before you connect to the target with CCS.

    Although you did not indicate where your program is stuck at, I suspect it can not get past the CLK_start() function.  You will need to enable the GPTimer5 or GPTimer6 clock from the ARM.  DSP/BIOS uses either GPTimer5 or GPTimer6 to provide the DSP/BIOS time base, which by default is held in reset on the OMAP35xx.  The bootloader software on the Beagleboard must be enabling this clock whereas the OMAP35xx EVM does not.

    This has been discussed on the following thread : https://community.ti.com/forums/p/2360/8931.aspx#8931

    Please see my post on Dec 23, 2008.

  • HI Brandon,

    thanks for your reply.

    acatually I did follow that thread, here is what I do:

    what I did was to add this function in  ARM's BSquare_Omap35xx_CortexA8.gel  and run this function.

    hotmenu EnableGPT5()
    {
       #define CM_FCLKEN_PER    *(int *)0x48005000
       #define CM_ICLKEN_PER     *(int *)0x48005010
      
       PRM_CLKSEL_REG = PRM_CLKSEL_REG|0x00000020;
       CM_ICLKEN_PER = CM_ICLKEN_PER|0x00000020;
        GEL_TextOut("GPT5 Enabled.\n");
    }

     

    But I still did not get my EDMA working, it seems the DMA got stuck in the while loop to wait for the transfer to finished.

    I know that the clock could be the resason, but another observation make me suspect that: since the oma3evm DSP/BIOS configuration doesnt work, I configuraed DSP/BIOS with sdk6455 configuration, this time the same clk example run to the task, did print several messages and stoped at the sleep() function inside the task.

    do you hvae any idea of what could go wrong?

    Thanks!

     

     

    Thanks a lot!

  • It is not clear to me what you are debugging.  I didn't realize the issue you were having was with the EDMA.  The original post only mentioned using the clk example, which typically fails due to the fact that the clock driving the system tick in DSP/BIOS is not running.  Hence the reason I referred you to the other post to address that issue specifically.

    From what I understand, you are wanting to get an OMAP3 DSP/BIOS application running on the OMAP3EVM.

  • Hi Brandon,

    thanks for your help as always.

    at first I was trying to run the EDMA LLD example on OMAP35x, I found that the program failed to enter task so I wondered if ther DSP/BIOS worked correctly.

    so I turned to the simple clk DSP/BIOS example and want to see if it worked.

    then the problem of the clock issues poped up, so I tried beagle board and it worked.

    I turned back to OMAP35x, modified the GEL file to enable the GPT5 , this time the OMAP35x also works with BIOS.

    Now I returned to my first problem, the EDMA LLD example. The ds/bios stuff woks fine, but it seems like the program got stuck at the function EDMA3_RM_AllocResource(). and I dot know why I am having this problem.

    actually I just want to run a very simple test to see if I can use EDMA from the DSP side of OMAP3.

    Do you know if there are other ways or examples to do that?

    You help is always greatly appreciated!

     

  • Please mention the EDMA3LLD version you are using.

  • what I I used is edma3_lld_01_06_00_01 .