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.

How to Boot DSP of DM6446 from ARM?

 I am using DSPBoot.exe to convert the .out file of DSP to .h file, this .h file is included into arm project and rebuild, but the dsp code is not working and it looks as if DSP is not booted by ARM.

  1. I have used a soft interrupt of DSP to ARM which is not firing, but it works correctly with emulator connected
  2.  I am using L2 memory of DSP and shared internal  memory  for storage of big buffer of  DSP Code, can this be an issue?
  3. I have used entry point of DSP in shared_l2_ram(0x11800000)
  4. I have mapped _cinit_00 section in this memory
  5. Can anyone tell me the significance and how to put the reset vector at the entry point as mentioned in sprue14 document of ti

Regards

  • I think you have just not read the sprue14 document carefully.  First configure all ur memory. See the TCM configuration. Both L2 and shared IM is same. Do you have any addresses for these memory. Post the snippet of code and memory map file.


  • Before posting the question i have read sprue14

    Now you get your facts right:

    1. L2 and shared L2 memory are two separate memories
    2. There is no TCM memory in DSP.
    3. Being a community member(which you are) do not comment on things which you have not done, because there is a difference between what is written in documents and what is there in reality
  • Hi varun,

    I have used entry point of DSP in shared_l2_ram(0x11800000)

    what is your purpose to use shared_l2_ram. please clarify it ?

    The ARM software can specify a boot address that maps to L1P internal DSP memory, AEMIF (Nand Flash), or DDR2 memory . The DSP can execute program instructions from any of these memories.

    Please try to use any of 3 mentioned memories i.e L1P , nand Flash or DDR2 memory.

    I will suggest you to use DDR memory as it is having large size, and mention DSPBOOTADDR as per DDR2 memory address.


    Also i WIll Suggest you to refer " 13.5.1 section" of sprue14.
  • Hi Arvind,

    I have used the gel file code in which there are two options mentioned in it which are

    1. Boot from L2 and its address used in gel file was of shared_l2_ram
    2. Boot from DDR address being 0x80000000

    but i have segregated the DDR between ARM and DSP i.e. from 0x80000000 to 0x88000000 to ARM and from this  address, rest to DSP

    I want to know where i have to put reset vector and interrupt vector table, has anyone done this?

    Thanks.

    Regards

  • Hi Varun,

    Comment Out this line in your gel file
    OnTargetConnect( )
    {
        / / DSP_Boot_from_L2_Sram( );           // Boot DSP from L2   
    }
    and try to run your code.

    1. Boot from L2 and its address used in gel file was of shared_l2_ram
    2. Boot from DDR address being 0x80000000

    Have to tried 2nd option ?

    Are you able to Boot DSP using DSP_Boot_from_DDR2( ), if you have not tried then try it once.

    As you said you are not using emulator, then which flash utility and memory you are are using ?? Please confirm it

  • Hi Arvind,

     Utility used is DSPBOOT.EXE to convert .out file of dsp to .h file which is included in ARM code in CCS 

    I have used these methods , during DDR boot i am using 0x88000000 as entry point address, and i am using emulator but no gel file in it, 

    when i use ddr boot  at  0x88000000, after dsp is powered up from arm and clock is configured i assign DSPBOOTADDR register to 0x88000000 and load DDR with the array which has .h file, after  this i connect DSP which gets connected in CCS but as i run dsp in CCS and then pause it, DSP seems to be in unknown address. 

    I think reset vector location is an issue, can you please tell me how to configure reset vector, sprue14c says that reset vector should be put at BOOT ADDRESS.  Regards

  • Hi Varun,


    I am using DSPBoot.exe to convert the .out file of DSP to .h file, this .h file is included into arm project and rebuild, but the dsp code is not working and it looks as if DSP is not booted by ARM.


    You meant that you able to boot DSP through ARM with emulator setup but its not working when you flashed.
    Is that right ?

    If that's the case then it seems some interrupt or registers not get enabled/initialized which was done through gel file when we used emulator.

  • Hi Titu,

    I also believe that there is some initialization issue, when  booting from arm, i can see in CCS that DSP

    1. is getting powered
    2. Getting reset(local)
    3. reset getting deasserted

    But after that dsp goes in reserved memory location.

    Another thing which i want to share is that

    1. i am doing optimization with placement of big size buffers are placed in L2 and L1D memories, can this be an issue?
    2. i have set entry point to 0x88000000 and .csl_vect section to 0x88000000 in my .cmd file, is that correct?

    Regards