Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 May 1999 13:43:57 -0400 (EDT)
From:      Thomas David Rivers <rivers@dignus.com>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   kern/11469: Adaptec 1542B version 3.10 not recognized.
Message-ID:  <199905031743.NAA45948@lakes.dignus.com>

next in thread | raw e-mail | index | archive | help

>Number:         11469
>Category:       kern
>Synopsis:       Adaptec 1542B version 3.10 not recognized.
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon May  3 10:50:01 PDT 1999
>Closed-Date:
>Last-Modified:
>Originator:     Thomas David Rivers
>Release:        FreeBSD 3.1-RELEASE i386
>Organization:
Dignus, LLC
>Environment:

	Adaptect 1542B - Version 3.10 (from 1988)

>Description:

	The probe in version 3.1 for adaptec drivers checks the
	GEOMETRY_REG.  If the value is 0xff or 0x00, the probe
	succeeds.  Unfortunately, for version 3.10 of the 1542B,
	the value returned is 0x7f.  This could also be because
	there are no disk drives on the SCSI bus, only tape drives.

>How-To-Repeat:

	Get a version 3.10 Adaptec 1542B, put nothing on the SCSI
	bus and watch the probe fail.

>Fix:

	The following context diff to /sys/dev/aha.c corrects the problem
	for me.  It also adds a little to the debugging information
	when you boot with the -v option.	

*** aha.c.ori	Wed Jan 20 01:21:26 1999
--- aha.c	Mon May  3 12:56:10 1999
***************
*** 352,357 ****
--- 352,358 ----
  	aha->fw_major = board_id.firmware_rev_major;
  	aha->fw_minor = board_id.firmware_rev_minor;
  	aha->boardid = board_id.board_type;
+ 	PRVERB(("%s: Firmware # %d %d - Board Type 0x%02x\n", aha_name(aha), aha->fw_major, aha->fw_minor, aha->boardid));
  
  	/*
  	 * The Buslogic cards have an id of either 0x41 or 0x42.  So
***************
*** 378,386 ****
  		/* Wait 10ms before reading */
  		DELAY(10000);
  		status = aha_inb(aha, GEOMETRY_REG);
! 		if (status != 0xff && status != 0x00) {
! 			PRVERB(("%s: Geometry Register test failed\n",
! 				aha_name(aha)));
  			return (ENXIO);
  		}
  	}
--- 379,387 ----
  		/* Wait 10ms before reading */
  		DELAY(10000);
  		status = aha_inb(aha, GEOMETRY_REG);
! 		if (status != 0xff && status != 0x00 && status != 0x7f) {
! 			PRVERB(("%s: Geometry Register test failed, status = 0x%02x \n",
! 				aha_name(aha), status));
  			return (ENXIO);
  		}
  	}


>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199905031743.NAA45948>