Subject: RE: kernel
To: Guy Santiglia <fredfl2@soback.kornet.net>
From: Frederick Bruckman <fb@enteract.com>
List: port-mac68k
Date: 05/30/1999 08:41:50
On Mon, 31 May 1999, Guy Santiglia wrote:

> Well, many kernels later, I found that if I uncommented the line
> 
> #options        DEBUG           # expensive debugging checks/support
> 
> I can compile a kernel that will run.  Don't uncomment that line,
> it will hang on boot at; "adbo at obio0"
> 
> I tried taking that line out and replacing it with 
> 
> options 	ADD_DEBUG
> 
> and that didn't help any, I still had the system hang on boot.  For me it seemed
> like the "options   DEBUG" needs to be in there if it's going to work.

It's not the DEBUG, per se. Making random, unrelated changes to the
config is likely to have the same effect (50%-50%). I'd also noticed
that some kernels that hang on my Quadra 630 will still boot half of
the time on the 840AV, but some hang on both.

The most interesting thing I've found, by far, is that changing the
delay after reset in adb_reinit does something. In my mind, this rules
out wierdness in the compiler (the problem appeared coincident with
egcs), and kernel size problems, at least.

Please try this: Back up /usr/src/sys/arch/mac68k/dev/adb_direct.c.
Find the line that says `delay(3000);'--it's line 2037 in my file. Try
some different numbers here. I've gotten results by changing it to
2000, or 4000. Once you have built a kernel configured to hang, you
would only have to change the file, cd to your compile directory, and
"make". It pulls in the one change, and fairly quickly makes a new
kernel with only a few bytes different than the old one. What I've
done in the past is copy a bunch of them to root (with different
names), and tried them one after the other.

It would be really interesting to find a narrow range where it fails
consistently. I haven't found time to do this yet myself. In addition,
independent confirmation would be nice. For your effort, you might
even get a working kernel without all the DEBUG baggage.