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.

CCS/PROCESSOR-SDK-AM65X: Uniflash programming

Part Number: PROCESSOR-SDK-AM65X
Other Parts Discussed in Thread: UNIFLASH

Tool/software: Code Composer Studio

Hi,

I am trying to flash the u-boot images to the AM65x-IDK board using CCS and Uniflash. I am successfully able to flash the images using both.

Steps :

Before flashing the images, the EVM is connected to the CCS using the XDS110 port. The M3, R5 and A53 cores are connected which initializes the board.

A file called uart_am65xx_evm_flash_programmer.out which is provided by the TI RTOS SDK is loaded to the A53 core using CCS. After runing this program, the EVM expects files from the UART port i.e MAIN_UART0 as a debug print CCCCCC is printed on the console by the RBL. Then i use the uniflash to load the respective images to the flash and it works fine.

I assume the uart_am65xx_evm_flash_programmer.out file configures the MAIN_UART0 for image loading and as it is an object file, I don't understand how can i configure the same for MAIN_UART1 as there is no source code available for it.

How can i use the MAIN_UART1 to flash the images as our custom board doesn't have MAIN_UART0 ??

  • Hi,
    Your query has been assigned to a TI engineer. Please note that response may be delayed due to Christmas and New Year holidays.
  • Hi Venkatesh,

    venkatesh Rayavarapu said:

    I assume the uart_am65xx_evm_flash_programmer.out file configures the MAIN_UART0 for image loading and as it is an object file, I don't understand how can i configure the same for MAIN_UART1 as there is no source code available for it.

    How can i use the MAIN_UART1 to flash the images as our custom board doesn't have MAIN_UART0 ??

    If you want to use a different UART such as MAIN_UART1 you will need to customize and rebuild the Flash programmer binary. The source code is contained as part of the RTOS Processor SDK (http://software-dl.ti.com/processor-sdk-rtos/esd/AM65X/latest/index_FDS.html) I would however recommend going directly to the development Git repository to be able to benefit from the latest improvements:

    https://git.ti.com/gitweb?p=processor-sdk/pdk.git;a=summary

    The Uniflash source as it relates to AMxxx devices is located at packages / ti / board / utils / uniflash 

    The steps how to re-build the uniflash tools are located here:

    http://software-dl.ti.com/processor-sdk-rtos/esd/docs/06_01_00_08/rtos/index_board.html#rebuilding-board-utils

    I realize that all this is not very straightforward but due to the large number of possible use cases at this point we can only provide a reference implementation to enable customers to make modifications they need for their specific scenarios.

    Regards, Andreas

  • Thanks Andreas for your response.

    I used the uart_am65xx_evm_flash_programmer.out file present in Uniflash 4.5.0 folder(uniflash_4.5.0/processors/FlashWriter/am65xx_evm/uart_am65xx_evm_flash_programmer.out) and not from the RTOS SDK (/pdk_am65xx_1_0_5/packages/ti/board/utils/uniflash/target/bin/am65xx_evm/uart_am65xx_evm_flash_programmer.out).

    The binary from uniflash is working fine but the binary from SDK is not working.

    When i load the file to A53 core taken from Uniflash, it loads and waits for the user to run the core. Once it runs, the CCCC debug lines comes.

    While with SDK binary, the moment the loading finishes, it automatically starts running and no debug line prints.

    I Assume it's using different compiler for compiling the source code. I'm looking into it but again I'm not sure what causing these behavior. Any help will be greatly appreciated.

  • Hi Venkatesh,

    venkatesh Rayavarapu said:
    While with SDK binary, the moment the loading finishes, it automatically starts running and no debug line prints.

    The source project and binaries part of the RTOS SDK build a Flash programmer firmware that runs on the R5F core, not on the A53 core. So the code is not compatible and won't run using the "old" methods you used. You will need to load that out file into the R5F core. Also there is actually an issue with the Flash loader binaries included in the RTOS SDK v6.0 (which is what you seem to be using) and v6.1 (production SDK as of today) in that it only works when loaded (booted) by ROM over the UART interface but not when getting side-loaded via JTAG. The latest development tree of the Flash loader FW I pointed to earlier (https://git.ti.com/gitweb?p=processor-sdk/pdk.git;a=summary) has this issue fixed (with commit https://git.ti.com/gitweb?p=processor-sdk/pdk.git;a=commit;h=ffb7622819bc9694de4cc777e4516fd64b999c13). This fix will also be part of the upcoming RTOS SDK v6.2.

    Regards, Andreas

  • Hi Andreas,

    Thanks for your response.

    I am unable to build the development tree. There is nothing to build in the uniflash directory.

    Am I doing something wrong ?

    Also inside the uniflash/target/soc/ directory, is AM65xx folder moved to K3 ?  !!!!!!

  • We have downloaded source from , (https://git.ti.com/gitweb?p=processor-sdk/pdk.git;a=summary

    And try to compile the source code . but its not building logs attached in forum . also shared info below

     

    1 error

    ::::::::

    Isrc/devices/audio -Isrc/devices/combos -Isrc/devices/common -Isrc/devices/fpd -Isrc/devices/sensors -Isrc/devices/pmic -I/home/subhash/TTI/pdk-c7f4ce4/packages -I/home/subhash/TTI/edma3_lld_2_12_05_30E/packages -fr=/home/subhash/TTI/pdk-c7f4ce4/packages/ti/binary/ti/board/board/obj/j721e_evm/r5f/release -fs=/home/subhash/TTI/pdk-c7f4ce4/packages/ti/binary/ti/board/board/obj/j721e_evm/r5f/release -fc src/j721e_evm/board_init.c

    make[3]: /home/subhash/TTI/ti-cgt-arm_18.12.1.LTS/bin/armcl: Command not found

     

    downloaded compiler and updated in PDK installed path

    after installing compiler or tool chain .. 2nd error for csl component  get error as below

     

     

    2 error

    ::::::::::

    hash/TTI/pdk-c7f4ce4/packages -I/home/subhash/TTI/edma3_lld_2_12_05_30E/packages -fr=/home/subhash/TTI/pdk-c7f4ce4/packages/ti/binary/ti/board/board/obj/j721e_evm/r5f/release -fs=/home/subhash/TTI/pdk-c7f4ce4/packages/ti/binary/ti/board/board/obj/j721e_evm/r5f/release -fc src/j721e_evm/board_init.c

    "src/j721e_evm/include/board_internal.h", line 44: fatal error: cannot open source file "ti/csl/csl_types.h"

    1 catastrophic error detected in the compilation of "src/j721e_evm/board_init.c".

    Compilation terminated.

     

    got csl source code from (http://software-dl.ti.com/processor-sdk-rtos/esd/AM65X/latest/index_FDS.html)  and updated in SDK after setup  I  got the error as below

     

    3 error

    :::::::::

    ges/ti/binary/ti/board/board/obj/j721e_evm/r5f/release -fc src/j721e_evm/board_init.c

    "/home/subhash/TTI/pdk-c7f4ce4/packages/ti/board/src/j721e_evm/include/board_cfg.h", line 50: fatal error: cannot open source file "ti/csl/soc/j721e/src/cslr_wkup_ctrl_mmr.h"

    1 catastrophic error detected in the compilation of "src/j721e_evm/board_init.c".

    Compilation terminated.

     

     

    maybe I need to download csl component from other git  tree here ,

    need info related to depended  git component which are required for build the uniflash utility source

  • Venkatesh,

    did you source the environment as suggested in the documentation link I pointed to early before trying make?

    http://software-dl.ti.com/processor-sdk-rtos/esd/docs/06_01_00_08/rtos/index_board.html#rebuilding-board-utils

    Also I just tried transplanting the updated PDK repository (https://git.ti.com/gitweb?p=processor-sdk/pdk.git;a=summary) into an actual RTOS SDK installation myself in the hopes to be able to build it but was unable to do so in a way that would result in easy-recreatable steps (I could not spent a ton of time on it, but there are issues for example with some of that new PDK code requiring updates to the chip support library CSL that is not publicly available).

    However building the Uniflash tool should work with the RTOS SDK as it ships without any issues. But that source base is a bit old unfortunately, and runs in a way that is different than the current Uniflash tool itself (runs in the R5F core, not the A53). So what you could do is to first re-create this build process based on the vanilla RTOS SDK, and then cherry-pick changes/improvements from the PDK git repository to try to make it work but that is probably more effort than what it's worth.

    I would suggest you wait for the next Processor SDK RTOS for AM65x release to have an up-do-date source base that builds without issues as a base for your customizations in terms of UART. I'll try to find out what the schedule is for that and report back.

    In the meantime, is this blocking your progress on something? There are other ways to program images onto the board. If you give some more background what you are trying to accomplish I might be able to point you to an alternative solution.

    Regards, Andreas

  • Andreas Dannenberg said:
    I would suggest you wait for the next Processor SDK RTOS for AM65x release to have an up-do-date source base that builds without issues as a base for your customizations in terms of UART. I'll try to find out what the schedule is for that and report back.

    I checked with the team and it turns out there won't be a v6.2 release of the RTOS SDK for AM654. However the v6.3 release is planned for e/o 1Q2020, so your best bet would be to wait for this as a starting point for your customizations.

    Regards, Andreas