On Monday 16 March 2009 19:05:00 Kumar Gala wrote: > On Mar 16, 2009, at 10:52 AM, David Jander wrote: > > Complete workaround for DTLB errata in e300c2/c3/c4 processors. > > > > Due to the bug, the hardware-implemented LRU algorythm always goes > > to way > > 1 of the TLB. This fix implements the proposed software workaround in > > form of a LRW table for chosing the TLB-way. > > > > Signed-off-by: Kumar Gala <ga...@kernel.crashing.org> > > Signed-off-by: David Jander <da...@protonic.nl> > > > > --- > > diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/ > > head_32.S > > index 0f4fac5..3971ee4 100644 > > --- a/arch/powerpc/kernel/head_32.S > > +++ b/arch/powerpc/kernel/head_32.S > > @@ -578,9 +578,21 @@ DataLoadTLBMiss: > > andc r1,r3,r1 /* PP = user? (rw&dirty? 2: 3): 0 */ > > mtspr SPRN_RPA,r1 > > mfspr r3,SPRN_DMISS > > + mfspr r2,SPRN_SRR1 /* Need to restore CR0 */ > > + mtcrf 0x80,r2 > > +#ifdef CONFIG_PPC_MPC512x > > + li r0,1 > > + mfspr r1,SPRN_SPRG6 > > + rlwinm r2,r3,17,27,31 /* Get Address bits 19:15 */ > > Don't we want: > rlwinm r2,r3,20,27,31 /* Get address bits 15:19 */
Hmm, you are right, I must have accidentally counted LE bit-ordering ;-) Only funny part is, that I don't measure any performance difference after fixing this.... *sigh*. Regards, -- David Jander Protonic Holland. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev