[U-Boot] [PATCH v2 3/9] openrisc: Add cpu files

Stefan Kristiansson
2012-01-06T13:22:54Z

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