MPC860 tlb exception handling

Joel Sherrill joel.sherrill at OARcorp.com
Wed Feb 16 19:09:00 UTC 2000


This code was probably derived from the original PPC403 Papyrus BSP
where there should not have been any TLB faults.

What does a newer BSP like the mcp750/mvme2307/motorola_shared do?

Gunter Magin wrote:
> 
> 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

-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel at OARcorp.com                 On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
   Support Available             (256) 722-9985



More information about the users mailing list