Subject: Re: More on se0
To: Leo Weppelman <leo@wau.mis.ah.nl>
From: Julian Coleman <J.D.Coleman@newcastle.ac.uk>
List: port-atari
Date: 08/10/1998 22:31:01
Leo Weppelman wrote:
> The million dollar question is: why doesn't the wakeup happen? The only
> thing I can think of to debug this is adding printf's to scsipi_execute_xs()
> and scsipi_done() (for the se-target that is ;-) - xs->sc_link->
>  scsipi_scsi.target).

Well, I have a (more) working system.  The se code calls the SCSI code
with SCSI_NOSLEEP.  In scsipi_done(), the wakeup() call is conditional on :

	if (!((xs->flags & (SCSI_NOSLEEP | SCSI_POLL)) == SCSI_NOSLEEP)) {

so the wakeup doesn't get called.  I removed the SCSI_NOSLEEP flag from
se_ifstart() and se_recv() and ifconfig now returns.  I must be still
missing something, because how does this work on other parts - if_se.c
and scsipi_base.c are MI?

Unfortunately, this doesn't make the interface work.  If I try and ping
the other machine, no packets appear on the wire.  se_ifstart() doesn't get
called either.  Closer but not close enough.

> The atari-driver was there before the mi driver. Stepping over on the mi
> version has not reached the top of my todo-list yet. The same is true for
> the zs-driver... 

Aha!  I've just read the notes in ncr5380.doc.  I was wondering if there
was something different in the MI code that didn't display the problem
with the se code.

Yes, I'd noticed the profusion of zs drivers in the source tree (it was
mentioned in -current a while back too).

Thanks,

J

-- 
    1024/55A5BC19        0F 3F 62 56 18 10 8B 84  43 8F F4 94 93 37 76 AA

S.E.P.