AUDIO-AM62D-EVM: Switching from Config 1 to Config 2 in Audio App – Where to Modify Code?

Part Number: AUDIO-AM62D-EVM
Other Parts Discussed in Thread: UNIFLASH

Tool/software:

If I want to switch from Config 1 to Config 2 as described in the Getting Started Guide, in which parts of the Audio App code do I need to make changes? I don’t see any macros or build-time flags that seem to control this selection. Could you please guide me on what needs to be updated (files, functions, or configuration parameters) to switch configurations correctly?

  • Hi Kaviyasaran,

    You don't need to change anything. You can just load the A53 binary and it will work.

    Thanks,

    Shreyansh

  • I'm not referring to loading in CCS. My question is about flashing the Audio App application — since the audio routing is controlled by the A53 (Config 2) rather than the C7x (Config 1), how should I flash it correctly so that the board uses the A53 configuration?

  • Hi Kaviyasaran,
    There is no change needed to run the config 2. You need to build the a53 application and flash it, just don't load the C7x binary.

    Thanks,
    Shreyansh

  • Could you please confirm if my understanding is correct?

    Currently, I have the following command in the configuration file:

    --file=C:/ti/AM62D-AWE-SDK_11.00.00.17/audio_app/am62d/c75/ti-c7000/audioApp_c7x.release.appimage.hs_fs --operation=flash --flash-offset=0xA00000

    If I want to load the A53 core in my configuration, do I need to comment out this line in the script?

  • That's correct. You don't need to flash the audio app image for C7x if you want to use config 2. Keep in mind though, if you had previously written the binary for C7x to the flash, you will have to delete the section on the flash other wise SBL will load up the image present at the offset or alternatively you can even flash some other dummy application.

    Thanks,
    Shreyansh

  • Hi,

    When I follow the steps mentioned above, I can see in the UART log:

    Remote core: 2 ready - which mean a53

    However, when I try to connect to the AWE server, the connection fails. With the default configuration file, I am able to connect to the AWE server and run the signal chain successfully.

    Do I need to perform any additional steps to connect to the server with this configuration?

    The changes I made to configure config 2 are as follows:

    # C7x image is flashed at 0xA00000 or to whatever offset your bootloader is configured for
    #--file=../../examples/drivers/ipc/ipc_rpmsg_echo/am62dx-evm/c75ss0-0_freertos/ti-c7000/ipc_rpmsg_echo.release.appimage.hs_fs --operation=flash --flash-offset=0xA00000
    --file=C:/ti/AM62D-AWE-SDK_11.00.00.17/mcu_plus_sdk/am62dx/examples/hello_world/am62dx-evm/a53ss0-0_freertos/gcc-aarch64/hello_world.release.appimage.hs_fs --operation=flash --flash-offset=0xA00000

    Additionally, I have a query regarding config 3, which uses both cores. I want to flash the images of both cores through the configuration file. What steps should I follow to continue further with this configuration?

  • Hi Kaviyasaran,
    Is there any reason why you are flashing ipc appimage instead of audio app image on A53 core? You need to load the audio app image on the A53 core for the AWE server to work. 

    Additionally, I have a query regarding config 3, which uses both cores. I want to flash the images of both cores through the configuration file. What steps should I follow to continue further with this configuration?

    Please refer to the getting started guide present in the SDK. For the config 3, you need to set the BUILD_AWE_MULTI = 1 in includes.mak, then rebuild the audio app and flash both the cores(A53 and C7x) with the compiled app image.

    Thanks,
    Shreyansh

  • I just flashed the A53 binary and replaced the C7x image to try running configuration 2. Cfg file is attached below for reference. Still awe server is not get connected. please do the needful. 

    #-----------------------------------------------------------------------------#
    # #
    # DEFAULT CONFIGURATION FILE TO BE USED WITH THE FLASHWRITER SCRIPT #
    # #
    #-----------------------------------------------------------------------------#
    #
    # By default this config file,
    # - points to pre-built flash writer, bootloader for this EVM
    # - The application image points to relative path of the ipc rpmsg A53 application image for this EVM
    # - Make sure this application is built before running this script
    # - You can customized this config file to point to your own bootloader and/or application images
    # - You can use --operation=flashverify if you just want to verify the flash contents and not flash the file.
    #

    # First point to sbl_uart_uniflash_stage1 binary, which initialises DDR and receives sbl_uart_uniflash_stage2 binary
    --flash-writer=sbl_prebuilt/am62dx-evm/sbl_uart_uniflash_stage1.release.hs_fs.tiimage

    # When sending sbl_uart_uniflash_stage2 binary make sure to flash at SOC memory offset 0x0.
    # Points to sbl_uart_uniflash_stage2 binary, which function's as a server to flash one or more
    --file=../../examples/drivers/boot/sbl_uart_uniflash_multistage/sbl_uart_uniflash_stage2/am62dx-evm/r5fss0-0_nortos/ti-arm-clang/sbl_uart_uniflash_stage2.release.appimage.hs_fs --operation=flash --flash-offset=0x0

    # Program the OSPI PHY tuning attack vector
    --operation=flash-phy-tuning-data

    # Now send one or more files to flash or flashverify as needed. The order of sending files does not matter

    # When sending bootloader make sure to flash at offset 0x0. ROM expects bootloader at offset 0x0
    --file=sbl_prebuilt/am62dx-evm/sbl_ospi_stage1.release.hs_fs.tiimage --operation=flash --flash-offset=0x0

    # 2nd stage bootloader with DM image is flashed at 0x80000 or to whatever offset your bootloader is configured for
    --file=../../examples/drivers/ipc/ipc_rpmsg_echo/am62dx-evm/r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo.release.appimage.hs_fs --operation=flash --flash-offset=0x80000

    # HSM image is flashed at 0x240000 or to whatever offset your bootloader is configured for
    --file=../../tools/boot/HSMAppimageGen/board/am62dx-evm/hsm.appimage.hs_fs --operation=flash --flash-offset=0x240000

    # When sending application image, make sure to flash at offset 0x800000 (default) or to whatever offset your bootloader is configured for
    #--file=../../examples/drivers/ipc/ipc_rpmsg_echo/am62dx-evm/mcu-r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo.release.appimage.hs_fs --operation=flash --flash-offset=0x800000
    --file=C:/ti/AM62D-AWE-SDK_11.00.00.17/audio_app/am62d/mcu-r5f/ti-arm-clang/audioApp_mcur5f.release.appimage.hs_fs --operation=flash --flash-offset=0x800000

    # C7x image is flashed at 0xA00000 or to whatever offset your bootloader is configured for
    #--file=../../examples/drivers/ipc/ipc_rpmsg_echo/am62dx-evm/c75ss0-0_freertos/ti-c7000/ipc_rpmsg_echo.release.appimage.hs_fs --operation=flash --flash-offset=0xA00000
    --file=C:/ti/AM62D-AWE-SDK_11.00.00.17/bin/am62dx/sd_card/cfg2_a53/app_a53 --operation=flash --flash-offset=0xA00000

    # A53 image is flashed at 0x1200000 or to whatever offset your bootloader is configured for
    #--file=../../examples/drivers/ipc/ipc_rpmsg_echo/am62dx-evm/a53ss0-0_nortos/gcc-aarch64/ipc_rpmsg_echo.release.appimage.hs_fs --operation=flash --flash-offset=0x1200000
    --file=C:/ti/AM62D-AWE-SDK_11.00.00.17/audio_app/am62d/a53-smp/gcc-aarch64/audioApp_a53-smp.release.appimage.hs_fs --operation=flash --flash-offset=0x1200000

  • Hi Kaviyarasan,
    If you want to use config 2, then you don't need to flash the C7x audio app binary, you can either clear the memory so that C7x doesn't boot with audio app image or you can flash empty project on it.

    Thanks,
    Shreyansh

  • Actually, to clear the existing flashed image from the C7x flash memory, I used a simple “Hello World” project. Inside main(), I commented out all the code and kept only return 0;. I’ve attached this below. However, this approach didn’t work — AWE is still not connecting to the server.

    # A53 image is flashed at 0x1200000 or to whatever offset your bootloader is configured for
    # --file=../../examples/drivers/ipc/ipc_rpmsg_echo/am62dx-evm/a53ss0-0_nortos/gcc-aarch64/ipc_rpmsg_echo.release.appimage.hs_fs --operation=flash --flash-offset=0x1200000
    --file=C:/ti/AM62D-AWE-SDK_11.00.00.17/audio_app/am62d/a53-smp/gcc-aarch64/audioApp_a53-smp.release.appimage.hs_fs --operation=flash --flash-offset=0x1200000

    # C7x image is flashed at 0xA00000 or to whatever offset your bootloader is configured for
    # --file=../../examples/drivers/ipc/ipc_rpmsg_echo/am62dx-evm/c75ss0-0_freertos/ti-c7000/ipc_rpmsg_echo.release.appimage.hs_fs --operation=flash --flash-offset=0xA00000
    --file=C:/ti/AM62D-AWE-SDK_11.00.00.17/mcu_plus_sdk/am62dx/examples/hello_world/am62dx-evm/a53ss0-0_freertos/gcc-aarch64/hello_world.release.appimage.hs_fs --operation=flash --flash-offset=0xA00000

    In my last attempt, I also tried flashing the A53 binary in place of the C7x image, but that also didn’t allow AWE to connect to the server.

    I need some clarification on how configuration 1 and configuration 2 are differentiated during compilation — specifically, what changes in the build process or makefiles define these two configurations.

  • Hi Kaviyarasan,

    For config 2, you just need to ensure that BUILD_AWE_MULTI is set to 0 in asdk_am62d_includes.mak. Instead of smp image, can you try with single a53 core audio app image?

    Thanks,
    Shreyansh

  • Thanks for the update. It works with Config 2, but when I try to run Config 3, AWE is not connecting to the server.

    Currently, BUILD_AWE_MULTI is set to 1, and I’m using the default configuration file that includes images for both processors. I also tried using the A53 (non-SMP) image along with the C7x image, but that didn’t work either.

    Could you please clarify where exactly the changes for compiling the three different configurations (Config 1, Config 2, and Config 3) are defined or handled in the build setup?

  • Hi, just a gentle reminder on my query above. Kindly let me know if there are any updates or guidance. Thanks!

  • Hi Kaviyarasan,
    Can you share the logs(both boot and application)? Also, share the config file for config3.

    Thanks,

    Shreyansh

  • Hi, this is the log I’m getting after enabling multi-instance in the makefile. I’ve attached the log below, and the corresponding CFG file is included further down for reference.


    SYSFW Firmware Version 11.0.7--v11.00.07 (Fancy Rat)
    SYSFW Firmware revision 0xb
    SYSFW ABI revision 4.0

    [BOOTLOADER_PROFILE] Boot Media : FLASH
    [BOOTLOADER_PROFILE] Boot Media Clock : 166.667 MHz
    [BOOTLOADER_PROFILE] Boot Image Size : 262 KB
    [BOOTLOADER_PROFILE] Cores present :
    r5f0-0
    [BOOTLOADER PROFILE] System_init : 21841us
    [BOOTLOADER PROFILE] Board_init : 0us
    [BOOTLOADER PROFILE] Drivers_open : 1us
    [BOOTLOADER PROFILE] SBL Drivers_open : 194us
    [BOOTLOADER PROFILE] Board_driversOpen : 7us
    [BOOTLOADER PROFILE] SBL Board_driversOpen : 1289us
    [BOOTLOADER PROFILE] Sciclient Get Version : 10171us
    [BOOTLOADER PROFILE] App_loadSelfcoreImage : 4939us
    [BOOTLOADER_PROFILE] SBL Total Time Taken : 38445us

    Image loading done, switching to application ...
    Starting 2nd stage bootloader
    025 10:58:22
    Sciserver Version: v2025.04.0.0-REL.MCUSDK.K3.11.00.00.17+
    RM_PM_HAL Version: v11.00.07
    Starting Sciserver..... PASSED
    [BOOTLOADER_PROFILE] Boot Media : FLASH
    [BOOTLOADER_PROFILE] Boot Media Clock : 166.667 MHz
    [BOOTLOADER_PROFILE] Boot Image Size : 5097 KB
    [BOOTLOADER_PROFILE] Cores present :
    hsm-m4f0-0
    mcu-r5f0-0
    a530-0
    a530-1
    a531-0
    a531-1
    c75ss0
    [BOOTLOADER PROFILE] System_init : 1926us
    [BOOTLOADER PROFILE] Board_init : 2us
    [BOOTLOADER PROFILE] FreeRtosTask Create : 299us
    [BOOTLOADER PROFILE] SBL Drivers_open : 736us
    [BOOTLOADER PROFILE] SBL Board_driversOpen : 119us
    [BOOTLOADER PROFILE] App_loadImages : 3141us
    [BOOTLOADER PROFILE] App_loadMCUImages : 4765us
    [BOOTLOADER PROFILE] App_loadA53Images : 51383us
    [BOOTLOADER PROFILE] App_loadDSPImages : 62195us
    [BOOTLOADER_PROFILE] SBL Total Time Taken : 124570us

    Image loading done, switching to application ...
    Starting RTOS/Baremetal applications
    mcu/r5f tuning server : Configuring Codec...
    mcu/r5f tuning server : Configuring Codec...Done
    mcu/r5f tuning server : Configuring IPC...
    mcu/r5f tuning server : registering IPC notify clients...
    mcu/r5f tuning server : sending mcu/r5f ipc_notify to code 2
    mcu/r5f tuning server : sending mcu/r5f ipc_notify to code 7
    mcu/r5f tuning server : Configuring IPC...
    mcu/r5f tuning server : waiting for remote core
    Remote Core : 7 ready

    config file:

    #-----------------------------------------------------------------------------#
    # #
    # DEFAULT CONFIGURATION FILE TO BE USED WITH THE FLASHWRITER SCRIPT #
    # #
    #-----------------------------------------------------------------------------#
    #
    # By default this config file,
    # - points to pre-built flash writer, bootloader for this EVM
    # - The application image points to relative path of the ipc rpmsg A53 application image for this EVM
    # - Make sure this application is built before running this script
    # - You can customized this config file to point to your own bootloader and/or application images
    # - You can use --operation=flashverify if you just want to verify the flash contents and not flash the file.
    #

    # First point to sbl_uart_uniflash_stage1 binary, which initialises DDR and receives sbl_uart_uniflash_stage2 binary
    --flash-writer=sbl_prebuilt/am62dx-evm/sbl_uart_uniflash_stage1.release.hs_fs.tiimage

    # When sending sbl_uart_uniflash_stage2 binary make sure to flash at SOC memory offset 0x0.
    # Points to sbl_uart_uniflash_stage2 binary, which function's as a server to flash one or more
    --file=../../examples/drivers/boot/sbl_uart_uniflash_multistage/sbl_uart_uniflash_stage2/am62dx-evm/r5fss0-0_nortos/ti-arm-clang/sbl_uart_uniflash_stage2.release.appimage.hs_fs --operation=flash --flash-offset=0x0

    # Program the OSPI PHY tuning attack vector
    --operation=flash-phy-tuning-data

    # Now send one or more files to flash or flashverify as needed. The order of sending files does not matter

    # When sending bootloader make sure to flash at offset 0x0. ROM expects bootloader at offset 0x0
    --file=sbl_prebuilt/am62dx-evm/sbl_ospi_stage1.release.hs_fs.tiimage --operation=flash --flash-offset=0x0

    # 2nd stage bootloader with DM image is flashed at 0x80000 or to whatever offset your bootloader is configured for
    --file=../../examples/drivers/ipc/ipc_rpmsg_echo/am62dx-evm/r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo.release.appimage.hs_fs --operation=flash --flash-offset=0x80000

    # HSM image is flashed at 0x240000 or to whatever offset your bootloader is configured for
    --file=../../tools/boot/HSMAppimageGen/board/am62dx-evm/hsm.appimage.hs_fs --operation=flash --flash-offset=0x240000

    # When sending application image, make sure to flash at offset 0x800000 (default) or to whatever offset your bootloader is configured for
    #--file=../../examples/drivers/ipc/ipc_rpmsg_echo/am62dx-evm/mcu-r5fss0-0_freertos/ti-arm-clang/ipc_rpmsg_echo.release.appimage.hs_fs --operation=flash --flash-offset=0x800000
    --file=C:/ti/AM62D-AWE-SDK_11.00.00.17/audio_app/am62d/mcu-r5f/ti-arm-clang/audioApp_mcur5f.release.appimage.hs_fs --operation=flash --flash-offset=0x800000

    # C7x image is flashed at 0xA00000 or to whatever offset your bootloader is configured for
    #--file=../../examples/drivers/ipc/ipc_rpmsg_echo/am62dx-evm/c75ss0-0_freertos/ti-c7000/ipc_rpmsg_echo.release.appimage.hs_fs --operation=flash --flash-offset=0xA00000
    --file=C:/ti/AM62D-AWE-SDK_11.00.00.17/audio_app/am62d/c75/ti-c7000/audioApp_c7x.release.appimage.hs_fs --operation=flash --flash-offset=0xA00000

    # A53 image is flashed at 0x1200000 or to whatever offset your bootloader is configured for
    #--file=../../examples/drivers/ipc/ipc_rpmsg_echo/am62dx-evm/a53ss0-0_nortos/gcc-aarch64/ipc_rpmsg_echo.release.appimage.hs_fs --operation=flash --flash-offset=0x1200000
    --file=C:/ti/AM62D-AWE-SDK_11.00.00.17/audio_app/am62d/a53-smp/gcc-aarch64/audioApp_a53-smp.release.appimage.hs_fs --operation=flash --flash-offset=0x1200000

  • Hi Kaviyarasan,

    I tested the config3 and it is working fine for me and I am able to connect to AWE. 

    Please do the following - 

    config3.zip

    Download  the config3.zip and extract it. 

    Inside you can find the r5f folder. Replace the current r5 folder (inside audio_app/am62d) with the r5f folder inside the zip. (This contains the second stage bootloader inside it.) 

    I have also attached the config files for your reference. Please try this and let me know. 

    Regards,
    Ritapravo

  • Yes, now it is working with multi-instance.

    I suspect that the SBL was rebuilt as part of this setup, because in my previous setup, multi-instance did not work at all. It seems that proper SBL initialization along with the updated Makefile settings was necessary for multi-instance support.

  • Hi Kaviyarasan,

    Thank you for informing.

    Regards,
    Ritapravo