Subject: Re: SCSI/disklabel questions
To: Michael Wolfson <mw34@cornell.edu>
From: Jason Thorpe <thorpej@nas.nasa.gov>
List: port-hp300
Date: 07/01/1998 15:28:43
On Mon, 29 Jun 1998 16:36:23 -0400 (EDT) 
 Michael Wolfson <mbw@xarph.ee.cornell.edu> wrote:

 > Hey, allright!  Thanks, that was indeed the case.
 > 
 > Before commenting out dca*:
 > dca1 at dio0 scode 7 ipl 3: no fifo

This was wrong, and it was a bug in the dio autoconfig code.  I have fixed
it (a patch that should go into 1.3.x is appended below), and will commit
it shortly...

 > After commenting out dca*:
 > nhpib0 at dio0 scode 7 ipl 3: internal HP-IB
 > hpibbus0 at nhpib0
 > rd0 at hpibbus0 slave 2 punit 0hpibbus0: swait timeout
 > hpibbus0: swait timeout
 > hpibbus0: swait timeout
 > : 7959B
 > 
 > Just like Scott said, some timeouts, but nothing critical.  Actually, I
 > seem to recall the timeouts starting with NetBSD 1.2 on my 370 (no scsi).
 > And I also seem to remember having problems (starting with 1.2) getting my
 > 370 to recognize 7959B drives if 7937H drives were attached.  But it's not
 > an issue anymore, since I have meanwhile upgraded to a 425s with three
 > 2213A drives (quite a bit smaller and quieter than four 7937H drives).

 Eventually, I'd like to find out why the swait timeouts happen, but
 they seem to only be during the probe... "hmm..."
 
 > Now all we need to do is track down why, on 400 series, it thinks scode 7
 > ipl 3 is a dca and precludes its use as nhpib.

Like I said, it's fixed... (at least this patch should do it... the problem
doesn't happen on my hardware, but given the patch, you could understand
why that might be the case :-)

Jason R. Thorpe                                       thorpej@nas.nasa.gov
NASA Ames Research Center                            Home: +1 408 866 1912
NAS: M/S 258-5                                       Work: +1 650 604 0935
Moffett Field, CA 94035                             Pager: +1 650 428 6939

Index: dio.c
===================================================================
RCS file: /cvsroot/src/sys/arch/hp300/dev/dio.c,v
retrieving revision 1.12
diff -c -r1.12 dio.c
*** dio.c	1998/01/12 18:30:49	1.12
--- dio.c	1998/07/01 22:36:07
***************
*** 144,150 ****
  		bzero(&da, sizeof(da));
  		da.da_bst = HP300_BUS_SPACE_DIO;
  		da.da_scode = scode;
! 		da.da_id = DIO_ID(va);
  
  		if (DIO_ISFRAMEBUFFER(da.da_id))
  			da.da_secid = DIO_SECID(va);
--- 144,157 ----
  		bzero(&da, sizeof(da));
  		da.da_bst = HP300_BUS_SPACE_DIO;
  		da.da_scode = scode;
! 		/*
! 		 * Internal HP-IB doesn't always return a device ID,
! 		 * so we rely on the sysflags.
! 		 */
! 		if ((scode == 7) && internalhpib)
! 			da.da_id = DIO_DEVICE_ID_IHPIB;
! 		else
! 			da.da_id = DIO_ID(va);
  
  		if (DIO_ISFRAMEBUFFER(da.da_id))
  			da.da_secid = DIO_SECID(va);
Index: nhpib.c
===================================================================
RCS file: /cvsroot/src/sys/arch/hp300/dev/nhpib.c,v
retrieving revision 1.19
diff -c -r1.19 nhpib.c
*** nhpib.c	1998/01/12 18:31:04	1.19
--- nhpib.c	1998/07/01 22:36:16
***************
*** 164,177 ****
  {
  	struct dio_attach_args *da = aux;
  
! 	/*
! 	 * Internal HP-IB doesn't always return a device ID,
! 	 * so we rely on the sysflags.
! 	 */
! 	if (da->da_scode == 7 && internalhpib)
! 		return (1);
! 
! 	if (da->da_id == DIO_DEVICE_ID_NHPIB)
  		return (1);
  
  	return (0);
--- 164,171 ----
  {
  	struct dio_attach_args *da = aux;
  
! 	if (da->da_id == DIO_DEVICE_ID_NHPIB ||
! 	    da->da_id == DIO_DEVICE_ID_IHPIB)
  		return (1);
  
  	return (0);