Initializing MSS LPDDR4

Automatic initialization of the LPDDR4 memory (for hardened MSS DDR controller only) involves the following steps:
  1. 1.Training logic performs HS_IO_CLK-to-SYS_CLK training.
  2. 2.DDR controller waits for the PHY to be ready. At this point, it is assumed that the PHY outputs stable clocks and signal levels.
  3. 3.Controller asserts RESET_N, and CKE is held LOW.
  4. 4.Controller deasserts RESET_N after 200 μs, and then deasserts CKE after an additional 2 ms.
  5. 5.Controller waits for tXPR.
  6. 6.MRS command is sent to the following mode registers (in order): MR13, MR1, MR2, MR3, MR4, MR11, MR16, MR17, MR22, and MR13.
  7. 7.Controller waits for 512 clock cycles. During this wait time, the ZQCL (long) command is sent to each rank independently to calibrate the internal resistance termination (RTT) and output driver impedance (RON) values.
  8. 8.Training logic performs CMD/ADDR to REF_CLK training.
  9. 9.Training logic performs write leveling.
  10. 10.Training logic performs Read Gate (Read DQS gate) training.
  11. 11.Training logic aligns read data (DQ) bits.
  12. 12.Training logic aligns read data strobe (DQS) to DQ.
  13. 13.Write calibration is performed.
  14. 14.Sanity check is performed.
  15. 15.Normal operation begins.