Subject: Re: netbooting from a floppy disk bootblock.
To: None <M.Drochner@fz-juelich.de>
From: Dean Huxley <dean@huxley.org>
List: port-i386
Date: 04/28/1999 08:58:28
Matthias Drochner <drochner@zel459.zel.kfa-juelich.de> wrote:
> 
> simonb@netbsd.org said:
> > it's locking up between
> > the
> > 	delay(1000);
> > and the
> > 	ex_waitcmd();
> 
> Hmm - there was some trouble in the real kernel driver
> with the 3com cards too - perhaps something timing related
> which shows up in certain (fast?) environments.
> Perhaps you can extrapolate from the changes in the kernel
> driver and play around a bit? (The whole standalone driver
> is based on extrapolation and educated guesses since I don't
> have documentation for the card.)

I'm having the problems with the 3c905b and a 500Mhz Pentium III.  My
problem would actually be solved if the there was a delay(1000) before
the ex_waitcmd() in the kernel driver!  (in ex_reset)  However, since
this part of the source is different, I have to wonder how many other
differences there are.  I agree with Mathius, that you should look at
the changes to the kernel driver.

If it's locking up in ex_waitcmd(), perhaps you could printf the
status word just before.  (see the ex_waitcmd macro) The status is
supposed to be 0x1000 while the reset is happening, then it should
clear to 0 when done.  If you see other numbers, then it could be
something wrong with the hardware, or the bus_space_reads/writes are
going to the wrong spot, etc.  Hmm, actually, the delay(1000) is long
enough that the reset should be done already, so the status word
should be 0.

Cheers,
Dean.