After exporting to SDK, the ps7_init.tcl contains a PS7_XPAR_PS7_DDR_0_S_AXI_HIGHADDR value which is half the actual effective size when using the PS DDR controller with ECC.
This results in portions of the PS DDR not being initialized which can cause uncorrectable ECC errors when debugging over JTAG.
To work around the issue, edit the PS7_XPAR_PS7_DDR_0_S_AXI_HIGHADDR value in the ps7_init.c file.
For example, for a 512MB effective memory, use:
This issue will be fixed starting in Vivado 2015.1.