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/UNIFLASH: Need to automate the flashing procedure for IDK-AM437x Board

Part Number: UNIFLASH
Other Parts Discussed in Thread: AM4379, FLASHTOOL

Tool/software: Code Composer Studio

HI,

In Code Composer Studio I was able to  click on "Launch the target configuration" for the created am437x.ccxml in which I have selected board as "IDK-AM437x" and the connection as "Texas Instrument XDS100v2 USB Debug Probe" .

After launching the target configuration, Code Composer Studio will start the debugging session. There I connected the Cortex A9 processor and loaded the GEL scripts. Then I run the AM437x EVM Initialization script.

Once the Initialization script is run, I have loaded the .out(executable file) which is not created by any Code Composer Studio Project.

Thus the Flashing on the Board was successful.

But when I run the below command through UNIFLASH.

uniflash.bat -ccxml am437x.ccxml -program executable.out

I am getting the below error:

***** Texas Instruments Universal Flash Programmer *****
<START: 16:55:37 GMT+0530 (IST)>
> Configuring the Flash Programmer with the given configuration ...
> Flash Manager is configured for the following part: AM4379
> Connecting to the target for Flash operations ...
SEVERE: M3_wakeupSS_1: Error connecting to the target: (Error -1266 @ 0x0) Devic
e is held in reset. Take the device out of reset, and retry the operation. (Emul
ation package 6.0.14.5)
SEVERE: emulation failure occurred
SEVERE: Error connecting to the target: emulation failure occurred
> Error connecting to target.
<END: 16:55:40 GMT+0530 (IST)>
<Total Time: 3.01s>
Kindly help me in automating the flashing on the AM4379 BOARD.
Regards,
Dhanya
  • Dhanya,

    CCS does not actually support programming of flash on AM437x devices. It only supports programming devices with on chip flash. If you are loading from CCS it would just be loading the portion of the program that maps to RAM and then loading symbols. This article describes how to use UniFlash with Sitara devices:

    processors.wiki.ti.com/.../Sitara_Uniflash_Quick_Start_Guide

    Regards,
    John
  • HI John,

    I have tried flashing the IDK-AM4379 board using Ethernet cable.

    I used the following procedure as mentioned in

    processors.wiki.ti.com/.../Sitara_Uniflash_Quick_Start_Guide


    Flashing a Board using Ethernet

    To program a board using the Ethernet interface between the Host PC and the target board, a private network between the two will be established. The HOST PC is set up with a Static IP address on one NIC (Network Interface Card) and connected to an ethernet switch or directly to the target board. A router that assigns IP addresses should not be used as the host PC needs to provide this to boot the target board.

    After doing everything. I am getting the below error ,

    FlashUnknownError in the Status column and the Progress is 0%.

    Regards,
    Dhanya
  • Dhanya,

    Can you please provide a console log of the IDK? That will give a lot more insight into the problem in order for us to correct it.

  • Hi,

    Please provide me some information on this. Kindly let me know if you need more information.
  • Dhanya,

    I was hoping for a console log from the target. This can be captured with something like Teraterm on Windows or Minicom on Linux. It will provide much more insight into how the device is trying to boot and what might be going wrong.

    There are also logs within uniflash that would be very useful.
  • HI,

    Actually I have skipped so many procedure while flashing the board.

    Now I am going through this document in order to generate the files necessary to flash the TI Sitara Board.

    processors.wiki.ti.com/.../Sitara_Uniflash_Flash_Programming_with_U-Boot

    Prepare Files to be Transferred to the Host PC with UniFlash

    Provide the below files to the Flash Programming process. These will need to be placed in the c:\AM335x_Flashtool\images directory (by default) or wherever Uniflash is configured to look for them.

    1. flash-image.out – concatenated target files to be flashed
    2. debrick.scr – customized script to burn target files to flash
    3. SPL (ex. u-boot-spl-restore.bin) - flash restore SPL that loads U-Boot
    4. U-Boot (ex. u-boot-restore.img) – flash restore U-Boot that loads debrick.scr

    I created the first two files as per the documentation.

    I am stuck in generating the 3rd file that is u-boot-spl-restore.bin. The document is intended for AM335x/AM437x .But only AM335x patch links are available.

    It says  "Download the patch set for your platform "

    Kindly let me know where i can get the uboot patch set for AM437x platform.

    Regards,

    Dhanya

  • Dhanya,

    Do you mind helping me understand your higher level requirements? What is it you intend to do? This board has a SD card for booting and running Linux and this can be used to flash the Quad SPI flash as well. In addition, by default, this board does not boot from Ethernet and will need to be modified to do so. Have you made this modification?

  • HI,

    Higher level requirement -Flashing the vxWork image on the TI Sitara AM437x board using Uniflash.

    Intention - Automate the whole procedure of flashing

    The procedure we were following:

    1) The board has a SDCARD in it , in which we are storing the uboot.img

    2)The Board is connected to the PC through ETHERNET and tftpd connection is established between the board and the test PC.

    3)Under the tftpd directory path we were providing the binaries to flash i.e vxWorks image.

    4)Pressing the reset on the board manually, it will bootup the board, which in turn will execute the MLO and then the uboot.img provided in the SDcard.

    5)After the boot process it will fetch the vxWork image(binaries) from the tftpd client and run it.


    We were checking the status of the board in the console log (tera term) .

    Please help me to understand how I can achieve doing the same as above using Uniflash.
  • Dhanya,

    Thank you for the explanation. Unfortunately, Uniflash is designed to be pretty specific to a particular flow for booting and flashing a Linux image. Since your needs are different, the status window will never completely reflect the process that you are trying to achieve. However, I think you can probably get it to do what you want it to do.

    Can you please share your console (tera term) log?

    Can you check the opendhcp and opentftp logs contained within Uniflash to see if they share anything interesting?

    It could very well be that you are successfully flashing the board, but the status reported is incorrect because of the difference between your flow and what Uniflash was designed to support.