I have built several versions of init code that perform operations on async memory (writing/reading flash on bank 0, writing/reading an FPGA on bank 3). When I run the init code from the debugger, all async memory access seems to work. But when I run the init code during the normal boot, all async memory access fails and execution halts (probably due to a hardware fault or exception)
I can add/remove a single write operation to the init code to write to async memory. When I remove the line of code which performs the async write, the init code runs. When I add the line of code which performs the async memory write, the init code crashes.
I have disabled the Custom Board Support File and disabled "Use XML reset values" for the emulator/debugger. What could the emulator be doing that causes it to work? What will affect async memory other than the 3 AMC registers EBIU_AMBCTL0/EBIU_AMBCTL1/EBIU_AMGCTL ?