On Thu, Jan 05, 2012 at 06:15:48PM -0500, Mike Frysinger wrote: > On Thursday 22 December 2011 06:39:32 Stefan Kristiansson wrote: > > On Thu, Dec 22, 2011 at 10:09:30AM +0100, Michal Simek wrote: > > > Stefan Kristiansson wrote: > > > >+ > > > >+void dcache_enable(void) > > > >+{ > > > >+ mtspr(SPR_SR, mfspr(SPR_SR) | SPR_SR_DCE); > > > >+ asm volatile("l.nop"); > > > >+ asm volatile("l.nop"); > > > >+ asm volatile("l.nop"); > > > >+ asm volatile("l.nop"); > > > >+ asm volatile("l.nop"); > > > >+ asm volatile("l.nop"); > > > >+ asm volatile("l.nop"); > > > >+ asm volatile("l.nop"); > > > > > > This is interesting. Are there 8 nops? > > > Is there any reason for that? Is it just any waiting? > > > If yes, maybe it will be worth to add any comment. > > > > Yes, the number of nops are kind of arbitrary, > > they are there to add some headroom for the cache > > to startup without any load/stores in flight. > > > > But you are right, a comment about this might be in place. > > this is usually why the ISA provides some sort of sync or latch mechanism. > that way code is deterministic instead of being unsettling arbitrary (like it > is here).
The OpenRISC ISA does provide synch mechanisms, but they are unfortunately optional and not supported by the (currently) only open implementation (or1200). Stefan _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot