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.

Booting DM3730 - xloader can't read u-boot.bin

Other Parts Discussed in Thread: DM3730

Hi,

I have a problem with booting DM3730 chip. I use custom PCB so i must change xloader (disable NAND memory). I didn't change anything more and terminal shows:

Texas Instruments X-Loader 1.51 (Apr 30 2013 - 18:11:47)
Starting X-loader on MMC
Reading boot sector
FAT32, fatlength: 799
Rootdir begins at sector: 1630, offset: cbc00, size: 8
Data begins at: 1614
Cluster size: 8
RootMismatch: |bo|| <- corrupted file name
RootMismatch: |ml||
RootName: u, start: 0x0, size: 0x7eac
Filesize: 32428 bytes
Reading: 32428 bytes
ret: 268435448, offset: 0
ret: 268435448, offset: 0
curclust: 0xffffff8
Invalid FAT entry
Size: 32428, got: 4096 <- incorrect file size

4096 Bytes Read from MMC
Starting OS Bootloader from MMC...
Starting OS Bootloader...

I have already tried:
- different sd cards
- different boards (so far we produced 2 boards)
- I must change file name to "u" because name u-boot.bin was corrupted (just like "boot" and "mlo" above)
- I create SD card in many different ways
- when i change partition to FAT12, line is as follow: Size: 32428, got: 32428 but system still dont work
I tried to debug this myself but i couldnt find any solution.

I'll be grateful for any help

  • Hi Mateusz,

    I would like to focus my attention on the "name u-boot.bin was corrupted". Is this log is with the u-boot.bin fime name because I see only "bo" in row RootMismatch: |bo|| ? What happens when rename the u-boot.bin to u? Are you make this change in the your board file - row size = file_fat_read("u-boot.bin", buf, 0); and could you post a log with the changed name?

    BR

    Tsvetolin Shulev

  • Thank You for reply.
    At the begining, UART gave following information:

    Texas Instruments X-Loader 1.51 (Apr 29 2013 - 19:56:27)
    Starting X-loader on MMC
    Reading boot sector
    FAT32, fatlength: 1112
    Rootdir begins at sector: 2256, offset: 11a000, size: 1
    Data begins at: 2254
    Cluster size: 1
    RootMismatch: |bo||
    RootMismatch: |ml||
    RootMismatch: |u-.bi||
    RootMismatch: |au||
    RootMismatch: |ui||
    RootDentname == NULL - 5
    X-Loader hangs

    All files names (given from xloader) were corrupted. I didn't have better idea, so I changed file name and line [omap3evm.c -> size = file_fat_read("u-boot.bin", buf, 0);] from "u-boot.bin" to "u". Now xloader sees file but size is not correct:

    Texas Instruments X-Loader 1.51 (Apr 30 2013 - 18:11:47)
    Starting X-loader on MMC
    Reading boot sector
    FAT32, fatlength: 799
    Rootdir begins at sector: 1630, offset: cbc00, size: 8
    Data begins at: 1614
    Cluster size: 8
    RootMismatch: |bo||
    RootMismatch: |ml||
    RootName: u, start: 0x0, size: 0x7eac
    Filesize: 32428 bytes
    Reading: 32428 bytes
    ret: 268435448, offset: 0
    ret: 268435448, offset: 0
    curclust: 0xffffff8
    Invalid FAT entry
    Size: 32428, got: 4096

    4096 Bytes Read from MMC
    Starting OS Bootloader from MMC...
    Starting OS Bootloader...

    I think that xloader can't read to long file name (bo -> boot, ml -> mlo, u-.bi -> u-boot.bin,.....). Next problem is that xloader can't read file bigger than 32428Bytes (u-boot.bin = 229 036 Bytes not 32428).
    I dont know what to do next.

  • Hi Mateusz,

    It is hard to analyze the issue without full source code and possibility to reproduce it therefore I wish to ask you to make "git diff" (or some other way to get the differences) between the original x-load-1.51-psp04.02.00.07 folder and your current sources.

    BR

    Tsvetolin Shulev

  • It is strange, because I made only few changes:

    1)board\omap3evm\omap3evm.c (u-boot.bin -> u)
    dev_desc = mmc_get_dev(0);
    fat_register_device(dev_desc, 1);
    //size = file_fat_read("u-boot.bin", buf, 0);
    size = file_fat_read("u", buf, 0);

    2)include\fat.h (added debug)
    #define DEBUG 1
    #ifdef DEBUG
    #define FAT_DPRINT(args...) printf(args)

    3)lib\board.c (disable NAND)
    init_fnc_t *init_sequence[] = {
    cpu_init, /* basic cpu dependent setup */
    board_init, /* basic board dependent setup */
    #ifdef CFG_PRINTF
    serial_init, /* serial communications setup */
    print_info,
    #endif
    // nand_init, /* board specific nand init */
    NULL,
    };

    And thats all. I used sorces from ti-dvsdk_dm3730-evm_04_03_00_06. You can find my xloader folder atatched below.

    4214.x-load-1.51-psp04.02.00.07.sdk.zip

  • Hi Mateusz,

    I made the following changes in the x-loader source:

    2)include\fat.h (added debug) and 3)lib\board.c (disable NAND)

    and build it. The board boots without any problems. You can see the log:

    Texas Instruments X-Loader 1.51 (May 22 2013 - 13:57:52)             
    Starting X-loader on MMC                
    Reading boot sector                     
    FAT32, fatlength: 618                   
    Rootdir begins at sector: 1268, offset: 9e800, size: 1
    Data begins at: 1266                    
    Cluster size: 1                         
    RootMismatch: |mlo||                    
    RootName: u-boot.bin, start: 0x28, size:  0x37eac
    Filesize: 229036 bytes
    Reading: 229036 bytes
    ret: 41, offset: 40
    ret: 42, offset: 41
    ret: 43, offset: 42

    .....

    ret: 486, offset: 485
    ret: 487, offset: 486
    Size: 229036, got: 229036

    229036 Bytes Read from MMC
    Starting OS Bootloader from MMC...
    Starting OS Bootloader...


    U-Boot 2010.06 (Dec 22 2011 - 23:11:38)

    OMAP34xx/35xx-GP ES2.1, CPU-OPP2 L3-165MHz
    OMAP3 EVM board + LPDDR/NAND
    I2C:   ready
    DRAM:  256 MiB
    NAND:  HW ECC [Kernel/FS layout] selected
    512 MiB
    *** Warning - bad CRC or NAND, using default environment

    In:    serial
    Out:   serial
    Err:   serial
    Read back SMSC id 0x92200000
    Die ID #108000029ff80000016849aa1101b009
    Net:   smc911x-0
    Hit any key to stop autoboot:

    I recommend you to format the boot partition with FAT32 and use my MLO from the attachment. Add your u-boot.bin and try to boot.

    http://e2e.ti.com/cfs-file.ashx/__key/communityserver-discussions-components-files/537/1754.MLO


    BR

    Tsvetolin Shulev

  • Hi,

    Thank You for your effort but my system still doesn't work. I have the same message as before. Do You have any other idea? Is there any circumstances when SD card doesn't work?
    It is still a question why xloader can read only half of file name and why can detect only 30kB (file size is 220kB). Maybe when we find answer for this question, problem may be resolved.

    Mateusz

  • Hi,

    I only make an attempt to summarize the results of our tests: the problem is not software based. the problem seems related with SD card or card reader.

    BR

    Tsvetolin Shulev

  • I have already tried with 4 different SD card and 4 different card reader. Unfortunately problems still exist. I have some questions about memory:
    1. Does W948D6FBHX5E DDR memory chip is supported by DM3730 chip?
    2. Are there any DDR memory parameters that can be tuned to improve
    DM3730 <-> DDR connection
    3. Does RAM memory is used by xloader?
    4. Is there any recommendation regarding to DDR<-> DM3730
    connections/setup/IC selection.
    5. Does TI recommends any DDR memory chip part number?

    Thank for all help.
    Mateusz

  • Hi Mateusz,

    The initialization of the DDR memory is executing in the x-loader. Therefore the RAM could be used when x-loaed completes its work.

    TI doesn't have s list with recommended DDR memory cips but  the DM3730 requires DDR chips clocked at 266 MHz (the DM3730 is compliance with the JEDEC LPDDR-266 specification). More details about compatible LPDDR devices you can read in the DM3730 Datasheet - section 6.4.2.1 LPDDR Interface.

    http://www.ti.com/lit/ds/symlink/dm3730.pdf

    As I read in the W948D6FBHX5E datasheet this chip supports up to 200 MHz clock rate therefore I guess the problem with reading only first 30 KBytes on the u-boot could be due to unsuccessful initialization of the DDR memory.

    BR

    Tsvetolin Shulev

  • Hi, thanks for fast answer. I have last question.

    Is there any chance to trim DDR parameters to improve communication between DM3730 and current DDR device?

    Mateusz

  • Mateusz,

    To figure out quickly whether your DDR is the culprit, you can do a small memory test from x-loader to read/write from/to DDR memory to verify every things fine. Make sure that you write complete DDR memory. Best experiment is to write 0 1 2 3.. to offset 0, 4, 8, c etc.. and try to read back the same after filling the entire memory. 

  • Hi,

       We are working on DM3730 Panther Board. We are facing following booting problem.

    [    5.635437] init (1): /proc/1/oom_adj is deprecated, please use /proc/1/oom_.
    [    5.671356] init: cannot find '/system/etc/install-recovery.sh', disabling ''
    # [    5.769805] cfg80211: World regulatory domain updated:                     
    [    5.775238] cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_)
    [    5.783935] cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi,)
    [    5.792205] cfg80211:     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi,)
    [    5.800445] cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi,)
    [    5.808685] cfg80211:     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi,)
    [    5.816955] cfg80211:     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi,)
    [    6.379577] enabling adb                                                     
    [    6.394531] adb_open                                                         
    [   11.014587] warning: `zygote' uses 32-bit capabilities (legacy support in us)
    [   14.725982] request_suspend_state: wakeup (3->0) at 15107238771 (2000-01-01 )


    Booting stops after this. Kindly help us out on this issue.

    Regards,

    Ramya

  • Ramya,

    You can try to run logcat command to see what's happening at Android side.