MPC860 tlb exception handling
Gunter Magin
magin at skil.camelot.de
Wed Feb 16 14:43:36 UTC 2000
Hi,
can somebody please explain what's behind the code snippet in RTEMS-4.0's:
c/src/lib/libcpu/powerpc/mpc860/vectors/vectors.S:
.org itlbm_vector - file_base
itlbm_vectors:
mfspr r2, 784 /* MI_CTR */
mfspr r3, 792 /* MD_CTR */
.....
mfspr r19, 825 /* M_RAM0 */
mfspr r20, 826 /* M_RAM1 */
.long 0
.org dtlbm_vector - file_base
dtlbm_vectors:
mfspr r1, 0x1a
itlbm is supposed to be an exception handler for instruction TLB miss
exceptions. Same applies for dtlbm, itlbe, dtlbe exceptions.
After heavy storing the MMU-spr's into gpr's, this pseudo-opcode
".long 0" looks strange. It is not a valid PPC opcode, so yet another
exception will be raised. However the TLB exceptions are not yet handled
enough for a next exception to be recoverable.
I don't know, if TLB exceptions are raised at all under RTEMS, probably not.
So I wonder why there is this spr fiddling at all...
gm
More information about the users
mailing list