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.

Fail: Serial Boot and Flash Loading Utility

HI all

    I try to use sfh_DM36x.exe to flash UBL & U-boot to nand follow this link  http://processors.wiki.ti.com/index.php/Serial_Boot_and_Flash_Loading_Utility   
    And It seemed success. But after I set SW4  &SW5  to Nand flash boot and then power on the DM365 EVM ,there are no message from debug port.
    My EVM is DM36X EVM, ASSY 51084 .
    The UBL file was "ubl_297arm_270ddr_ipnc_dm365_1.0.0.bin ".
    The U-boot file was "u-boot-1.3.4_ipnc_dm365_1.0.0.bin " .
    My command on WinXP was "sfh_DM36x -nandflash ubl_297arm_270ddr_ipnc_dm365_1.0.0.bin u-boot-1.3.4_ipnc_dm365_1.0.0.bin"  .
    And its last result are following:
        Target: Erasing block 0x0000002F through 0x00000030.
        Target: Writing header and image data to Block 0x0000002F, Page 0x000000
00
        Target: Erasing block 0x00000031 through 0x00000032.
        Target: Writing header and image data to Block 0x00000031, Page 0x000000
00
        Target: Protecting the entire NAND flash.
        Target:    DONE
Operation completed successfully.

Can someone give me some suggestions?

