[Top] [All Lists]

Re: odd problems

Subject: Re: odd problems
From: Ralf Baechle <ralf@Julia.DE>
Date: Thu, 15 May 1997 18:11:46 +0200 (MET DST)
In-reply-to: <> from "David Monro" at May 16, 97 01:58:13 am
> Which works fine. However, the following almost identical code causes the
> machine to lock up (not generate an exception, just go silent).
>                 la      t0,except_vec3  # begining of general exception
>                 la      t1,end_except   # end of general exception code
>                 la      t2,0x80000080   # where the code should live
> 1:              sw      t3,(t2)         # put it where it should go

During the first loop iteration t3 in uninitialized ...

>                 addiu   t0,4            # increment both pointers
>                 addiu   t2,4
>                 lw      t3,(t0)         # will be in the delay slot
>                 bne     t0,t1,1b
> The lock up occurs as soon as the sw t3,(t2) is executed (well at least if I
> put a 'j kernel_entry' just before the sw I get an exception in later code, 
> but
> if I put it after it I never get anything more out of it). Given that I am
> about 8km away from the machine, the only way I have of unwedging it is to
> powercycle it remotely, which I don't like doing very often. Wish I could get
> it to reset from the serial line.

With a messed up exception handler you will never catch exceptions ...
I assume you have disabled interrupts and ensured that the BEV flag in
c0_status is cleared?

Maybe somebody from the hardware fraction can give you some hints about how
to reset the machine from remote?  (One of the nice features of the RM200 -
you can power it up/down and reset from the serial interface.)


<Prev in Thread] Current Thread [Next in Thread>