[PATCH 1/5] powerpc: Add platform support for AmigaOne

Gerhard Pircher gerhard_pircher at gmx.net
Tue Jan 13 10:39:02 EST 2009


-------- Original-Nachricht --------
> Datum: Mon, 12 Jan 2009 16:08:07 +1100
> Von: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> An: Scott Wood <scottwood at freescale.com>
> CC: Gerhard Pircher <gerhard_pircher at gmx.net>, linuxppc-dev at ozlabs.org
> Betreff: Re: [PATCH 1/5] powerpc: Add platform support for AmigaOne

> 
> > > +	/* Flush and disable I/D cache. */
> > > +	__asm__ __volatile__ ("mfspr	3, 1008"	::: "r3");
> > > +	__asm__ __volatile__ ("ori	5, 5, 0xcc00"	::: "r5");
> > > +	__asm__ __volatile__ ("ori	4, 3, 0xc00"	::: "r4");
> > > +	__asm__ __volatile__ ("andc	5, 3, 5"	::: "r5");
> > 
> > Don't do this; instead, have one multi-line asm statement (or better
> yet,
> > just use mfspr()/mtspr()/sync()/isync()).
> > 
> > GCC is perfectly free to trash your registers in between statements.
> 
> Also there's already some code around to properly flush & disable the
> caches on those processors.
Ouch! I searched through all assembler files in arch/powerpc/kernel/ for
such a function, but I have missed flush_disable_L1 in l2cr_6xx.S.
Thanks for the hint!

Gerhard

-- 
Psssst! Schon vom neuen GMX MultiMessenger gehört? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger



More information about the Linuxppc-dev mailing list