8xx v2.6 TLB problems and suggested workaround
dan at embeddededge.com
Fri Apr 8 23:39:47 EST 2005
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
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
> 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.
more. It should emulate what a hardware implementation would do ...
eight instructions, no branches, if done properly :-)
More information about the Linuxppc-embedded