I've got a BF548 system, that can boot two different images from NAND flash.
It finds out which image to boot by accessing some external EEPROM
cell from the initcode function. The contents of this cell allow for 2 cases.
In one case the initcode function just terminates and the application
continues to boot automatically, which works fine.
In the other case, where the problem occurs, the initcode function calls
bfrom_NandBoot(dwStartApp2, 0, 0, NULL).
The problem is, that I have to calculate dwStartApp2 by accessing
some bytes in the spare area of some NAND flash pages before calling
the bfrom_NandBoot function. If I do these intermediate NAND flash accesses,
the boot kernel seems to be unable to use the NAND flash controller (NFC)
afterwards, as it generates no more read cycles.
If I use a constant (for debugging purposes) for dwStartApp2 and thus
avoid to access the NAND flash, the booting of the second application
also works fine.
The question now is, if I can put the NFC back into a state, the boot
kernel can live with.
Thanks a lot for any help!