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.

Flashing Custom Design DM6446

Hi,

On our custom design with DM6446,  in UART boot mode I use "sfh_DM644x.exe" to flash it. Different from the DM6446 EVM  first "BOOTME BOOTME BOOTME" comes 45 seconds after power on. What may be the reason?

In final trials I got the following logs:

****************************************************************************

C:\DM644x_FlashAndBootUtils_2_00\DM644x\GNU>sfh_DM644x.exe -erase
-----------------------------------------------------
   TI Serial Flasher Host Program for DM644x
   (C) 2010, Texas Instruments, Inc.
   Ver. 1.67
-----------------------------------------------------
Platform is Windows.
Globally erasing the NAND flash device on the DM6446

Attempting to connect to device COM1...
Press any key to end this program at any time.
Waiting for the DM644x...
BOOTME commmand received. Returning ACK and header...
ACK command sent. Waiting for BEGIN command...
        Target:   BEGIN
BEGIN commmand received. Sending CRC table...
 100% [ ████████████████████████████████████████████████████████████ ]
                           CRC table sent.

Waiting for DONE...
DONE received.  Sending the UBL...
 100% [ ████████████████████████████████████████████████████████████ ]
                              UBL sent.

DONE received.  UBL was accepted.

Waiting for SFT on the DM644x...

****************************************************************************

Why does it freeze for SFT? How can I handle this problem?

 

In my first trials it passed this stage with the following

***********************************************

      Target: BOOTUBL

BOOTUBL command received. Returning  CMD and command...

CMD value sent : Waiting for DONE...

      Target: DONE

DONE Received .Command was accepted

      Target: FAIL

***********************************************

And console returned "BOOTUBL BOOTUBL BOOTUBL BOOTUBL ..."

What may be the reasons for these problems? Which peripherals can be related (DDR, NAND etc?)

Thanks for all your help

Ferhat

 

 

 

 

 

 

 

 

  • Ferhat,

    The SFT that gets downloaded is just a UBL that performs chip initialization and then continues interacting with the host compute to perform the flashing operation.  Before the SFT sends the BOOTUBL prompt, it initializes the PLLs, DDR memory, etc.  If you don't see the BOOTUBL, then its possible the chip initialization has not passed for some reason.   You may need to update the device init code and rebuild the SFT/SFH pair for your particular platform.  You can also try using the "-v" command-line option to get more verbose output from the tool.

    Regards, Daniel

  • Thank you Daniel,

    In my first trials SFT also sent me the BOOTUBL prompt (and stays in that state) but now it no longer sends me the BOOTUBL. What may be the reason of such unpredictable change?

    Best regards

    Ferhat

  • Ferhat,

    That's hard to say, but clearly if you haven't changed anything, then whatever the code is doing is putting the device into some kind of semi-stable state.  Another option to get some better idea as to what is happening is to us the SLH (serial loader host) to load a small program to the device via the UART.  Using the load2IRAM option lets you load your own UBL, which you could customize for debug purposes from the UBL source provided in the flash and boot utility package.

    Regards, Daniel

  • Daniel,

    What may be reasons for the 45 seconds delay of initial "BOOTME" message coming from DM6446 in UART Mode? (In NAND mode it sends immediately)

    Using load2IRAM I can succesfully send "ubl_DM6446_NAND.bin".  However it does not solve any problem. Again DM6446 returns BOOTME state. Below is the command promt log:

    **********************************************************************

    C:\DM644x_FlashAndBootUtils_2_00\DM644x\GNU>slh_DM644x.exe -load2IRAM ubl_DM6446_NAND.bin -v
    -----------------------------------------------------
       TI Serial Loader Host Program for DM644x
       (C) 2010, Texas Instruments, Inc.
       Ver. 1.67
    -----------------------------------------------------


    Platform is Windows.
    Loading image to ARM IRAM

    Attempting to connect to device COM1...
    Press any key to end this program at any time.


    Waiting for the DM644x...
            Target:  BOOTME
    BOOTME commmand received. Returning ACK and header...
    ACK command sent. Waiting for BEGIN command...
            Target:   BEGIN
    BEGIN commmand received. Sending CRC table...
     100% [ ████████████████████████████████████████████████████████████ ]
                               CRC table sent.

    Waiting for DONE...
            Target:    DONE
    DONE received.  Sending the UBL...
     100% [ ████████████████████████████████████████████████████████████ ]
                                  UBL sent.

            Target:    DONE
    DONE received.  UBL was accepted.

    Operation completed successfully.

    **********************************************************************

    Although I started the application in verbose mode (-v) I could not see any debug message. How could I enable it?

    In order to compile the SFT and SFH applications, I think I need Mono Framwork installed. However I could not find any Mono-Project download for Redhat or Fedora? Which release shoud I download and install to my Redhat Enterprise 5?

    Thanks and best regards,

    Ferhat 

  • Mr. Allread,

    I have read the application reports SPRAAI0 and SPRAAI4A.and  would like to thank you for these highly detailed reports since they helped so much to me. However I faced with some problems while trying to boot my DM6446 based custom board.

    Using "DVFlasher_1_10.exe" given in SPRAAI4A (could not find the newest release and have problems compiling and running sfh_DM644x.exe)
    I could erase NAND and write ubl and Uboot to NAND successfully in the following way.
    1-"DVFlasher_1_10.exe -enand"
    2-"DVFlasher_1_10.exe -fnandsrec u-boot-1.2.0-davinci.bin"
    However when I turn to NAND mode and power on, system freezes with the following log:
    *********************************************************
    TI UBL Version: 1.00, Flash type: NAND
    Booting PSP Boot Loader
    PSPBootMode = NAND
    Starting NAND Copy...
    Initializing NAND flash...
    Valid MagicNum found.
    NAND Boot success.
       DONE
    U-Boot 1.2.0 (Mar 24 2010 - 20:03:33)
    DRAM:  256 MB
    unknown vendor=0 Flash:  0 kB
    *********************************************************

    Using "DVSerial.exe" given in SPRAAI0, I could run the "uartapp.bin". However when I tried "test DDR RAM" I got "BOOTME BOOTME ..." from the console.

    Considering the above situations what can you say about the reasons for the problems? Do you think my DDR and NAND is working properly? Could it be the inclusion of  EVM specific codes? What do you mean in "readme.txt" by saying "There are no 594 and 567 versions of the NAND u-boot since in the  NAND boot mode the UBL turns on the PLL and memory."?

    Note: I can successfully erase and write ubl and u-boot and boot from NAND on DM6446EVM with the same method explained above.


    Thanks and best regards.
    Ferhat