User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 324
UG585 (v1.11) September 27, 2016
Chapter 10: DDR Memory Controller
5. Program the reg_ddrc_soft_rstb to 1 (takes the controller out of reset)
Monitoring ECC Status
1. CHE_CORR_ECC_ADDR_REG_OFFSET gives the bank/row/column information of the ECC error
correction
2. CHE_UNCORR_ECC_ADDR_REG_OFFSET gives the bank/row/column information of the ECC
unrecoverable error
3. B[0] of CHE_CORR_ECC_LOG_REG_OFFSET indicates correctable ECC status
4. B[0] of CHE_UNCORR_ECC_LOG_REG_OFFSET indicates uncorrectable ECC status
5. CHE_ECC_STATS_REG_OFFSET
°
B[7:0] -> gives the number of uncorrectable errors
°
B[15:8] -> gives the number of correctable errors
10.9 Programming Model
10.9.1 Operating Modes
The operating mode register bits, mode_sts_reg.ddrc_reg_operating_mode, can be polled to
determine the current mode of operation of the controller. The different modes are:
000 – uninitialized. The controller might be in soft reset, or it might be out of soft reset, but
DRAM initialization sequence has not yet completed.
001 – normal operating mode. The controller is ready to accept read and write requests and the
controller can issue reads and writes to DRAM.
010 – DRAM is in power down mode.
011 – DRAM is in self refresh mode.
100 : 111 – For LPDDR2 designs only, indicates DRAM is in deep power down.
10.9.2 Changing Clock Frequencies
The process of changing clock frequencies is as follows:
1. Request the controller to place the DRAM into self refresh mode, by asserting
ctrl_reg1.reg_ddrc_selfref_en.
2. Wait until mode_sts_reg.ddrc_reg_operating_mode[1:0]== 11 indicating that the controller is in
self refresh mode. In the case of LPDDR2 check that ddrc_reg_operating_mode[2:0]== 011.
3. Change the clock frequency to the controller (see 10.6.1 DDR Clock Initialization).
4. Update any registers which might be required to change for the new frequency. This includes
static and dynamic registers. If the updated registers involve any of reg_ddrc_mr, reg_ddrc_emr,
reg_ddrc_emr2 or reg_ddrc_emr3, then go to step 5. Otherwise go to step 6.