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 a C6748 DSP ?

Other Parts Discussed in Thread: OMAP-L138

Hello,

we are using a L138 EVM board and CCSV5

for our future design, we plan to use a C6748 DSP and an ARM host processor

link to host processor will be SPI and maybe HPI

What is the best choice for booting DSP ?

I understand that :

To boot from SPI :

- we have to use DSP SPI slave mode

- we can use AISGen tool to generate boot file

- then we have to implement boot protocol on ARM host processor. The only example program that I found is AISParse.cs in C# (from OMAP-L138_FlashAndBootUtils_2_35), so we will have to translate it to C.

To boot from HPI, we need to generate a bin file, then write it to DSP memory, as memory is seen from host processor

But I am not sure which is the best choice ...

Could you help us ?

Thank you

  • Greetings,

    I recommend you to use HPI, since you are going to use the device as C6748, with an external ARM, unless you are planning on using the port muxed with the HPI pins.

    Good luck,

    Sam

  • Didier,

    What features are missing from the OMAP-L138 that have forced you to use an external ARM processor with the C6748 instead of the ARM-9 in the OMAP-L138 version of this part?

    Regards,
    RandyP

  • Thank you

    But I understand that with HPI, we cannot use AISGen, which generates a good file, with DSP and external memory Initialization ... Am I right ?

    Can we do that with HPI ? How can we generate bin file ?

    Didier

  • So from what I pointed you to you will be able to

    1.  Design your 2nd Boot loader and generate a .h or .bin from the .out.

    2.  Design your application and generate a .h or .bin from the .out.

    3.  Store both .h or .bin in your host run-time.

    4.  At start-up, your host will download and launch the 2nd boot loader.

    5.  Once the 2nd boot loader notify the host it completed the host then download your application.

    6.  Once done, your host will tell the boot loader to launch the application.

    You will need to add such code for 5 and 6 in here

     

        /* Jump to App */

        /* boot loader tell host it is done and wait for host to tell it to launch application */


        /* Get application start address */
        app_start = (void (*)(void))(APP_START_CU);

        app_start();

     

    Good luck,

    Sam

  • Hello

    Here are some explanations :

    1)  we wanted to reuse a former ARM9 design

    2) OMAP-138 has common memory between ARM9 and DSP, and we experienced that it is slower than two memories

    For another design, we need a powerfull host processor, such as cortex A8. We need a low power, so did not choose a C6A8.

    we need anyway a floating point DSP.

    But I am (only) a software designer, if you have others questions, I will transmit them to hardware designers ...

    Best regards

  • Hello Sam,

    For one of our design, we finally will not use HPI, so we have to boot dsp from SPI ...

    In former message, I wrote that :

    To boot from SPI :

    - we have to use DSP SPI slave mode

    - we can use AISGen tool to generate boot file

    - then we have to implement boot protocol on ARM host processor. The only example program that I found is AISParse.cs in C# (from OMAP-L138_FlashAndBootUtils_2_35), so we will have to translate it to C.

    In fact, I used AISGen to generate boot file for serial line. Then  boot dsp by means of UartHost.exe tool, and it worked very well. So I thought that it will be easy to do that from SPI, using AISParse.cs code ...

    Could you confirm that ? Or do you know another solution ?

    Thank you

  • Greetings,

    That will do for you then for a product that you can program its SPI memory in factory.  You just need to ascertain that you will not need any SPI memory update in the field, otherwise you will need to design a method to do that, from  the ARM directly or via the C6748.

    When using HPI, field upgrade is a no problem going to the ARM controller FLASH memory.

    Since you are going to use HPI as control interface between your host ARM and C6748, you might as well do the booting from it and reduce the parts and BOM by not having the SPI boot memory.

    The AISGen tool is nice to have and use, but all depend on your overall product architecture.

    HPI boot/control may be your way to go at the end of the day, and you do have the tools to generate the .h or .bin for both the 2nd boot loader I provided you and example of and the application.

    Good Luck,

    Sam

  • Hello Sam,

    Maybe there is a misunderstanding : we do not want to use a SPI Flash memory.

    We have only a SPI link between ARM Host processor and DSP

    An OS on ARM will store DSP program, that we can update from ARM OS.

    ARM Host processor must start DSP : transmit boot program, then reset to start.

    Best regards,

  • Greetings,

    This is then a way to go so long that the SPI throughput is adequate for your host interface for boot/control.  For any high bandwidth data read/write, SPI will be too slow.

    Good Luck,

    Sam