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.

AM5748: EMIF DDR3 Software Leveling

Part Number: AM5748

Our customer wants to use SW leveling instead of HW leveling because they want to clarify the timing margin for each of their boards. In their experience, they know that DRAM has a timing margin variation and a high defect rate. SW leveling can know the timing margin while process which it is running, but HW leveling cannot.

There are some questions for SW leveling:

1) Do the EMIF_EXT_PHY_CONTROL_26 through EMIF_EXT_PHY_CONTROL_30 registers have to be configured?

   These registers seem to be used only with HW leveling (read DQS gate training).

2) Does the EMIF_EXT_PHY_CONTROL_25 register have to be configured?

   The EMIF_EXT_PHY_CONTROL_12 through EMIF_EXT_PHY_CONTROL_15 registers will be configured instead of the EMIF_EXT_PHY_CONTROL_25 register.

3) Does the REG_PHY_DQ_OFFSET_HI field in EMIF_EXT_PHY_CONTROL_24 register have to be configured?

   The EMIF_EXT_PHY_CONTROL_16 register will be configured instead of the REG_PHY_DQ_OFFSET_HI field.

Best regards,

Daisuke

  • Daisuke, your customer should only be using HW leveling for AM57x. This will provide the best timing margin for their design and is proven across PVT. We don't support incremental leveling via software

    Regards,
    James
  • Hi James-san,

    Thank you for your reply.

    Our customer believes that SW leveling is better than HW leveling because SW leveling can check the range of timing margin and then check if there is a defect. They require support for how to configure registers but do not require support for the algorithm of SW leveling because they have already ported it for AM57x from the source code of SW leveling for other devices that do not support HW leveling.

    I will suggest the following steps to the customer if it is possible.

    1) Initialize with HW leveling.

    2) To check the range of timing margin, overwrite the corresponding registers (EMIF_EXT_PHY_CONTROL_x) and repeat until it is complete.

    3) Reconfigure the corresponding registers (EMIF_EXT_PHY_CONTROL_x) with the result of HW leveling (EMIF_PHY_STATUS_x).

    I guess that the 2) and 3) steps can be achieved within "IF special (7) use-cases:" of Table 15-125 (page 3416) on TRM.

    Best regards,

    Daisuke

  • Hi James-san,

    I suggested the steps with HW leveling described above to our customer, but they decide to use SW leveling at their own risk.

    Best regards,

    Daisuke