3.3.5.14.4 Power Removal Flow

Table 3-24. Power Removal
StepDescriptionComment
1Write 0 to PCTRL_n.port_enBlocks AXI ports from taking any more transactions
2Poll PSTAT.rd_port_busy_n = 0

Poll PSTAT.wr_port_busy_n = 0

Waits unit all AXI ports are idle
3Write 1 to PWRCTL.selfref_swCauses system to move to Self-refresh state
4Poll STAT.selfref_type= 2’b10Waits until Self-refresh state is entered
5Place IOs in Retention modeRefer to the section “DDR/LPDDR Physical Interface (DDR3PHY)”
6Remove power
Table 3-25. Re-enabling the Power
StepDescriptionComment
1Enable Power
2Reset controller/PHY by driving core_ddrc_rstn = 1’b0, aresetn_n = 1’b0, presetn = ’b0
3Remove APB reset, presetn =1’b1, and rereprogram the registers to pre-power removal values
4Program INIT0.skip_dram_init = 2’b11Skips the DRAM init routine and starts up in Self-refresh mode
5Programs PWRCTL.selfref_sw = 1’b1Keeps the controller in Self-refresh mode
6Program DFIMISC.dfi_init_complete_en to

1’b0

PHY initialization needs to be rerun, so set to 0 until initialization complete
7Remove the core reset core_ddrc_rstn = 1’b1 aresetn_n = 1’b1
8Run PHY initialization/training as required, including removing the IOs from Retention modeRefer to the section “DDR3PHY”
9Program DFIMISC.dfi_init_complete_en to

1’b1

Indicates to controller that PHY has completed re-training/initialization
10Program PWRCTL.selfref_sw = 1’b0Triggers Self-refresh exit
11Poll STAT.selfref_type = 2’b00Wait until Self-refresh state is exited
12Poll STAT.operating_mode for Normal mode entry
13Write PCTRL.port_en = 1AXI ports are no longer blocked from taking transactions