Thanks

  • HI all,

       My DSP was DM365ZCE30".

      Can someone give me some suggestions?

    Thanks

  • Hi Terry,

    Would you provide the complete log and also make sure all SW4 switch and SW5-1 are off?

    Thanks,

    Tai 

  • HI Tai Nguyen

       Thanks for your reply af first. 
       
      
    I'm sure all SW4 & SW5 were off.  Here are the complete log.

    -----------------------------------------------------
       TI Serial Flasher Host Program for DM36x
       (C) 2009, Texas Instruments, Inc.
       Ver. 1.50
    -----------------------------------------------------


    Platform is Windows.
    Flashing NAND with ubl_297arm_270ddr_ipnc_dm365_1.0.0.bin and u-boot-1.3.4_ipnc_
    dm365_1.0.0.bin.


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


    Waiting for the DM36x...
    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.
    UBL transmitted successfully.


    Waiting for SFT on the DM36x...
            Target: Starting UART Boot...
            Target: BOOTUBL
    BOOTUBL commmand received. Returning CMD and command...
    CMD value sent.  Waiting for DONE...
            Target:    DONE
    DONE received. Command was accepted.
    Sending the UBL image
    Waiting for SENDIMG sequence...
    SENDIMG received. Returning ACK and header for image data...
    ACK command sent. Waiting for BEGIN command...
    BEGIN commmand received.
     100% [                                                              ]
                               Image data sent...


    Waiting for DONE...
    DONE received.  All bytes of image data received...
            Target: Writing UBL to NAND flash
            Target: Unprotecting blocks 0x00000001 through 0x00000018.
            Target: Number of blocks needed for header and data: 0x0x00000001
            Target: Attempting to start in block number 0x0x00000001.
            Target: Erasing block 0x00000001 through 0x00000001.
            Target: Writing header and image data to Block 0x00000001, Page 0x000000
    00
            Target: Erasing block 0x00000002 through 0x00000002.
            Target: Writing header and image data to Block 0x00000002, Page 0x000000
    00
            Target: Erasing block 0x00000003 through 0x00000003.
            Target: Writing header and image data to Block 0x00000003, Page 0x000000
    00
            Target: Erasing block 0x00000004 through 0x00000004.
            Target: Writing header and image data to Block 0x00000004, Page 0x000000
    00
            Target: Erasing block 0x00000005 through 0x00000005.
            Target: Writing header and image data to Block 0x00000005, Page 0x000000
    00
            Target: Erasing block 0x00000006 through 0x00000006.
            Target: Writing header and image data to Block 0x00000006, Page 0x000000
    00
            Target: Erasing block 0x00000007 through 0x00000007.
            Target: Writing header and image data to Block 0x00000007, Page 0x000000
    00
            Target: Erasing block 0x00000008 through 0x00000008.
            Target: Writing header and image data to Block 0x00000008, Page 0x000000
    00
            Target: Erasing block 0x00000009 through 0x00000009.
            Target: Writing header and image data to Block 0x00000009, Page 0x000000
    00
            Target: Erasing block 0x0000000A through 0x0000000A.
            Target: Writing header and image data to Block 0x0000000A, Page 0x000000
    00
            Target: Erasing block 0x0000000B through 0x0000000B.
            Target: Writing header and image data to Block 0x0000000B, Page 0x000000
    00
            Target: Erasing block 0x0000000C through 0x0000000C.
            Target: Writing header and image data to Block 0x0000000C, Page 0x000000
    00
            Target: Erasing block 0x0000000D through 0x0000000D.
            Target: Writing header and image data to Block 0x0000000D, Page 0x000000
    00
            Target: Erasing block 0x0000000E through 0x0000000E.
            Target: Writing header and image data to Block 0x0000000E, Page 0x000000
    00
            Target: Erasing block 0x0000000F through 0x0000000F.
            Target: Writing header and image data to Block 0x0000000F, Page 0x000000
    00
            Target: Erasing block 0x00000010 through 0x00000010.
            Target: Writing header and image data to Block 0x00000010, Page 0x000000
    00
            Target: Erasing block 0x00000011 through 0x00000011.
            Target: Writing header and image data to Block 0x00000011, Page 0x000000
    00
            Target: Erasing block 0x00000012 through 0x00000012.
            Target: Writing header and image data to Block 0x00000012, Page 0x000000
    00
            Target: Erasing block 0x00000013 through 0x00000013.
            Target: Writing header and image data to Block 0x00000013, Page 0x000000
    00
            Target: Erasing block 0x00000014 through 0x00000014.
            Target: Writing header and image data to Block 0x00000014, Page 0x000000
    00
            Target: Erasing block 0x00000015 through 0x00000015.
            Target: Writing header and image data to Block 0x00000015, Page 0x000000
    00
            Target: Erasing block 0x00000016 through 0x00000016.
            Target: Writing header and image data to Block 0x00000016, Page 0x000000
    00
            Target: Erasing block 0x00000017 through 0x00000017.
            Target: Writing header and image data to Block 0x00000017, Page 0x000000
    00
            Target: Erasing block 0x00000018 through 0x00000018.
            Target: Writing header and image data to Block 0x00000018, Page 0x000000
    00
            Target: Protecting the entire NAND flash.
            Target:    DONE
    Sending the Application image
    Waiting for SENDIMG sequence...
    SENDIMG received. Returning ACK and header for image data...
    ACK command sent. Waiting for BEGIN command...
    BEGIN commmand received.
     100% [                                                              ]
                               Image data sent...


    Waiting for DONE...
    DONE received.  All bytes of image data received...
            Target: Writing APP to NAND flash
            Target: Unprotecting blocks 0x00000019 through 0x00000032.
            Target: Number of blocks needed for header and data: 0x0x00000002
            Target: Attempting to start in block number 0x0x00000019.
            Target: Erasing block 0x00000019 through 0x0000001A.
            Target: Writing header and image data to Block 0x00000019, Page 0x000000
    00
            Target: Erasing block 0x0000001B through 0x0000001C.
            Target: Writing header and image data to Block 0x0000001B, Page 0x000000
    00
            Target: Erasing block 0x0000001D through 0x0000001E.
            Target: Writing header and image data to Block 0x0000001D, Page 0x000000
    00
            Target: Erasing block 0x0000001F through 0x00000020.
            Target: Writing header and image data to Block 0x0000001F, Page 0x000000
    00
            Target: Erasing block 0x00000021 through 0x00000022.
            Target: Writing header and image data to Block 0x00000021, Page 0x000000
    00
            Target: Erasing block 0x00000023 through 0x00000024.
            Target: Writing header and image data to Block 0x00000023, Page 0x000000
    00
            Target: Erasing block 0x00000025 through 0x00000026.
            Target: Writing header and image data to Block 0x00000025, Page 0x000000
    00
            Target: Erasing block 0x00000027 through 0x00000028.
            Target: Writing header and image data to Block 0x00000027, Page 0x000000
    00
            Target: Erasing block 0x00000029 through 0x0000002A.
            Target: Writing header and image data to Block 0x00000029, Page 0x000000
    00
            Target: Erasing block 0x0000002B through 0x0000002C.
            Target: Writing header and image data to Block 0x0000002B, Page 0x000000
    00
            Target: Erasing block 0x0000002D through 0x0000002E.
            Target: Writing header and image data to Block 0x0000002D, Page 0x000000
    00
            Target: Erasing block 0x0000002F through 0x00000030.
            Target: Writing header and image data to Block 0x0000002F, Page 0x000000
    00
            Target: Erasing block 0x00000031 through 0x00000032.
            Target: Writing header and image data to Block 0x00000031, Page 0x000000
    00
            Target: Protecting the entire NAND flash.
            Target:    DONE
            Target:    DONE

    Operation completed successfully.

    BR
         Terry K.G

  • Hi Terry,

    Thanks for the log.

    First I like confirm that you are using the Spectrum Digital DM365 EVM.

    If that is the case then can you please clarify:

    1) The NAND that you are trying to flash/boot is the one that comes with the EVM or different NAND device.

    2) Why you are using IPNC UBL instead of the one from here?

    Here are also few other things you can try. You should be able to download your UBL through CCS (JTAG) and it should work fine. Another thing to check is the UBL start address which discussed in the Serial Boot and Flash Utility page:

    The entry point of the UBL is assumed to be 0x0100, but this can be changed by using the -UBLStartAddr option. The entry point and load address of the application default to 0x81080000 (u-boot defaults). To change these values, use the -APPStartAddr and -APPLoadAddr option.

       sfh_<DEVICENAME>.exe -nandflash  -UBLStartAddr <address>  -APPLoadAddr <address> <UBL binary file> <binary application file>
    Hope this helps.
    Thanks and regards,
    Tai
    
    
  • Hi Tai,

       Thanks for your quick & fast reply at first.

       It's OK to use DVSDK3.1 ubl+uboot to flash on EVM. You idea is very nice.

       But I had 2 IPNC(365,368) boards too, I made a mistake to clean the Nand flash before. Now I move its nand flash to EVM. I flash 2 set ubl+uboot to the nand flash.

      A. When using DVSDK3.1 ubl + uboot. It can work. But the log message is not good. I attached the IPNC & EVM log following. Notice the different words marking red.
      B. When using  IPNC's ubl + uboot. It seems fail. There is not any message on serial port.

    ======IPNC DM368 log=======I saved before
    DM36x initialization passed!
    TI UBL Version: 1.50
    Booting Catalog Boot Loader
    BootMode = NAND
    Starting NAND Copy...
    Valid magicnum, 0xA1ACED66, found in block 0x00000008.
       DONE
    Jumping to entry point at 0x81080000.

     DM368_IPNC_UBL_1.0.0

    U-Boot 1.3.4 (Apr 20 2010 - 11:42:44) DM368-IPNC-1.0.0

    I2C:   ready
    DRAM:  128 MB
    NAND:  NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit)
    Bad block table found at page 65472, version 0x01
    Bad block table found at page 65408, version 0x01
    128 MiB
    In:    serial
    Out:   serial
    Err:   serial
    ARM Clock :- 432MHz
    DDR Clock :- 340MHz
    Ethernet PHY: GENERIC @ 0x01
    Hit any key to stop autoboot:  0
    DM368 IPNC :>

    ========EVM log ======
    TI UBL Version: 1.50
    Booting Catalog Boot Loader
    BootMode = NAND
    Starting NAND Copy...
    Valid magicnum, 0xA1ACED66, found in block 0x00000019.
       DONE
    Jumping to entry point at 0x81080000.


    U-Boot 2009.03 (Jun 21 2010 - 15:55:57)

    I2C:   ready
    DRAM:  128 MB
    NAND:  NAND device: Manufacturer ID: 0xec, Chip ID: 0xf1 (Samsung NAND 128MiB 3,3V 8-bit)
    Bad block table not found for chip 0
    Bad block table not found for chip 0
    Bad block table written to 0x07fe0000, version 0x01
    Bad block table written to 0x07fc0000, version 0x01
    No NAND device found!!!
    128 MiB
    *** Warning - bad CRC or NAND, using default environment

    In:    serial
    Out:   serial
    Err:   serial
    Ethernet PHY: GENERIC @ 0x00
    Hit any key to stop autoboot:  0
    DM365 EVM >



    How to handle the nand flash for IPNC?  Need change the address, block instead of the default one?

    BR
        Terry K.G