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.

AM4376 Starterware LPDDR2 Configuration

Other Parts Discussed in Thread: AM4376

Hi team,

We are working with the Starterware code on the AM4376 looking at the below snippet of code. Should the while loop be after the writing to the MR10 registers?

GEL_TextOut("Waiting for LPDDR2 autoinitialization to be ready...\n");
GEL_TextOut("\n");
WR_MEM_32(EMIF_LPDDR2_MODE_REG_CFG,0x00000000);
while((RD_MEM_32(EMIF_LPDDR2_MODE_REG_DATA) & 0xFF) != 0x18);

GEL_TextOut("LPDDR2 autoinitialization complete!\n");

//write mode registers in LPDDR2
GEL_TextOut("Writing LPDDR2 mode registers...\n");

WR_MEM_32(EMIF_LPDDR2_MODE_REG_CFG ,0x0000000A); //MR10 CS0
WR_MEM_32(EMIF_LPDDR2_MODE_REG_DATA,0x56);

WR_MEM_32(EMIF_LPDDR2_MODE_REG_CFG ,0x8000000A); //MR10 CS1
WR_MEM_32(EMIF_LPDDR2_MODE_REG_DATA,0x56);

Regards,

Akash Patel

  • Akash,
    I looked at the gel file and it does not have the while loop either after MR10. C:\ti\ccsv6\ccs_base\emulation\boards\evmam437x\gel\AM43xx_EMIFconfig_HWlvl.gel

    What are you basing your question on if the while loop should be after the MR10 registers?
    Did not see this requirement explicitly spiked out in the TRM either. I will ask a colleague familar with DDR config to comment as well.

    Lali
  • The while loop is checking status bits in the LPDDR2 memory to see if initialization is complete, so it should remain where it is.  Beyond that, the MR10 register writes are performed on each chip select for ZQ calibration.

    Regards,

    James