Zynq UltraScale+ is capable of booting from ondie-ECC NAND all the way to u-boot.
Writing the same ondie-ECC NAND in u-boot, generates an error:
The issue is that the u-boot driver does not handle the ondie-ECC NAND, just the HWECC (managed by the NAND controller in Zynq UltraScale+).
To work around this issue, you will need to modify the FSBL to disable ondie-ECC before handing-off to u-boot.
Below is a simple register write sequence that can be used in XFsbl_HookBeforeHandoff():
Note: u-boot 2017.2 and later version supports ondie-ECC NAND.