Starting in Vivado 2016.4, the upper 2GB DDR initialization is added when ECC is enabled.
However FSBL hangs due to this function. How do I prevent the hang from occurring?
This occurs because of an issue in Windows where all the 64-bit addresses are truncated to 32-bit (PCIe, DDR) in xparameters.h, leading the FSBL to hang during the upper DDR ECC initialization.
Linux hosts are not affected.
The work-around is to manually modify the xparameters.h as follow:
This issue is fixed in Vivado 2017.1 and later versions.