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.

AM5728: Starting/stopping a C66x DSP program under Linux

Part Number: AM5728


One of our requirements for a project is to run different DSP programs on the C66x DSP depending on the configuration.

The MPU subsystem (2x Arm Cortex-A15) is running Linux.
A Linux userspace application should copy the corresponding DSP Program (precompiled binary file) into the memory area for the DSP and then start (and later stop) the DSP.

How can this be implemented?
Is there an example in PROCESSOR-SDK-LINUX-AM57X or an application note?

The SoC AM5728 has 2 C66x DSP cores.
Is it possible to run 2 different programs on the two DSP cores?


Jan.

  • Vielen Dank für den Hinweis auf den Link.

    Auch nach Lesen des Kapitels "IPC on AM57xx" ist für mich das IPC System leider immer noch nicht verständlich.

    Ich kann zwar die dort beschriebenen Schritte mit den Beispielprogrammen ausführen, jedoch kenne ich die grundlegende Funktionsweise des remoteproc/rpmsg Treibers dannach immer noch nicht!

    - Wie gelangt das auf dem DSP Kern auszuführende Programm tatsächlich?
    - Wie bestimme ich die Startadresse und Größe für das auszuführende Programm?
    - Wie kann ich mit dem auf dem DSP ausgeführten Programm kommunizieren und Daten austauschen?

    Is there possibly a basic introduction or tutorial in the topic "TI IPC"?

  • Thank you for pointing out the link.

    Even after reading the chapter "IPC on AM57xx" the IPC system is unfortunately still not understandable for me.

    I can execute the steps described there with the example programs, however, I know the basic operation of the remoteproc/rpmsg driver then still not!

    - How does the program to be executed on the DSP core actually get there?
    - How do I determine the start address and size for the program to run?
    - How can I communicate and exchange data with the program running on the DSP?

    Is there possibly a basic introduction or tutorial in the topic "TI IPC"?

  • Hi Jan,

    - How does the program to be executed on the DSP core actually get there?

    The remoteproc uses the ELF loader and loads a DSP firmware into DDR with the appropriate MMU configurations setup, before releasing the reset of the DSP core.

    How do I determine the start address and size for the program to run?

    The start address comes from the ELF firmware file's entry-point field. This value is used to program the corresponding DSP Boot Vector address. The firmware has to be built to link the appropriate address as the starting entry-point.

    How can I communicate and exchange data with the program running on the DSP?

    This is all done through the rpmsg stack. The bottom-level transport is the virtio-ring based transport.

    regards

    Suman