Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 7/19/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

5.3.7.8. Switch from SDR to DDR Operation Mode

If the controller requires to be put in DDR operation mode, the following setup should be performed:

  1. Wait for the controller to be in IDLE state by checking the ctrl_busy pin or the ctrl_busy bit in the ctrl_status (0x0118) register to be de-asserted indicating that the controller has accepted all the earlier issued commands and completed them.
  2. Change the mode of the NAND Flash device by sending Set Feature command with address and parameters required to switch device to the DDR mode. When timing mode of the NAND Flash device is being changed, the controller should not send any type of commands until tITC timing passed. Also, the device status polling mode must be disabled before sending Set Feature command (rb_enable bit in rdst_ctrl_0 (0x0410) register must be set to one).
  3. Write to the bus interface timing specific registers in the controller with the correct values.
  4. Wait for the ctrl_busy pin or ctrl_busy bit int the ctrl_status (0x0118) register to be de-asserted indicating that the controller has accepted all the earlier issued commands and completed them.
  5. Inform the PHY regarding the clocks changes by writing a zero to the dll_rst_n bit in the dll_phy_ctrl register. Now the clock can be changed.
  6. Change the clocks to the controller to the values that are supported by the device in DDR mode (host operation at the upper layers).
  7. Program all the PHY registers accordingly to the PHY user guide.
  8. Inform the controller and PHY that the device is in DDR mode by writing a 0x01 (for NV-DDR mode or 0x10 (for toggle mode) to the opr_mode field of the Common Settings register.
  9. De-assert the dll_rst_n bit in the dll_phy_ctrl register (write 1'b1) in the PHY.
  10. Wait for the ctrl_busy pin or the ctrl_busy bit in the ctrl_status (0x0118) register signal to be de-asserted.

Now the controller is ready to accept data commands to the device for DDR mode of operation.