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.

AM6442: IPC_notify_echo

Part Number: AM6442
Other Parts Discussed in Thread: SYSCONFIG, UNIFLASH,

Tool/software:

Hi Team,

I have used the example given in the SDK for the IPC notify echo to test the multicore booting and IPC also.

From the default path provided in SDK (C:\ti\mcu_plus_sdk_am64x_10_00_00_20\examples\drivers\ipc\ipc_notify_echo\am64x-evm\m4fss0-0_nortos\ti-arm-clang)

i have not found the ipc_notify_echo.release.appimage.hs_fs file.

then started building using the CCS tool 

while building example found few errors  for LOG_SHM_MEM ,USER_SHM_MEM etc then i have fixed these by adding the region in the sysconfig file 

and able build successfully for all r5 and m4 core.

for a53 core still few errors found 

So, i have ignored the a53 core and used all the r5 and m4 core  ipc_notify_echo.release.appimage.hs_fs file to flash to OSPI using the commands listed below 

Also flashed success, please see log below :

Logs: 

C:\ti\mcu_plus_sdk_am64x_10_00_00_20\tools\boot>python uart_uniflash.py -p COM29 --cfg=D:\Projects\SE_AM6442\3.Sources\2.Demo\2.SPI\EVK_SPI_loopback\Workspace\mcspi_loopback_am64x-evm_m4fss0-0_nortos_ti-arm-clang\Debug\default_sbl_ospi_multi_partition.cfg

Parsing config file ...
Parsing config file ... SUCCESS. Found 7 command(s) !!!

Executing command 1 of 7 ...
Found flash writer ... sending sbl_prebuilt/am64x-evm/sbl_uart_uniflash.release.hs_fs.tiimage

Sent flashwriter sbl_prebuilt/am64x-evm/sbl_uart_uniflash.release.hs_fs.tiimage of size 321150 bytes in 32.74s.

Executing command 2 of 7 ...
Command arguments : --file=../../examples/drivers/boot/sbl_ospi_multi_partition/am64x-evm/r5fss0-0_nortos/ti-arm-clang/sbl_ospi_multi_partition.release.hs_fs.tiimage --operation=flash --flash-offset=0x0
Sent ../../examples/drivers/boot/sbl_ospi_multi_partition/am64x-evm/r5fss0-0_nortos/ti-arm-clang/sbl_ospi_multi_partition.release.hs_fs.tiimage of size 321422 bytes in 33.53s.
[STATUS] SUCCESS !!!

Executing command 3 of 7 ...
Command arguments : --file=../../examples/drivers/ipc/ipc_notify_echo/am64x-evm/r5fss0-0_freertos/ti-arm-clang/ipc_notify_echo.release.appimage.hs_fs --operation=flash --flash-offset=0x080000
Sent ../../examples/drivers/ipc/ipc_notify_echo/am64x-evm/r5fss0-0_freertos/ti-arm-clang/ipc_notify_echo.release.appimage.hs_fs of size 63610 bytes in 8.9s.
[STATUS] SUCCESS !!!

Executing command 4 of 7 ...
Command arguments : --file=../../examples/drivers/ipc/ipc_notify_echo/am64x-evm/r5fss0-1_nortos/ti-arm-clang/ipc_notify_echo.release.appimage.hs_fs --operation=flash --flash-offset=0x100000
Sent ../../examples/drivers/ipc/ipc_notify_echo/am64x-evm/r5fss0-1_nortos/ti-arm-clang/ipc_notify_echo.release.appimage.hs_fs of size 22569 bytes in 5.04s.
[STATUS] SUCCESS !!!

Executing command 5 of 7 ...
Command arguments : --file=../../examples/drivers/ipc/ipc_notify_echo/am64x-evm/r5fss1-0_nortos/ti-arm-clang/ipc_notify_echo.release.appimage.hs_fs --operation=flash --flash-offset=0x180000
Sent ../../examples/drivers/ipc/ipc_notify_echo/am64x-evm/r5fss1-0_nortos/ti-arm-clang/ipc_notify_echo.release.appimage.hs_fs of size 22569 bytes in 5.06s.
[STATUS] SUCCESS !!!

