To work around this issue, set the boot mode to JTAG boot.
If booting in JTAG mode is not possible (custom board does not have boot mode jumpers), the FSBL used for NAND programming can be modified.
Instead of reading the bootmode from the MIO:
BootModeRegister = Xil_In32(BOOT_MODE_REG); BootModeRegister &= BOOT_MODES_MASK;
The code can "fake" the boot mode hard-coding JTAG:
BootModeRegister = JTAG_MODE;
This can be modified in the FSBL main.c file, only for the FSBL used to program the NAND (NOT the FSBL that goes into the boot image).
Note: This is not a Silicon issue, but a tool limitation.