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.

DDR3 issue with DM814X: 1st u-boot hangs with 400MHz DDR frequency and it works with the lower frequencies (333MHz, 200MHz)

Hello TI,

We have DM814x based custom board. We are using UART boot-mode to load the 1st stage u-boot in IRAM and we are facing the issue here, 1st stage u-boot (compiled with DDR3 to be initialized at 400MHz) hangs and we didn't receive 1st stage u-boot prompt (U-BOOT_MIN prompt). We re-compiled the 1st stage u-boot with DDR frequency at 333MHz and performed the same steps, it works fine. We received the 1st stage u-boot prompt (debug prints shows that DDR is running at 333MHz). And then 2nd stage u-boot also worked well.

We repeat the same thing with the 200MHz as well, and it works too. 2nd stage u-boot works with 200MHz

We did one more experiments: We load 1st stage u-boot compiled at 333MHz (as usual we received 1st stage u-boot prompt) and we load 2nd stage u-boot compiled at 400MHz, we received 2nd stage u-boot prompt and the print shows the DDR frequency 400MHz but in actual when we measure it using CRO it shows the same with which 1st u-boot initialized (i.e. 333MHz only)

Can anyone help me why my 1st stage u-boot compiled with DDR@400MHz doesn't initialize DDR and lower frequency does initialize?

Regards,

Hitesh

  • Hi Hitesh,

    This can be caused by PCB's poor performance. You should provide correct CK, DQS, trace length for your custom board, and the emulator would provide the correct DDR3 settings to be programmed in 'drr_defs_814x.h'. DDR3 requires software leveling to tune the device I/Os to the timing characteristics of a particular board design. Hardware leveling is not supported. For details on software leveling, see the wiki page below:

    http://processors.wiki.ti.com/index.php/TI814x-DDR3-Init-U-Boot

    Refer also to the below E2E threads:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/159184/903847.aspx

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/247633.aspx

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/272030.aspx

    BR
    Pavel

  • Thanks Pavel for your prompt response.

    To give you more information about the same, In few boards of the 1st batch, we are able to load 1st stage u-boot successfully but few boards of 2nd batch this happen what i mentioned here.

    In some boards which are having a problem with 400MHz DDR clock in 1st UBL, if we decrease the temperature below ambient (room temperature); DM boots with 1st stage UBL having 400MHz DDR clock. This is not applicable to all boards which are having problem.

    Do you have any idea why this is happening?

    BTW: We are performing the software leveling at our end and we hope that this is the issue and which we can solve by software leveling.

    Regards,

    Hitesh

  • Hitesh,

    Hitesh Viradiya said:
    In few boards of the 1st batch, we are able to load 1st stage u-boot successfully but few boards of 2nd batch this happen what i mentioned here.

    Hitesh Viradiya said:
    This is not applicable to all boards which are having problem.

    When a software runs successfully on one hardware and the same software fails on other hardware, this is indication of a hardware malfunction. Please double check the hardware design of the failing boards. For reference you can use your working hardware/boards, DM814x datasheet, Mistral DM814x EVM design, also the below links:

    http://processors.wiki.ti.com/index.php/DM814x_Hardware_Design_Guide

    http://processors.wiki.ti.com/index.php/AM387x_/_C6A814x_Schematic_Review_Checklist

    Hitesh Viradiya said:
    BTW: We are performing the software leveling at our end and we hope that this is the issue and which we can solve by software leveling.

    Yes, this may also solve the issue.

    BR
    Pavel

  • Thanks for the information. We fixed the issue by updating the timing parameters.

    Regards,

    Hitesh

  • Out of curiosity, which where the timing parameters that you've updated?

     

    Regards,

    José