17.5.14.3 Software Sequence for Removal of Clocks

Software can be used to keep the SDRAM in self-refresh. The AXI and DDRC clocks can be removed when in self-refresh by following the sequence described in the following table.

Note: Dynamic and quasi dynamic registers cannot be programmed if any of the clocks has been removed. Clocks must be turned back on before starting the programming sequence. Also, the clock gating logic must ensure there are no glitches on the clocks when they are removed/enabled.
Table 17-4. Software Clock Removal Sequence
Step Description Comment
1 Write 0 to PCTRL_n.port_en Blocks AXI ports from taking any more transactions
2 Poll PSTAT.rd_port_busy_n = 0

Poll PSTAT.wr_port_busy_n = 0

Waits until all AXI ports are idle
3 Write 1 to PWRCTL.selfref_sw Causes the system to move to Self-refresh state
4 Poll STAT.selfref_type= 2’b10 Waits until Self-refresh state is entered
5 Remove AXI clocks
6 Remove DDRC core clock

The clocks should be re-enabled by following the sequence described in the following table.

Table 17-5. Re-enabling the Clocks
Step Description Comment
1 Enable AXI clocks
2 Enable DDRC core clock
3 Write 0 to PWRCTL.selfref_sw Causes the system to exit from Self-refresh state
4 Poll STAT.selfref_type = 2’b00 Waits until Self-refresh state is exited
5 Write 1 to PCTRL_n.port_en AXI ports are no longer blocked from taking transactions