Executing command 6 of 7 ...
Command arguments : --file=../../examples/drivers/ipc/ipc_notify_echo/am64x-evm/r5fss1-1_nortos/ti-arm-clang/ipc_notify_echo.release.appimage.hs_fs --operation=flash --flash-offset=0x200000
Sent ../../examples/drivers/ipc/ipc_notify_echo/am64x-evm/r5fss1-1_nortos/ti-arm-clang/ipc_notify_echo.release.appimage.hs_fs of size 22569 bytes in 5.05s.
[STATUS] SUCCESS !!!

Executing command 7 of 7 ...
Command arguments : --file=../../examples/drivers/ipc/ipc_notify_echo/am64x-evm/m4fss0-0_nortos/ti-arm-clang/ipc_notify_echo.release.appimage.hs_fs --operation=flash --flash-offset=0x280000
Sent ../../examples/drivers/ipc/ipc_notify_echo/am64x-evm/m4fss0-0_nortos/ti-arm-clang/ipc_notify_echo.release.appimage.hs_fs of size 28165 bytes in 5.53s.
[STATUS] SUCCESS !!!

All commands from config file are executed !!!

After flashing complete put the evm to OSPI boot mode and following logs are observed.

Logs:

Starting OSPI Multi-Partition Bootloader ...

DMSC Firmware Version 10.0.8--v10.00.08 (Fiery Fox)
DMSC Firmware revision 0xa
DMSC ABI revision 4.0

INFO: Bootloader_runCpu:180: CPU r5f1-0 is initialized to 800000000 Hz !!!
INFO: Bootloader_runCpu:180: CPU r5f1-1 is initialized to 800000000 Hz !!!
INFO: Bootloader_runCpu:180: CPU m4f0-0 is initialized to 400000000 Hz !!!
Some tests have failed!!

