Subject: Re: ideas on tmscp (or general qbus) crashes?
To: NetBSD Bob <nbsdbob@weedcon1.cropsci.ncsu.edu>
From: Lord Isildur <mrfusion@umbar.vaxpower.org>
List: port-vax
Date: 06/25/2001 11:04:39
in 4.3bsd's tmscp.c that is what happens: it frobs the register, then 
goes into a loop whereby it checks every couple seconds reading the 
register, 
looking for a bit to be set high indicating that the tmscp initialization 
process has progressed. the problem i am having is that the original setting
in the register causes an interrupt ot be generated which for some reason
is not being properly handled, such that the PSL and such are not being 
restored, and the interrupt PSL is still in effect when i am in the delay 
loop. there is a routine DELAY (its actually a macro) which needs to use 
the stack because it multiplies a constant by a speed multiplier defined
for each processor in cpudata to get a more or less constant delay time from
the DELAY, and when something gets put on the stack, it goes to the interrupt
stack instead of the normal stack (the kernel stack, at that point), and
the machine bombs with an access violation on the ISP. 
putting in some halts seems to clear the condition and restore the normal PSL
and it runs ok. (it does later on , i think in if_qe.c, but i havent bothered
looking at that yet, it might be the same problem as i have here.) 

Isildur

On Mon, 25 Jun 2001, NetBSD Bob wrote:

> > another note: 
> > 
> > what's even stranger is if i put a halt right before and after the
> > offending access, and just hit 'c' on the chevron the couple time, it works 
> > (more or less) fine, and doesnt crash at all. anybody have an idea what is
> > causing this? 
> 
> Would that be a timing issue on the much faster 600 machine (relative to
> an MVII thingy)?  What happens if you throw in a few count loops just
> where this happens, to give things time to settle?
> 
> Bob
> 
>