Subject: Re: 8xx v2.6 TLB problems and suggested workaround

From: Dan Malek <[email-masked]>
Date: Fri, 8 Apr 2005 09:39:47 -0400

On Apr 8, 2005, at 4:01 AM, Joakim Tjernlund wrote:

> I was looking at the DTLB Error excetion(p. 7-15) in the MPC860 User's 
> Manual. There

Yeah, well what the manual says and what really happens seems to be
two different things.

> .... There is also a 8xx specific test with bit 3(0x1000000) in 
> fault.c but
> bit 3 is always zero according the MPC860 Manual for a DTLB Error.

Read the comment.  It really happens.  I spent lots and lots of time 
sorting
out how the 8xx works, setting up precise test cases and examining the
results.  Stop reading the manual too closely and create test cases to
see what exactly happens.

> Then we end up with bit 1(invalid TLB) and bit 6(store operation) set. 
> Maybe one
> could make the DTLB Error handler test if bit 1 is set and then branch 
> to
> DataAccess and then deal with the problem in fault.c?

No.  That is adding even more code to the "normal" path.  The TLB miss
should simply take a value from memory and load it into the TLB.  
Nothing
more.  It should emulate what a hardware implementation would do ...
eight instructions, no branches, if done properly :-)

Thanks.

	-- Dan