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.

AM3358: U-Boot booting issue

Part Number: AM3358

I would like to ask support about an issue I have using the AM3358BZCZ100 on a custom board. 2313.schematic.pdf

have compiled the u-boot using u-boot-2018.01 from the TI EVM SDK.
I used the compiler that comes with the SDK.

I configured the board to be a board_is_bone_lt() and prevent reading the eeprom from the link below:
e2e.ti.com/.../876780

I use an SD card on the MMC0 port on the CPU.
U-Boot is giving me the following output to my computer, and then it hangs. After a minute it retries and give the same output again.

U-Boot SPL 2018.01-00558-gcd25eb3-dirty (Jan 15 2019 - 23:46:41)
Trying to boot from MMC1
*** Warning - bad CRC, using default environment

Do I need to configure the default boot MMC0 somewhere?

  • Hello J,

    The EEPROM skip method you have used applies to the old SDK versions where the EEPROM detection and reading has done in <SDK>/board-support/u-boot-<version>/board/ti/am335x/board.c file and it is no more convenient to use it with the latest Processor SDK where the EEPROM reading is done by a common <Processor SDK>/board-support/u-boot-<version>/board/ti/common/board_detect.c file.

    You can refer to this patch and use that method on old SDK and this on new Processor SDK versions.

    The hang you observe on that point may be caused by a wrong PINMUX settings in the board's device tree or <Processor SDK>/board-support/u-boot-<version>/board/ti/am335x/mux.c file. Please, see this thread for more details. You can add #define DEBUG line in <Processor SDK>/board-support/u-boot-<version>/include/configs/am335x_evm.h file to make the output more verbose and see where exactly it hangs. If you met the `.rodata' will not fit in region `.sram' error while compiling MLO with defined DEBUG flag, please refer to this post.

    Best regards,
    Kemal

  • Hello Kemal,

    Thanks a lot for your reply. I have followed all the steps.

    I still seem to have the same issue. Perhaps regarding the MMC1? I don't want the AM3358 to boot from MMC1 but MMC0 anyways.
    Here is my current pinmux, after changing from the post you mentioned. Below that the output from u-boot with the DEBUG defined.

    static struct module_pin_mux mmc0_pin_mux[] = {
        {OFFSET(mmc0_dat3), (MODE(0) | RXACTIVE | PULLUP_EN)},    /* MMC0_DAT3 */
        {OFFSET(mmc0_dat2), (MODE(0) | RXACTIVE | PULLUP_EN)},    /* MMC0_DAT2 */
        {OFFSET(mmc0_dat1), (MODE(0) | RXACTIVE | PULLUP_EN)},    /* MMC0_DAT1 */
        {OFFSET(mmc0_dat0), (MODE(0) | RXACTIVE | PULLUP_EN)},    /* MMC0_DAT0 */
        {OFFSET(mmc0_clk), (MODE(0) | RXACTIVE | PULLUP_EN)},    /* MMC0_CLK */
        {OFFSET(mmc0_cmd), (MODE(0) | RXACTIVE | PULLUP_EN)},    /* MMC0_CMD */
        {OFFSET(mcasp0_aclkr), (MODE(4) | RXACTIVE)},        /* MMC0_WP */
        {OFFSET(spi0_cs1), (MODE(7) | RXACTIVE | PULLUP_EN)},    /* GPIO0_6 */
        {-1},
    };

    static struct module_pin_mux mmc0_no_cd_pin_mux[] = {
        {OFFSET(mmc0_dat3), (MODE(0) | RXACTIVE | PULLUP_EN)},    /* MMC0_DAT3 */
        {OFFSET(mmc0_dat2), (MODE(0) | RXACTIVE | PULLUP_EN)},    /* MMC0_DAT2 */
        {OFFSET(mmc0_dat1), (MODE(0) | RXACTIVE | PULLUP_EN)},    /* MMC0_DAT1 */
        {OFFSET(mmc0_dat0), (MODE(0) | RXACTIVE | PULLUP_EN)},    /* MMC0_DAT0 */
        {OFFSET(mmc0_clk), (MODE(0) | RXACTIVE | PULLUP_EN)},    /* MMC0_CLK */
        {OFFSET(mmc0_cmd), (MODE(0) | RXACTIVE | PULLUP_EN)},    /* MMC0_CMD */
        {OFFSET(mcasp0_aclkr), (MODE(4) | RXACTIVE)},        /* MMC0_WP */
        {-1},
    };

    static struct module_pin_mux mmc0_pin_mux_sk_evm[] = {
        {OFFSET(mmc0_dat3), (MODE(0) | RXACTIVE | PULLUP_EN)},    /* MMC0_DAT3 */
        {OFFSET(mmc0_dat2), (MODE(0) | RXACTIVE | PULLUP_EN)},    /* MMC0_DAT2 */
        {OFFSET(mmc0_dat1), (MODE(0) | RXACTIVE | PULLUP_EN)},    /* MMC0_DAT1 */
        {OFFSET(mmc0_dat0), (MODE(0) | RXACTIVE | PULLUP_EN)},    /* MMC0_DAT0 */
        {OFFSET(mmc0_clk), (MODE(0) | RXACTIVE | PULLUP_EN)},    /* MMC0_CLK */
        {OFFSET(mmc0_cmd), (MODE(0) | RXACTIVE | PULLUP_EN)},    /* MMC0_CMD */
        {OFFSET(spi0_cs1), (MODE(5) | RXACTIVE | PULLUP_EN)},    /* MMC0_CD */
        {-1},
    };

    static struct module_pin_mux mmc1_pin_mux[] = {
        {OFFSET(gpmc_ad7), (MODE(1) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT7 */
        {OFFSET(gpmc_ad6), (MODE(1) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT6 */
        {OFFSET(gpmc_ad5), (MODE(1) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT5 */
        {OFFSET(gpmc_ad4), (MODE(1) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT4 */
        {OFFSET(gpmc_ad3), (MODE(1) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT3 */
        {OFFSET(gpmc_ad2), (MODE(1) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT2 */
        {OFFSET(gpmc_ad1), (MODE(1) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT1 */
        {OFFSET(gpmc_ad0), (MODE(1) | RXACTIVE | PULLUP_EN)}, /* MMC1_DAT0 */
        {OFFSET(gpmc_csn1), (MODE(2) | RXACTIVE | PULLUP_EN )}, /* MMC1_CLK */
        {OFFSET(gpmc_csn2), (MODE(2) | RXACTIVE | PULLUP_EN)}, /* MMC1_CMD */
        {-1},
    };

    U-Boot SPL 2018.01-00558-gcd25eb3-dirty (Jan 16 2019 - 21:31:37)
    omap24_i2c_findpsc: speed [kHz]: 100 psc: 0xb sscl: 0xd ssch: 0xf
    malloc_simple: size=x, ptr=f98, limit=fc0: 81f00028
    malloc_simple: size=x, ptr=f98, limit=1f58: 81f00fc0
    Trying to boot from MMC1
    uclass_find_device_by_seq: 0 0
       - -1 -1 'omap_hsmmc'
       - -1 -1 'omap_hsmmc'
       - not found
    uclass_find_device_by_seq: 1 0
       - -1 -1 'omap_hsmmc'
       - -1 -1 'omap_hsmmc'
       - not found
    malloc_simple: size=x, ptr=40, limit=1f98: 81f01f58
    malloc_simple: size=x, ptr=4, limit=1f9c: 81f01f98
    uclass_find_device_by_seq: 0 -1
    uclass_find_device_by_seq: 0 0
       - -1 -1 'omap_hsmmc'
       - -1 -1 'omap_hsmmc'
       - not found
    malloc_simple: size=x, ptr=170, limit=210c: 81f01f9c
    malloc_simple: size=x, ptr=40, limit=214c: 81f0210c
    malloc_simple: size=x, ptr=4, limit=2150: 81f0214c
    uclass_find_device_by_seq: 0 -1
    uclass_find_device_by_seq: 0 0
       - -1 0 'omap_hsmmc'
       - found
    uclass_find_device_by_seq: 0 1
       - -1 0 'omap_hsmmc'
       - -1 -1 'omap_hsmmc'
       - not found
    malloc_simple: size=x, ptr=170, limit=22c0: 81f02150
    part_init: try 'DOS': ret=0
    spl: mmc boot mode: fs
    malloc_simple: size=x, ptr=4, limit=22c4: 81f022c0
    81f02300
    81f12440
    81f12640
    VFAT Support enabled
    FAT32, fat_sect: 32, fatlength: 1103
    Rootdir begins at cluster: 2, sector: 2238, offset: 117c00
    Data begins at: 2236
    Sector size: 512, cluster size: 1
    FAT read(sect=2238), clust_size=1, DIRENTSPERBLOCK=d
    FAT32: entry: 0x00000002 = 2, offset: 0x0002 = 2
    debug: evicting -1, dirty: 0
    FAT32: ret: 0x0ffffff8, entry: 0x00000002, offset: 0x0002
    cursect: 0xffffff8
    *** Warning - bad CRC, using default environment

    malloc_simple: size=x, ptr=e4, limit=13324: 81f13240
    Destroy Hash Table: 403036dc table =
    Create Hash Table: N=92
    malloc_simple: size=x, ptr=7a8, limit=13acc: 81f13324
    malloc_simple: size=x, ptr=8, limit=13ad4: 81f13acc
    malloc_simple: size=x, ptr=76, limit=13b4a: 81f13ad4
    malloc_simple: size=x, ptr=16, limit=13b62: 81f13b4c
    malloc_simple: size=x, ptr=e, limit=13b72: 81f13b64
    malloc_simple: size=x, ptr=12, limit=13b86: 81f13b74
    malloc_simple: size=x, ptr=12, limit=13b9a: 81f13b88
    malloc_simple: size=x, ptr=e, limit=13baa: 81f13b9c
    malloc_simple: size=x, ptr=14, limit=13bc0: 81f13bac
    malloc_simple: size=x, ptr=10, limit=13bd0: 81f13bc0
    malloc_simple: size=x, ptr=12, limit=13be2: 81f13bd0
    malloc_simple: size=x, ptr=c, limit=13bf0: 81f13be4
    malloc_simple: size=x, ptr=a, limit=13bfa: 81f13bf0
    malloc_simple: size=x, ptr=13, limit=13c0f: 81f13bfc
    malloc_simple: size=x, ptr=12, limit=13c22: 81f13c10
    malloc_simple: size=x, ptr=e, limit=13c32: 81f13c24
    malloc_simple: size=x, ptr=f, limit=13c43: 81f13c34
    malloc_simple: size=x, ptr=f, limit=13c53: 81f13c44
    malloc_simple: size=x, ptr=11, limit=13c65: 81f13c54
    malloc_simple: size=x, ptr=e, limit=13c76: 81f13c68
    malloc_simple: size=x, ptr=9, limit=13c81: 81f13c78
    malloc_simple: size=x, ptr=c, limit=13c90: 81f13c84
    malloc_simple: size=x, ptr=a, limit=13c9a: 81f13c90
    malloc_simple: size=x, ptr=b, limit=13ca7: 81f13c9c
    malloc_simple: size=x, ptr=8, limit=13cb0: 81f13ca8
    malloc_simple: size=x, ptr=7, limit=13cb7: 81f13cb0
    malloc_simple: size=x, ptr=8, limit=13cc0: 81f13cb8
    INSERT: table 403036dc, filled 1/97 rv 81f13620 ==> name="bootcmd" value="if test ${boot_fit} -eq 1; then run update_to_fit; fi; run findfdt; run init_console; run envboot; run d"
    malloc_simple: size=x, ptr=a, limit=13cca: 81f13cc0
    malloc_simple: size=x, ptr=2, limit=13cce: 81f13ccc
    malloc_simple: size=x, ptr=16, limit=13ce6: 81f13cd0
    malloc_simple: size=x, ptr=e, limit=13cf6: 81f13ce8
    malloc_simple: size=x, ptr=12, limit=13d0a: 81f13cf8
    malloc_simple: size=x, ptr=12, limit=13d1e: 81f13d0c
    malloc_simple: size=x, ptr=e, limit=13d2e: 81f13d20
    malloc_simple: size=x, ptr=14, limit=13d44: 81f13d30
    malloc_simple: size=x, ptr=10, limit=13d54: 81f13d44
    malloc_simple: size=x, ptr=12, limit=13d66: 81f13d54
    malloc_simple: size=x, ptr=c, limit=13d74: 81f13d68
    malloc_simple: size=x, ptr=a, limit=13d7e: 81f13d74
    malloc_simple: size=x, ptr=13, limit=13d93: 81f13d80
    malloc_simple: size=x, ptr=12, limit=13da6: 81f13d94
    malloc_simple: size=x, ptr=e, limit=13db6: 81f13da8
    malloc_simple: size=x, ptr=f, limit=13dc7: 81f13db8
    malloc_simple: size=x, ptr=f, limit=13dd7: 81f13dc8
    malloc_simple: size=x, ptr=11, limit=13de9: 81f13dd8
    malloc_simple: size=x, ptr=e, limit=13dfa: 81f13dec
    malloc_simple: size=x, ptr=9, limit=13e05: 81f13dfc
    malloc_simple: size=x, ptr=c, limit=13e14: 81f13e08
    malloc_simple: size=x, ptr=a, limit=13e1e: 81f13e14
    malloc_simple: size=x, ptr=b, limit=13e2b: 81f13e20
    malloc_simple: size=x, ptr=8, limit=13e34: 81f13e2c
    malloc_simple: size=x, ptr=7, limit=13e3b: 81f13e34
    malloc_simple: size=x, ptr=8, limit=13e44: 81f13e3c
    INSERT: table 403036dc, filled 2/97 rv 81f13670 ==> name="bootdelay" value="2"
    malloc_simple: size=x, ptr=9, limit=13e4d: 81f13e44
    malloc_simple: size=x, ptr=7, limit=13e57: 81f13e50
    malloc_simple: size=x, ptr=16, limit=13e6e: 81f13e58
    malloc_simple: size=x, ptr=e, limit=13e7e: 81f13e70
    malloc_simple: size=x, ptr=12, limit=13e92: 81f13e80
    malloc_simple: size=x, ptr=b, limit=13e9f: 81f13e94
    malloc_simple: size=x, ptr=9, limit=13ea9: 81f13ea0
    malloc_simple: size=x, ptr=12, limit=13ebe: 81f13eac
    malloc_simple: size=x, ptr=e, limit=13ece: 81f13ec0
    malloc_simple: size=x, ptr=14, limit=13ee4: 81f13ed0
    malloc_simple: size=x, ptr=10, limit=13ef4: 81f13ee4
    malloc_simple: size=x, ptr=12, limit=13f06: 81f13ef4
    malloc_simple: size=x, ptr=c, limit=13f14: 81f13f08
    malloc_simple: size=x, ptr=a, limit=13f1e: 81f13f14
    malloc_simple: size=x, ptr=13, limit=13f33: 81f13f20
    malloc_simple: size=x, ptr=12, limit=13f46: 81f13f34
    malloc_simple: size=x, ptr=e, limit=13f56: 81f13f48
    malloc_simple: size=x, ptr=f, limit=13f67: 81f13f58
    malloc_simple: size=x, ptr=f, limit=13f77: 81f13f68
    malloc_simple: size=x, ptr=11, limit=13f89: 81f13f78
    malloc_simple: size=x, ptr=e, limit=13f9a: 81f13f8c
    malloc_simple: size=x, ptr=9, limit=13fa5: 81f13f9c
    malloc_simple: size=x, ptr=c, limit=13fb4: 81f13fa8
    malloc_simple: size=x, ptr=a, limit=13fbe: 81f13fb4
    malloc_simple: size=x, ptr=b, limit=13fcb: 81f13fc0
    malloc_simple: size=x, ptr=8, limit=13fd4: 81f13fcc
    malloc_simple: size=x, ptr=7, limit=13fdb: 81f13fd4
    malloc_simple: size=x, ptr=8, limit=13fe4: 81f13fdc
    INSERT: table 403036dc, filled 3/97 rv 81f13440 ==> name="baudrate" value="115200"
    malloc_simple: size=x, ptr=5, limit=13fe9: 81f13fe4
    malloc_simple: size=x, ptr=4, limit=13ff0: 81f13fec
    malloc_simple: size=x, ptr=16, limit=14006: 81f13ff0
    malloc_simple: size=x, ptr=e, limit=14016: 81f14008
    malloc_simple: size=x, ptr=12, limit=1402a: 81f14018
    malloc_simple: size=x, ptr=12, limit=1403e: 81f1402c
    malloc_simple: size=x, ptr=e, limit=1404e: 81f14040
    malloc_simple: size=x, ptr=14, limit=14064: 81f14050
    malloc_simple: size=x, ptr=10, limit=14074: 81f14064
    malloc_simple: size=x, ptr=12, limit=14086: 81f14074
    malloc_simple: size=x, ptr=c, limit=14094: 81f14088
    malloc_simple: size=x, ptr=a, limit=1409e: 81f14094
    malloc_simple: size=x, ptr=13, limit=140b3: 81f140a0
    malloc_simple: size=x, ptr=12, limit=140c6: 81f140b4
    malloc_simple: size=x, ptr=e, limit=140d6: 81f140c8
    malloc_simple: size=x, ptr=f, limit=140e7: 81f140d8
    malloc_simple: size=x, ptr=f, limit=140f7: 81f140e8
    malloc_simple: size=x, ptr=11, limit=14109: 81f140f8
    malloc_simple: size=x, ptr=e, limit=1411a: 81f1410c
    malloc_simple: size=x, ptr=9, limit=14125: 81f1411c
    malloc_simple: size=x, ptr=c, limit=14134: 81f14128
    malloc_simple: size=x, ptr=a, limit=1413e: 81f14134
    malloc_simple: size=x, ptr=b, limit=1414b: 81f14140
    malloc_simple: size=x, ptr=8, limit=14154: 81f1414c
    malloc_simple: size=x, ptr=7, limit=1415b: 81f14154
    malloc_simple: size=x, ptr=8, limit=14164: 81f1415c
    INSERT: table 403036dc, filled 4/97 rv 81f13490 ==> name="arch" value="arm"
    malloc_simple: size=x, ptr=4, limit=14168: 81f14164
    malloc_simple: size=x, ptr=6, limit=1416e: 81f14168
    malloc_simple: size=x, ptr=16, limit=14186: 81f14170
    malloc_simple: size=x, ptr=e, limit=14196: 81f14188
    malloc_simple: size=x, ptr=12, limit=141aa: 81f14198
    malloc_simple: size=x, ptr=12, limit=141be: 81f141ac
    malloc_simple: size=x, ptr=e, limit=141ce: 81f141c0
    malloc_simple: size=x, ptr=14, limit=141e4: 81f141d0
    malloc_simple: size=x, ptr=10, limit=141f4: 81f141e4
    malloc_simple: size=x, ptr=12, limit=14206: 81f141f4
    malloc_simple: size=x, ptr=c, limit=14214: 81f14208
    malloc_simple: size=x, ptr=a, limit=1421e: 81f14214
    malloc_simple: size=x, ptr=13, limit=14233: 81f14220
    malloc_simple: size=x, ptr=12, limit=14246: 81f14234
    malloc_simple: size=x, ptr=e, limit=14256: 81f14248
    malloc_simple: size=x, ptr=f, limit=14267: 81f14258
    malloc_simple: size=x, ptr=f, limit=14277: 81f14268
    malloc_simple: size=x, ptr=11, limit=14289: 81f14278
    malloc_simple: size=x, ptr=e, limit=1429a: 81f1428c
    malloc_simple: size=x, ptr=9, limit=142a5: 81f1429c
    malloc_simple: size=x, ptr=c, limit=142b4: 81f142a8
    malloc_simple: size=x, ptr=a, limit=142be: 81f142b4
    malloc_simple: size=x, ptr=b, limit=142cb: 81f142c0
    malloc_simple: size=x, ptr=8, limit=142d4: 81f142cc
    malloc_simple: size=x, ptr=7, limit=142db: 81f142d4
    malloc_simple: size=x, ptr=8, limit=142e4: 81f142dc
    INSERT: table 403036dc, filled 5/97 rv 81f13a6c ==> name="cpu" value="armv7"
    malloc_simple: size=x, ptr=6, limit=142ea: 81f142e4
    malloc_simple: size=x, ptr=7, limit=142f3: 81f142ec
    malloc_simple: size=x, ptr=16, limit=1430a: 81f142f4
    malloc_simple: size=x, ptr=e, limit=1431a: 81f1430c
    malloc_simple: size=x, ptr=12, limit=1432e: 81f1431c
    malloc_simple: size=x, ptr=12, limit=14342: 81f14330
    malloc_simple: size=x, ptr=e, limit=14352: 81f14344
    malloc_simple: size=x, ptr=14, limit=14368: 81f14354
    malloc_simple: size=x, ptr=10, limit=14378: 81f14368
    malloc_simple: size=x, ptr=12, limit=1438a: 81f14378
    malloc_simple: size=x, ptr=c, limit=14398: 81f1438c
    malloc_simple: size=x, ptr=a, limit=143a2: 81f14398
    malloc_simple: size=x, ptr=13, limit=143b7: 81f143a4
    malloc_simple: size=x, ptr=12, limit=143ca: 81f143b8
    malloc_simple: size=x, ptr=e, limit=143da: 81f143cc
    malloc_simple: size=x, ptr=f, limit=143eb: 81f143dc
    malloc_simple: size=x, ptr=f, limit=143fb: 81f143ec
    malloc_simple: size=x, ptr=11, limit=1440d: 81f143fc
    malloc_simple: size=x, ptr=e, limit=1441e: 81f14410
    malloc_simple: size=x, ptr=9, limit=14429: 81f14420
    malloc_simple: size=x, ptr=c, limit=14438: 81f1442c
    malloc_simple: size=x, ptr=a, limit=14442: 81f14438
    malloc_simple: size=x, ptr=b, limit=1444f: 81f14444
    malloc_simple: size=x, ptr=8, limit=14458: 81f14450
    malloc_simple: size=x, ptr=7, limit=1445f: 81f14458
    malloc_simple: size=x, ptr=8, limit=14468: 81f14460
    INSERT: table 403036dc, filled 6/97 rv 81f135f8 ==> name="board" value="am335x"
    malloc_simple: size=x, ptr=b, limit=14473: 81f14468
    malloc_simple: size=x, ptr=7, limit=1447b: 81f14474
    malloc_simple: size=x, ptr=16, limit=14492: 81f1447c
    malloc_simple: size=x, ptr=e, limit=144a2: 81f14494
    malloc_simple: size=x, ptr=12, limit=144b6: 81f144a4
    malloc_simple: size=x, ptr=12, limit=144ca: 81f144b8
    malloc_simple: size=x, ptr=e, limit=144da: 81f144cc
    malloc_simple: size=x, ptr=14, limit=144f0: 81f144dc
    malloc_simple: size=x, ptr=10, limit=14500: 81f144f0
    malloc_simple: size=x, ptr=12, limit=14512: 81f14500
    malloc_simple: size=x, ptr=c, limit=14520: 81f14514
    malloc_simple: size=x, ptr=a, limit=1452a: 81f14520
    malloc_simple: size=x, ptr=13, limit=1453f: 81f1452c
    malloc_simple: size=x, ptr=12, limit=14552: 81f14540
    malloc_simple: size=x, ptr=e, limit=14562: 81f14554
    malloc_simple: size=x, ptr=f, limit=14573: 81f14564
    malloc_simple: size=x, ptr=f, limit=14583: 81f14574
    malloc_simple: size=x, ptr=11, limit=14595: 81f14584
    malloc_simple: size=x, ptr=e, limit=145a6: 81f14598
    malloc_simple: size=x, ptr=9, limit=145b1: 81f145a8
    malloc_simple: size=x, ptr=c, limit=145c0: 81f145b4
    malloc_simple: size=x, ptr=a, limit=145ca: 81f145c0
    malloc_simple: size=x, ptr=b, limit=145d7: 81f145cc
    malloc_simple: size=x, ptr=8, limit=145e0: 81f145d8
    malloc_simple: size=x, ptr=7, limit=145e7: 81f145e0
    malloc_simple: size=x, ptr=8, limit=145f0: 81f145e8
    INSERT: table 403036dc, filled 7/97 rv 81f13800 ==> name="board_name" value="am335x"
    malloc_simple: size=x, ptr=7, limit=145f7: 81f145f0
    malloc_simple: size=x, ptr=3, limit=145fb: 81f145f8
    malloc_simple: size=x, ptr=16, limit=14612: 81f145fc
    malloc_simple: size=x, ptr=e, limit=14622: 81f14614
    malloc_simple: size=x, ptr=12, limit=14636: 81f14624
    malloc_simple: size=x, ptr=12, limit=1464a: 81f14638
    malloc_simple: size=x, ptr=e, limit=1465a: 81f1464c
    malloc_simple: size=x, ptr=14, limit=14670: 81f1465c
    malloc_simple: size=x, ptr=10, limit=14680: 81f14670
    malloc_simple: size=x, ptr=12, limit=14692: 81f14680
    malloc_simple: size=x, ptr=c, limit=146a0: 81f14694
    malloc_simple: size=x, ptr=a, limit=146aa: 81f146a0
    malloc_simple: size=x, ptr=13, limit=146bf: 81f146ac
    malloc_simple: size=x, ptr=12, limit=146d2: 81f146c0
    malloc_simple: size=x, ptr=e, limit=146e2: 81f146d4
    malloc_simple: size=x, ptr=f, limit=146f3: 81f146e4
    malloc_simple: size=x, ptr=f, limit=14703: 81f146f4
    malloc_simple: size=x, ptr=11, limit=14715: 81f14704
    malloc_simple: size=x, ptr=e, limit=14726: 81f14718
    malloc_simple: size=x, ptr=9, limit=14731: 81f14728
    malloc_simple: size=x, ptr=c, limit=14740: 81f14734
    malloc_simple: size=x, ptr=a, limit=1474a: 81f14740
    malloc_simple: size=x, ptr=b, limit=14757: 81f1474c
    malloc_simple: size=x, ptr=8, limit=14760: 81f14758
    malloc_simple: size=x, ptr=7, limit=14767: 81f14760
    malloc_simple: size=x, ptr=8, limit=14770: 81f14768
    INSERT: table 403036dc, filled 8/97 rv 81f13828 ==> name="vendor" value="ti"
    malloc_simple: size=x, ptr=4, limit=14774: 81f14770
    malloc_simple: size=x, ptr=7, limit=1477b: 81f14774
    malloc_simple: size=x, ptr=16, limit=14792: 81f1477c
    malloc_simple: size=x, ptr=e, limit=147a2: 81f14794
    malloc_simple: size=x, ptr=12, limit=147b6: 81f147a4
    malloc_simple: size=x, ptr=12, limit=147ca: 81f147b8
    malloc_simple: size=x, ptr=e, limit=147da: 81f147cc
    malloc_simple: size=x, ptr=14, limit=147f0: 81f147dc
    malloc_simple: size=x, ptr=10, limit=14800: 81f147f0
    malloc_simple: size=x, ptr=12, limit=14812: 81f14800
    malloc_simple: size=x, ptr=c, limit=14820: 81f14814
    malloc_simple: size=x, ptr=a, limit=1482a: 81f14820
    malloc_simple: size=x, ptr=13, limit=1483f: 81f1482c
    malloc_simple: size=x, ptr=12, limit=14852: 81f14840
    malloc_simple: size=x, ptr=e, limit=14862: 81f14854
    malloc_simple: size=x, ptr=f, limit=14873: 81f14864
    malloc_simple: size=x, ptr=f, limit=14883: 81f14874
    malloc_simple: size=x, ptr=11, limit=14895: 81f14884
    malloc_simple: size=x, ptr=e, limit=148a6: 81f14898
    malloc_simple: size=x, ptr=9, limit=148b1: 81f148a8
    malloc_simple: size=x, ptr=c, limit=148c0: 81f148b4
    malloc_simple: size=x, ptr=a, limit=148ca: 81f148c0
    malloc_simple: size=x, ptr=b, limit=148d7: 81f148cc
    malloc_simple: size=x, ptr=8, limit=148e0: 81f148d8
    malloc_simple: size=x, ptr=7, limit=148e7: 81f148e0
    malloc_simple: size=x, ptr=8, limit=148f0: 81f148e8
    INSERT: table 403036dc, filled 9/97 rv 81f13698 ==> name="soc" value="am33xx"
    INSERT: free(data = 81f13240)
    INSERT: done
    VFAT Support enabled
    FAT32, fat_sect: 32, fatlength: 1103
    Rootdir begins at cluster: 2, sector: 2238, offset: 117c00
    Data begins at: 2236
    Sector size: 512, cluster size: 1
    FAT read(sect=2238), clust_size=1, DIRENTSPERBLOCK=d
    FAT32: entry: 0x00000002 = 2, offset: 0x0002 = 2
    debug: evicting -1, dirty: 0
    FAT32: ret: 0x0ffffff8, entry: 0x00000002, offset: 0x0002
    cursect: 0xffffff8
    reading u-boot.img
    Filesize: u bytes
    u bytes
    gc - clustnum: 15832, startsect: 18068
    Found FIT
    VFAT Support enabled
    FAT32, fat_sect: 32, fatlength: 1103
    Rootdir begins at cluster: 2, sector: 2238, offset: 117c00
    Data begins at: 2236
    Sector size: 512, cluster size: 1
    FAT read(sect=2238), clust_size=1, DIRENTSPERBLOCK=d
    FAT32: entry: 0x00000002 = 2, offset: 0x0002 = 2
    debug: evicting -1, dirty: 0
    FAT32: ret: 0x0ffffff8, entry: 0x00000002, offset: 0x0002
    cursect: 0xffffff8
    reading u-boot.img
    Filesize: u bytes
    u bytes
    FAT32: entry: 0x00003dd8 = 15832, offset: 0x01d8 = 472
    debug: evicting 0, dirty: 0
    FAT32: ret: 0x00003dd9, entry: 0x00003dd8, offset: 0x01d8
    FAT32: entry: 0x00003dd9 = 15833, offset: 0x01d9 = 473
    FAT32: ret: 0x00003dda, entry: 0x00003dd9, offset: 0x01d9
    FAT32: entry: 0x00003dda = 15834, offset: 0x01da = 474
    FAT32: ret: 0x00003ddb, entry: 0x00003dda, offset: 0x01da
    gc - clustnum: 15832, startsect: 18068
    fit read sector 0, sectors=1984, dst=807ff800, count=1984
    Selecting config 'am335x-boneblack'firmware: 'firmware@1'
    VFAT Support enabled
    FAT32, fat_sect: 32, fatlength: 1103
    Rootdir begins at cluster: 2, sector: 2238, offset: 117c00
    Data begins at: 2236
    Sector size: 512, cluster size: 1
    FAT read(sect=2238), clust_size=1, DIRENTSPERBLOCK=d
    FAT32: entry: 0x00000002 = 2, offset: 0x0002 = 2
    debug: evicting -1, dirty: 0
    FAT32: ret: 0x0ffffff8, entry: 0x00000002, offset: 0x0002
    cursect: 0xffffff8
    reading u-boot.img
    Filesize: u bytes
    u bytes
    FAT32: entry: 0x00003dd8 = 15832, offset: 0x01d8 = 472
    debug: evicting 0, dirty: 0
    FAT32: ret: 0x00003dd9, entry: 0x00003dd8, offset: 0x01d8
    FAT32: entry: 0x00003dd9 = 15833, offset: 0x01d9 = 473
    FAT32: ret: 0x00003dda, entry: 0x00003dd9, offset: 0x01d9
    FAT32: entry: 0x00003dda = 15834, offset: 0x01da = 474
    FAT32: ret: 0x00003ddb, entry: 0x00003dda, offset: 0x01da
    gc - clustnum: 15835, startsect: 18071
    FAT32: entry: 0x00003ddb = 15835, offset: 0x01db = 475
    FAT32: ret: 0x00003ddc, entry: 0x00003ddb, offset: 0x01db
    FAT32: entry: 0x00003ddc = 15836, offset: 0x01dc = 476
    FAT32: ret: 0x00003ddd, entry: 0x00003ddc, offset: 0x01dc
    FAT32: entry: 0x00003ddd = 15837, offset: 0x01dd = 477
    FAT32: ret: 0x00003dde, entry: 0x00003ddd, offset: 0x01dd
    FAT32: entry: 0x00003dde = 15838, offset: 0x01de = 478
    FAT32: ret: 0x00003ddf, entry: 0x00003dde, offset: 0x01de
    FAT32: entry: 0x00003ddf = 15839, offset: 0x01df = 479
    FAT32: ret: 0x00003de0, entry: 0x00003ddf, offset: 0x01df
    FAT32: entry: 0x00003de0 = 15840, offset: 0x01e0 = 480
    FAT32: ret: 0x00003de1, entry: 0x00003de0, offset: 0x01e0
    FAT32: entry: 0x00003de1 = 15841, offset: 0x01e1 = 481
    FAT32: ret: 0x00003de2, entry: 0x00003de1, offset: 0x01e1
    FAT32: entry: 0x00003de2 = 15842, offset: 0x01e2 = 482
    FAT32: ret: 0x00003de3, entry: 0x00003de2, offset: 0x01e2
    FAT32: entry: 0x00003de3 = 15843, offset: 0x01e3 = 483
    FAT32: ret: 0x00003de4, entry: 0x00003de3, offset: 0x01e3
    FAT32: entry: 0x00003de4 = 15844, offset: 0x01e4 = 484
    FAT32: ret: 0x00003de5, entry: 0x00003de4, offset: 0x01e4
    FAT32: entry: 0x00003de5 = 15845, offset: 0x01e5 = 485
    FAT32: ret: 0x00003de6, entry: 0x00003de5, offset: 0x01e5
    FAT32: entry: 0x00003de6 = 15846, offset: 0x01e6 = 486
    FAT32: ret: 0x00003de7, entry: 0x00003de6, offset: 0x01e6
    FAT32: entry: 0x00003de7 = 15847, offset: 0x01e7 = 487
    FAT32: ret: 0x00003de8, entry: 0x00003de7, offset: 0x01e7
    FAT32: entry: 0x00003de8 = 15848, offset: 0x01e8 = 488
    FAT32: ret: 0x00003de9, entry: 0x00003de8, offset: 0x01e8
    FAT32: entry: 0x00003de9 = 15849, offset: 0x01e9 = 489
    FAT32: ret: 0x00003dea, entry: 0x00003de9, offset: 0x01e9
    FAT32: entry: 0x00003dea = 15850, offset: 0x01ea = 490
    FAT32: ret: 0x00003deb, entry: 0x00003dea, offset: 0x01ea
    FAT32: entry: 0x00003deb = 15851, offset: 0x01eb = 491
    FAT32: ret: 0x00003dec, entry: 0x00003deb, offset: 0x01eb
    FAT32: entry: 0x00003dec = 15852, offset: 0x01ec = 492
    FAT32: ret: 0x00003ded, entry: 0x00003dec, offset: 0x01ec
    FAT32: entry: 0x00003ded = 15853, offset: 0x01ed = 493
    FAT32: ret: 0x00003dee, entry: 0x00003ded, offset: 0x01ed
    FAT32: entry: 0x00003dee = 15854, offset: 0x01ee = 494
    FAT32: ret: 0x00003def, entry: 0x00003dee, offset: 0x01ee
    FAT32: entry: 0x00003def = 15855, offset: 0x01ef = 495
    FAT32: ret: 0x00003df0, entry: 0x00003def, offset: 0x01ef
    FAT32: entry: 0x00003df0 = 15856, offset: 0x01f0 = 496
    FAT32: ret: 0x00003df1, entry: 0x00003df0, offset: 0x01f0
    FAT32: entry: 0x00003df1 = 15857, offset: 0x01f1 = 497
    FAT32: ret: 0x00003df2, entry: 0x00003df1, offset: 0x01f1
    FAT32: entry: 0x00003df2 = 15858, offset: 0x01f2 = 498
    FAT32: ret: 0x00003df3, entry: 0x00003df2, offset: 0x01f2
    FAT32: entry: 0x00003df3 = 15859, offset: 0x01f3 = 499
    FAT32: ret: 0x00003df4, entry: 0x00003df3, offset: 0x01f3
    FAT32: entry: 0x00003df4 = 15860, offset: 0x01f4 = 500
    FAT32: ret: 0x00003df5, entry: 0x00003df4, offset: 0x01f4
    FAT32: entry: 0x00003df5 = 15861, offset: 0x01f5 = 501
    FAT32: ret: 0x00003df6, entry: 0x00003df5, offset: 0x01f5
    FAT32: entry: 0x00003df6 = 15862, offset: 0x01f6 = 502
    FAT32: ret: 0x00003df7, entry: 0x00003df6, offset: 0x01f6
    FAT32: entry: 0x00003df7 = 15863, offset: 0x01f7 = 503
    FAT32: ret: 0x00003df8, entry: 0x00003df7, offset: 0x01f7
    FAT32: entry: 0x00003df8 = 15864, offset: 0x01f8 = 504
    FAT32: ret: 0x00003df9, entry: 0x00003df8, offset: 0x01f8
    FAT32: entry: 0x00003df9 = 15865, offset: 0x01f9 = 505
    FAT32: ret: 0x00003dfa, entry: 0x00003df9, offset: 0x01f9
    FAT32: entry: 0x00003dfa = 15866, offset: 0x01fa = 506
    FAT32: ret: 0x00003dfb, entry: 0x00003dfa, offset: 0x01fa
    FAT32: entry: 0x00003dfb = 15867, offset: 0x01fb = 507
    FAT32: ret: 0x00003dfc, entry: 0x00003dfb, offset: 0x01fb
    FAT32: entry: 0x00003dfc = 15868, offset: 0x01fc = 508
    FAT32: ret: 0x00003dfd, entry: 0x00003dfc, offset: 0x01fc
    FAT32: entry: 0x00003dfd = 15869, offset: 0x01fd = 509
    FAT32: ret: 0x00003dfe, entry: 0x00003dfd, offset: 0x01fd
    FAT32: entry: 0x00003dfe = 15870, offset: 0x01fe = 510
    FAT32: ret: 0x00003dff, entry: 0x00003dfe, offset: 0x01fe
    FAT32: entry: 0x00003dff = 15871, offset: 0x01ff = 511
    FAT32: ret: 0x00003e00, entry: 0x00003dff, offset: 0x01ff
    FAT32: entry: 0x00003e00 = 15872, offset: 0x0200 = 512
    FAT32: ret: 0x00003e01, entry: 0x00003e00, offset: 0x0200
    FAT32: entry: 0x00003e01 = 15873, offset: 0x0201 = 513
    FAT32: ret: 0x00003e02, entry: 0x00003e01, offset: 0x0201
    FAT32: entry: 0x00003e02 = 15874, offset: 0x0202 = 514
    FAT32: ret: 0x00003e03, entry: 0x00003e02, offset: 0x0202
    FAT32: entry: 0x00003e03 = 15875, offset: 0x0203 = 515
    FAT32: ret: 0x00003e04, entry: 0x00003e03, offset: 0x0203
    FAT32: entry: 0x00003e04 = 15876, offset: 0x0204 = 516           
    FAT32: ret: 0x00003e05, entry: 0x00003e04, offset: 0x0204              
    FAT32: entry: 0x00003e05 = 15877, offset: 0x0205 = 517                
    FAT32: ret: 0x00003e06, entry: 0x00003e05, offset: 0x0205                 
    FAT32: entry: 0x00003e06 = 15878, offset: 0x0206 = 518                 
    FAT32: ret: 0x00003e07, entry: 0x00003e06, offset: 0x0206
    FAT32: entry: 0x00003e07 = 15879, offset: 0x0207 = 519
    FAT32: ret: 0x00003e08, entry: 0x00003e07, offset: 0x0207
    FAT32: entry: 0x00003e08 = 15880, offset: 0x0208 = 520
    FAT32: ret: 0x00003e09, entry: 0x00003e08, offset: 0x0208
    FAT32: entry: 0x00003e09 = 15881, offset: 0x0209 = 521
    FAT32: ret: 0x00003e0a, entry: 0x00003e09, offset: 0x0209
    FAT32: entry: 0x00003e0a = 15882, offset: 0x020a = 522
    FAT32: ret: 0x00003e0b, entry: 0x00003e0a, offset: 0x020a
    FAT32: entry: 0x00003e0b = 15883, offset: 0x020b = 523
    FAT32: ret: 0x00003e0c, entry: 0x00003e0b, offset: 0x020b
    FAT32: entry: 0x00003e0c = 15884, offset: 0x020c = 524
    FAT32: ret: 0x00003e0d, entry: 0x00003e0c, offset: 0x020c
    FAT32: entry: 0x00003e0d = 15885, offset: 0x020d = 525
    FAT32: ret: 0x00003e0e, entry: 0x00003e0d, offset: 0x020d
    FAT32: entry: 0x00003e0e = 15886, offset: 0x020e = 526
    FAT32: ret: 0x00003e0f, entry: 0x00003e0e, offset: 0x020e
    FAT32: entry: 0x00003e0f = 15887, offset: 0x020f = 527
    FAT32: ret: 0x00003e10, entry: 0x00003e0f, offset: 0x020f
    FAT32: entry: 0x00003e10 = 15888, offset: 0x0210 = 528
    FAT32: ret: 0x00003e11, entry: 0x00003e10, offset: 0x0210
    FAT32: entry: 0x00003e11 = 15889, offset: 0x0211 = 529
    FAT32: ret: 0x00003e12, entry: 0x00003e11, offset: 0x0211
    FAT32: entry: 0x00003e12 = 15890, offset: 0x0212 = 530
    FAT32: ret: 0x00003e13, entry: 0x00003e12, offset: 0x0212
    FAT32: entry: 0x00003e13 = 15891, offset: 0x0213 = 531
    FAT32: ret: 0x00003e14, entry: 0x00003e13, offset: 0x0213
    FAT32: entry: 0x00003e14 = 15892, offset: 0x0214 = 532
    FAT32: ret: 0x00003e15, entry: 0x00003e14, offset: 0x0214
    FAT32: entry: 0x00003e15 = 15893, offset: 0x0215 = 533
    FAT32: ret: 0x00003e16, entry: 0x00003e15, offset: 0x0215
    FAT32: entry: 0x00003e16 = 15894, offset: 0x0216 = 534
    FAT32: ret: 0x00003e17, entry: 0x00003e16, offset: 0x0216
    FAT32: entry: 0x00003e17 = 15895, offset: 0x0217 = 535
    FAT32: ret: 0x00003e18, entry: 0x00003e17, offset: 0x0217
    FAT32: entry: 0x00003e18 = 15896, offset: 0x0218 = 536
    FAT32: ret: 0x00003e19, entry: 0x00003e18, offset: 0x0218
    FAT32: entry: 0x00003e19 = 15897, offset: 0x0219 = 537
    FAT32: ret: 0x00803e1a, entry: 0x00003e19, offset: 0x0219
    gc - clustnum: 15836, startsect: 18072
    FAT32: entry: 0x00003e19 = 15897, offset: 0x0219 = 537
    FAT32: ret: 0x00803e1a, entry: 0x00003e19, offset: 0x0219
    FAT32: entry: 0x00803e1a = 8404506, offset: 0x011a = 282
    debug: evicting 20, dirty: 0

  • "Trying to boot from MMC1" message means that the board tries to boot from mmc0, if it tries to boot from mmc1 the printed message will be "Trying to boot from MMC2".

    Continuously reading the u-boot.img and never be able to load it may indicate an issue with the SD card signal levels or most probably the read bytes gets lost in your RAM memory because of improper DDR timings. You will need to tune the DDR timings, if you have not done that yet. You can check this, this and this thread for more details.

  • Thanks.

    For the DDR ratio sheet, I see the following registers as output:

    DATAx_PHY_RD DQS_SLAVE_RATIO 40
    DATAx_PHY_FIFO_WE_SLAVE_RATIO 40
    DATAx_PHY_WR DQS_SLAVE_RATIO 0
    DATAx_PHY_WR_DATA_SLAVE_RATIO 40
    CMDx_PHY_CTRL_SLAVE_RATIO 80

    Where in u-boot they should be filled in? As I see these variables for my DDR2 memory in ddr_defs.h but the naming is completely different. Or am I looking at the wrong spot.

    /* Micron MT47H128M16RT-25E */
    #define MT47H128M16RT25E_EMIF_READ_LATENCY    0x100005
    #define MT47H128M16RT25E_EMIF_TIM1        0x0666B3C9
    #define MT47H128M16RT25E_EMIF_TIM2        0x243631CA
    #define MT47H128M16RT25E_EMIF_TIM3        0x0000033F
    #define MT47H128M16RT25E_EMIF_SDCFG        0x41805332
    #define MT47H128M16RT25E_EMIF_SDREF        0x0000081a
    #define MT47H128M16RT25E_RATIO            0x80
    #define MT47H128M16RT25E_RD_DQS            0x12
    #define MT47H128M16RT25E_PHY_WR_DATA        0x40
    #define MT47H128M16RT25E_PHY_FIFO_WE        0x80
    #define MT47H128M16RT25E_IOCTRL_VALUE    0x18B

  • J E said:

    Thanks.

    For the DDR ratio sheet, I see the following registers as output:

    DATAx_PHY_RD DQS_SLAVE_RATIO 40
    DATAx_PHY_FIFO_WE_SLAVE_RATIO 40
    DATAx_PHY_WR DQS_SLAVE_RATIO 0
    DATAx_PHY_WR_DATA_SLAVE_RATIO 40
    CMDx_PHY_CTRL_SLAVE_RATIO 80

    Where in u-boot they should be filled in? As I see these variables for my DDR2 memory in ddr_defs.h but the naming is completely different. Or am I looking at the wrong spot.

    /* Micron MT47H128M16RT-25E */
    #define MT47H128M16RT25E_EMIF_READ_LATENCY    0x100005
    #define MT47H128M16RT25E_EMIF_TIM1        0x0666B3C9
    #define MT47H128M16RT25E_EMIF_TIM2        0x243631CA
    #define MT47H128M16RT25E_EMIF_TIM3        0x0000033F
    #define MT47H128M16RT25E_EMIF_SDCFG        0x41805332
    #define MT47H128M16RT25E_EMIF_SDREF        0x0000081a
    #define MT47H128M16RT25E_RATIO            0x80
    #define MT47H128M16RT25E_RD_DQS            0x12
    #define MT47H128M16RT25E_PHY_WR_DATA        0x40
    #define MT47H128M16RT25E_PHY_FIFO_WE        0x80
    #define MT47H128M16RT25E_IOCTRL_VALUE    0x18B

    I matched them up with color coding above to help.  The "RATIO" one was tricky!  Also of note, DDR3 configs define .datawdsratio0 in the board.c structures.  I see it isn't even listed in the DDR2 structures, presumably since it's always 0, i.e. that's where ordinarily you would assign the WR DQS_SLAVE_RATIO value.

    On a related note, I strongly recommend that after your board is booted you do the following:

    1. Connect with JTAG.
    2. Verify MMU is Off in bottom line of CCS (otherwise that can mess with addresses).
    3. Open memory window to address 0x80000000.
    4. Refresh the window a bunch of times to see if anything turns red, which would indicate data is changing which is bad.
    5. Poke a data value into memory somewhere.  Refresh it a bunch of times and see if it sticks.

    The above test is just very rudimentary.  It is an easy way of finding a severely broken memory interface.  On the other hand, if everything is good that's a good sign, but doesn't necessarily mean your interface is perfect.

    Brad

  • Thanks a lot!

  • Sorry, I have one more question which is more hardware related. I was not able to find it in the datasheet.

    My DDR2 module is not using the DDR_A14 and DDR_A15 pins, which means they are not connected to the AM3358.
    Do I need to directly connect these 2 pins to GND at the AM3358 side? Or can I leave them unconnected.

    Thank you.

  • Leave them unconnected.