Please do explain what went wrong.

  • Hi, thanks, I created an internal ticket to get fix OOB build for M4 and RF5 IPC Notify echo MCU+SDK examples.

    Few questions/comments:

    - Did you modify the demo? if so, which cores are you using for communication? Some useful academy information IPC Notify

    -  This is a multicore project, so you need to import the system CCS project and build it using the CCS project menu: AM64x MCU+ SDK: IPC Notify Echo

    Thank you,

    Paula

  • Hi Paula Carrillo.

    Thanks for the reference, I gone through changes specified are available in the example.

    As of now i want check with R50_0 , R51_0 and M4F

    /* main core that starts the message exchange */
    uint32_t gMainCoreId = CSL_CORE_ID_R5FSS0_0;
    /* remote cores that echo messages from main core, make sure to NOT list main core in this list */
    uint32_t gRemoteCoreId[] = {
    CSL_CORE_ID_R5FSS1_0,
    CSL_CORE_ID_M4FSS0_0,
    CSL_CORE_ID_MAX /* this value indicates the end of the array */
    }; 

    Did the above changes in the ipc_notify_echo.c file.

    Still below log showing


    Starting OSPI Multi-Partition Bootloader ...

    DMSC Firmware Version 10.0.8--v10.00.08 (Fiery Fox)
    DMSC Firmware revision 0xa
    DMSC ABI revision 4.0

    INFO: Bootloader_runCpu:180: CPU r5f1-0 is initialized to 800000000 Hz !!!
    INFO: Bootloader_runCpu:180: CPU r5f1-1 is initialized to 800000000 Hz !!!
    INFO: Bootloader_runCpu:180: CPU m4f0-0 is initialized to 400000000 Hz !!!
    Some tests have failed!!

  • Hi, please allow me a couple of days to recreate the setup. In the meantime, a question/request, in your first post you mentioned you modified sysconfig files due to building errors. Actually, as IPC examples are system project users need to import the system project to build it. Could you give a try to this an see if you don't get building errors? if so, please also give a try running it in your board and see if you still have test failing

    thank you,

    Paula 

  • Hi Paula Carrillo,

    Yes, i have imported the IPC examples as is and built found the following error.

    makefile:150: recipe for target 'ipc_notify_echo_am64x-evm_r5fss0-0_freertos_ti-arm-clang.out' failed
    "syscfg/linker.cmd", line 128: warning #10097: memory range not found: LOG_SHM_MEM on page 0
    "syscfg/linker.cmd", line 127: error #10265: no valid memory range available for placement of ".bss.log_shared_mem"
    "syscfg/linker.cmd", line 127: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. run placement with alignment fails for section ".bss.log_shared_mem" size 0x3800
    "syscfg/linker.cmd", line 131: warning #10097: memory range not found: RTOS_NORTOS_IPC_SHM_MEM on page 0
    "syscfg/linker.cmd", line 130: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. run placement with alignment fails for section ".bss.ipc_vring_mem" size 0
    error #10010: errors encountered during linking; "ipc_notify_echo_am64x-evm_r5fss0-0_freertos_ti-arm-clang.out" not built
    tiarmclang: error: tiarmlnk command failed with exit code 1 (use -v to see invocation)
    gmake[1]: *** [ipc_notify_echo_am64x-evm_r5fss0-0_freertos_ti-arm-clang.out] Error 1
    gmake: *** [all] Error 2
    makefile:146: recipe for target 'all' failed

    **** Build Finished ****

    Then added these memory region in sysconfig.

    After these addition able build successfully. (This is changes which i was mentioned earlier)

  • Hi Mallikarjuanreddy, ok, so you imported using "system project" (not independent projects) and still faced building/running issues. I am OOO first part of the week, but I will check at the end of the week and come back to you.

    thank you,

    Paula

  • Hi Mallikarjuanreddy, sorry for coming back to you after few days.

    I setup MCU+SDK IPC demo on my AM64x EVM as following, and it worked for me.

    EVM preparation:

    1) I flashed my AM64x EVM using "default_sbl_null.cfg" as I wanted to use CCS to load/run the binaries, for debugging purpose. I followed steps from here AM64x MCU+ SDK: EVM Setup

    CCS:

    2) I imported and built "ipc_notify_echo_am64x-evm_system_freertos_nortos". This system project imports and builds the other core projects.

    3) I launched my board configuration (AM64x.ccxml) from "target configurations"

      

    4) I connected each of the cores used in this IPC example and loaded their *.out images

    5) Run all the cores, no need to be in a particular order as the application has a sync mechanism at the start which waits for all cores to start before doing the test

    6) Check result on UART console

    [m4f0-0] 29.957886s : [IPC NOTIFY ECHO] Remote Core waiting for messages from main core ... !!!
    [r5f0-1] 15.847896s : [IPC NOTIFY ECHO] Remote Core waiting for messages from main core ... !!!
    [r5f0-1] 199.181715s : [IPC NOTIFY ECHO] Remote core has echoed all messages !!!
    [r5f1-0] 30.498545s : [IPC NOTIFY ECHO] Remote Core waiting for messages from main core ... !!!
    [r5f1-0] 203.812592s : [IPC NOTIFY ECHO] Remote core has echoed all messages !!!
    [r5f1-1] 47.533006s : [IPC NOTIFY ECHO] Remote Core waiting for messages from main core ... !!!
    [r5f1-1] 214.389540s : [IPC NOTIFY ECHO] Remote core has echoed all messages !!!
    [a530-0] 191.329044s : [IPC NOTIFY ECHO] Remote Core waiting for messages from main core ... !!!
    [a530-0] 371.247740s : [IPC NOTIFY ECHO] Remote core has echoed all messages !!!
    [IPC NOTIFY ECHO] All echoed messages received by main core from 5 remote cores !!!
    [IPC NOTIFY ECHO] Messages sent to each core = 1000000
    [IPC NOTIFY ECHO] Number of remote cores = 5
    All tests have passed!!

    As a note, I also tried flashing the application, so mainly, I imported/build system project in CCS and then flashed "ipc_notify_echo_system.appimage.hs_fs". Steps I followed to flash the application: AM64x MCU+ SDK: Flash a Hello World example. After booting application worked OK, and I got similar results than when loading/running from CCS.

    Let me know if you still face issues building / running this OOB example

    Thank you,

    Paula