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.

MLO stuck AM3359

Our custom board MLO can't boot correct , hang in first stage.

I know maybe is hardware issue , but i don't have any idea to check what happen.

U-Boot SPL 2013.04 (Sep 16 2015 - 14:27:37)

enable_board_pin_mux

check board_is_bone_lt

s_init finished

>>spl:board_init_r()

>>spl:common/dlmalloc start

>>spl:common/dlmalloc finished

>>spl:common/indll malloc_bin_reloc finished

>>spl:time_init()finished

boot device - 8

SPL:MMC

SPL:mmc intialize start

OMAP SD/MMC: 0

SPL:mmc intialize finished

SPL:find_mmc_device int function started 

  • Thanks for your reply

    I have tested DDR memory below is the result what I examined.

    Enter the PHY_INVERT_CLKOUT value (0 or 1) from the spreadsheet
    0

    Enter the Seed RD_DQS_SLAVE_RATIO Value in Hex to search the RD DQS Ratio Window
    40

    Enter the Seed FIFO_WE_SLAVE_RATIO Value in Hex to search the RD DQS Gate Window
    70

    Enter the Seed WR_DQS_SLAVE_RATIO Write DQS Ratio Value in Hex to search the Write DQS Ratio Window
    01

    ***************************************************************
    The Slave Ratio Search Program Values are...
    ***************************************************************
    PARAMETER MAX | MIN | OPTIMUM | RANGE
    ***************************************************************
    DATA_PHY_RD_DQS_SLAVE_RATIO 0x06b | 0x005 | 0x038 | 0x066
    DATA_PHY_FIFO_WE_SLAVE_RATIO 0x13a | 0x000 | 0x09d | 0x13a
    DATA_PHY_WR_DQS_SLAVE_RATIO 0x03e | 0x000 | 0x01f | 0x03e
    DATA_PHY_WR_DATA_SLAVE_RATIO 0x074 | 0x005 | 0x03c | 0x06f
    ***************************************************************
    rd_dqs_range = 38
    fifo_we_range = 9d
    wr_dqs_range = 1f
    wr_data_range = 3c

    Optimal values not reached, rerunning program with new values...

    ***************************************************************
    The Slave Ratio Search Program Values are...
    ***************************************************************
    PARAMETER MAX | MIN | OPTIMUM | RANGE
    ***************************************************************
    DATA_PHY_RD_DQS_SLAVE_RATIO 0x06b | 0x005 | 0x038 | 0x066
    DATA_PHY_FIFO_WE_SLAVE_RATIO 0x133 | 0x000 | 0x099 | 0x133
    DATA_PHY_WR_DQS_SLAVE_RATIO 0x05a | 0x000 | 0x02d | 0x05a
    DATA_PHY_WR_DATA_SLAVE_RATIO 0x094 | 0x025 | 0x05c | 0x06f
    ***************************************************************
    rd_dqs_range = 0
    fifo_we_range = 4
    wr_dqs_range = e
    wr_data_range = 20

    Optimal values not reached, rerunning program with new values...

    ***************************************************************
    The Slave Ratio Search Program Values are...
    ***************************************************************
    PARAMETER MAX | MIN | OPTIMUM | RANGE
    ***************************************************************
    DATA_PHY_RD_DQS_SLAVE_RATIO 0x06b | 0x005 | 0x038 | 0x066
    DATA_PHY_FIFO_WE_SLAVE_RATIO 0x132 | 0x000 | 0x099 | 0x132
    DATA_PHY_WR_DQS_SLAVE_RATIO 0x069 | 0x000 | 0x034 | 0x069
    DATA_PHY_WR_DATA_SLAVE_RATIO 0x09f | 0x030 | 0x067 | 0x06f
    ***************************************************************
    rd_dqs_range = 0
    fifo_we_range = 0
    wr_dqs_range = 7
    wr_data_range = b

    Optimal values not reached, rerunning program with new values...

    ***************************************************************
    The Slave Ratio Search Program Values are...
    ***************************************************************
    PARAMETER MAX | MIN | OPTIMUM | RANGE
    ***************************************************************
    DATA_PHY_RD_DQS_SLAVE_RATIO 0x06b | 0x005 | 0x038 | 0x066
    DATA_PHY_FIFO_WE_SLAVE_RATIO 0x131 | 0x000 | 0x098 | 0x131
    DATA_PHY_WR_DQS_SLAVE_RATIO 0x06d | 0x000 | 0x036 | 0x06d
    DATA_PHY_WR_DATA_SLAVE_RATIO 0x0a7 | 0x038 | 0x06f | 0x06f
    ***************************************************************
    rd_dqs_range = 0
    fifo_we_range = 1
    wr_dqs_range = 2
    wr_data_range = 8

    Optimal values not reached, rerunning program with new values...

    ***************************************************************
    The Slave Ratio Search Program Values are...
    ***************************************************************
    PARAMETER MAX | MIN | OPTIMUM | RANGE
    ***************************************************************
    DATA_PHY_RD_DQS_SLAVE_RATIO 0x06b | 0x005 | 0x038 | 0x066
    DATA_PHY_FIFO_WE_SLAVE_RATIO 0x131 | 0x000 | 0x098 | 0x131
    DATA_PHY_WR_DQS_SLAVE_RATIO 0x072 | 0x005 | 0x03b | 0x06d
    DATA_PHY_WR_DATA_SLAVE_RATIO 0x0a7 | 0x03b | 0x071 | 0x06c
    ***************************************************************
    rd_dqs_range = 0
    fifo_we_range = 0
    wr_dqs_range = 5
    wr_data_range = 2

    Optimal values not reached, rerunning program with new values...

    ***************************************************************
    The Slave Ratio Search Program Values are...
    ***************************************************************
    PARAMETER MAX | MIN | OPTIMUM | RANGE
    ***************************************************************
    DATA_PHY_RD_DQS_SLAVE_RATIO 0x06b | 0x005 | 0x038 | 0x066
    DATA_PHY_FIFO_WE_SLAVE_RATIO 0x132 | 0x000 | 0x099 | 0x132
    DATA_PHY_WR_DQS_SLAVE_RATIO 0x076 | 0x009 | 0x03f | 0x06d
    DATA_PHY_WR_DATA_SLAVE_RATIO 0x0ae | 0x041 | 0x077 | 0x06d
    ***************************************************************
    rd_dqs_range = 0
    fifo_we_range = 1
    wr_dqs_range = 4
    wr_data_range = 6

    Optimal values not reached, rerunning program with new values...

    ***************************************************************
    The Slave Ratio Search Program Values are...
    ***************************************************************
    PARAMETER MAX | MIN | OPTIMUM | RANGE
    ***************************************************************
    DATA_PHY_RD_DQS_SLAVE_RATIO 0x06b | 0x005 | 0x038 | 0x066
    DATA_PHY_FIFO_WE_SLAVE_RATIO 0x131 | 0x000 | 0x098 | 0x131
    DATA_PHY_WR_DQS_SLAVE_RATIO 0x07a | 0x00d | 0x043 | 0x06d
    DATA_PHY_WR_DATA_SLAVE_RATIO 0x0b0 | 0x043 | 0x079 | 0x06d
    ***************************************************************
    rd_dqs_range = 0
    fifo_we_range = 1
    wr_dqs_range = 4
    wr_data_range = 2

    Optimal values not reached, rerunning program with new values...

    ***************************************************************
    The Slave Ratio Search Program Values are...
    ***************************************************************
    PARAMETER MAX | MIN | OPTIMUM | RANGE
    ***************************************************************
    DATA_PHY_RD_DQS_SLAVE_RATIO 0x06b | 0x005 | 0x038 | 0x066
    DATA_PHY_FIFO_WE_SLAVE_RATIO 0x131 | 0x000 | 0x098 | 0x131
    DATA_PHY_WR_DQS_SLAVE_RATIO 0x07a | 0x00d | 0x043 | 0x06d
    DATA_PHY_WR_DATA_SLAVE_RATIO 0x0b6 | 0x047 | 0x07e | 0x06f
    ***************************************************************
    rd_dqs_range = 0
    fifo_we_range = 0
    wr_dqs_range = 0
    wr_data_range = 5

    Optimal values not reached, rerunning program with new values...

    ***************************************************************
    The Slave Ratio Search Program Values are...
    ***************************************************************
    PARAMETER MAX | MIN | OPTIMUM | RANGE
    ***************************************************************
    DATA_PHY_RD_DQS_SLAVE_RATIO 0x06b | 0x005 | 0x038 | 0x066
    DATA_PHY_FIFO_WE_SLAVE_RATIO 0x131 | 0x000 | 0x098 | 0x131
    DATA_PHY_WR_DQS_SLAVE_RATIO 0x07a | 0x00d | 0x043 | 0x06d
    DATA_PHY_WR_DATA_SLAVE_RATIO 0x0b6 | 0x047 | 0x07e | 0x06f
    ***************************************************************
    rd_dqs_range = 0
    fifo_we_range = 0
    wr_dqs_range = 0
    wr_data_range = 0

    Optimal values have been found!!

    ***************************************************************
    The Slave Ratio Search Program Values are...
    ***************************************************************
    PARAMETER MAX | MIN | OPTIMUM | RANGE
    ***************************************************************
    DATA_PHY_RD_DQS_SLAVE_RATIO 0x06b | 0x005 | 0x038 | 0x066
    DATA_PHY_FIFO_WE_SLAVE_RATIO 0x131 | 0x000 | 0x098 | 0x131
    DATA_PHY_WR_DQS_SLAVE_RATIO 0x07a | 0x00d | 0x043 | 0x06d
    DATA_PHY_WR_DATA_SLAVE_RATIO 0x0b6 | 0x047 | 0x07e | 0x06f
    ***************************************************************

    ===== END OF TEST =====

    for your reference in my U-boot loader in ddr_defs.h file ,I have below content and my query is there any thing should I need to cross verified .

    /* Micron MT41K256M16HA-125E */
    #define MT41K256M16HA125E_EMIF_READ_LATENCY 0x100007
    #define MT41K256M16HA125E_EMIF_TIM1 0x0AAAD4DB
    #define MT41K256M16HA125E_EMIF_TIM2 0x266B7FDA
    #define MT41K256M16HA125E_EMIF_TIM3 0x501F867F
    #define MT41K256M16HA125E_EMIF_SDCFG 0x61C05332
    #define MT41K256M16HA125E_EMIF_SDREF 0xC30
    #define MT41K256M16HA125E_ZQ_CFG 0x50074BE4
    #define MT41K256M16HA125E_DLL_LOCK_DIFF 0x1
    #define MT41K256M16HA125E_RATIO 0x80
    #define MT41K256M16HA125E_INVERT_CLKOUT 0x0
    #define MT41K256M16HA125E_RD_DQS 0x38
    #define MT41K256M16HA125E_WR_DQS 0x44
    #define MT41K256M16HA125E_PHY_WR_DATA 0x7D
    #define MT41K256M16HA125E_PHY_FIFO_WE 0x94
    #define MT41K256M16HA125E_IOCTRL_VALUE 0x18B

    Thanks for your reply in advance
  • I don't know what type of memory you are using, so I cannot comment. You should also fill in the timing spreadsheet and adjust the timing registers appropriately. Just follow the step-by-step guide that I posted above.