
Hi,
I was trying to turn on I-Cache while u-boot is executing out of Flash on MPC5121 ADS board, and just found the board refused to boot. After debug and tried many different ways, we finally found that the root of the problem is the SYNC macro definition in u-boot include/ppc_asm.tmpl file. The SYNC was defined as
#define SYNC \ sync; \ isync
By turning on I-cache on powerpc e300 core, ICE bit of HID0 needs to be set. Before setting ICE, an isync operation need to be issued. In the cpu/mpc512x/start.S file, this is done by using a 'SYNC' statement. But we found we need to add one more sync operation to guarantee isync is complete.
I think it is more safe to change the SYNC definition in ppc_asm.tmpl to the following,
#define SYNC \ sync; \ isync; \ sync
Just a suggestion.
Best Regards, Ronda