I have a EDk based design with 8 MB of external flash memory on PLB via the plb_emc core. This is for a Virtex II Pro using EDK/ISE 7.1i, latest service packs. Running a PPC program in either BRAM or SDRAM, I can burn and verify test patterns in the entire flash memory.
I have another program that runs fine downloaded into external SDRAM. I am now trying to execute it in flash. I seems I get an illegal instruction exception on the very first instruction. I put in a single assembly instruction that lights an LED through a GPIO register and use XMD to start at that instruction. Works in SDRAM, not in flash. I have rechecked the timing parameters to the emc core and incresed the margins. For instance, my flash specs a read cycle of 90 ns, I'm giving it 120.
I figure my next step is to learn enough of ChipScope to look at the bus cycles.
However I'm hoping someone here has other suggestions or experience executing out of flash.