Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Sep 1999 21:33:05 -0700 (MST)
From:      bobkat@azstarnet.com
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   i386/14030: aha0 probe fails 3.3.0-RELEASE install with DTC3290 EISA SCSI
Message-ID:  <199909290433.VAA00387@kot.tic.toc>

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

>Number:         14030
>Category:       i386
>Synopsis:       aha0 probe fails 3.3.0-RELEASE install with DTC3290 EISA SCSI
>Confidential:   no
>Severity:       critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Sep 28 22:10:00 PDT 1999
>Closed-Date:
>Last-Modified:
>Originator:     Bob Kot
>Release:        FreeBSD 3.3.0-RELEASE i386
>Organization:
>Environment:

	
	3.3-RELEASE floppies  (kern.flp) & (mfsroot.flp) downloaded 
	from ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/3.3-RELEASE/floppies

>Description:

	
	I have a DTC3290 SCSI EISA host adapter(Data Technology Corp)
	Its bios is Rev. 3.1.07 This bios emulates the Adaptec 154x[AB]
	I have used this controller as is with FreeBSD 1.1 and currently
	with 2.2.8-RELEASE and the aha controller has worked fine.

	I recently tried to install 3.3-RELEASE, but the aha0 probe failed
	when resetting my DTC3290. 

	I am including information on 2.2.8-RELEASE for diagnostic purposes. 	

FreeBSD 2.2.8-RELEASE - Where my DTC3290 SCSI controller is working.
/*
 *dmesg output with -v kernel switch
 */
Copyright (c) 1992-1998 FreeBSD Inc.
Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.

FreeBSD 2.2.8-RELEASE #0: Wed Mar 17 18:02:39 MST 1999
    root@kot.my.domain:/usr/src/sys/compile/KERNKOTA
/*
 * Omit non pertinent lines
 */
Probing for devices on the ISA bus:
/*
 * Omit non pertinent lines
 */
aha0: Rev 41 (AHA-154x[AB]) V1.0, enabling residuals, target ops
aha0: reading board settings, dma=5 int=11 id=7  (bus speed defaulted)
aha0 at 0x330-0x333 irq 11 drq 5 on isa
aha0 waiting for scsi devices to settle
(aha0:0:0): "MICROP 1624-07MZ1077801 HZ2P" type 0 fixed SCSI 1
sd0(aha0:0:0): Direct-Access 642MB (1316751 512 byte sectors)
sd0(aha0:0:0): with 2112 cyls, 7 heads, and an average 89 sectors/track
(aha0:1:0): "IMPRIMIS 94601-15 1250" type 0 fixed SCSI 1
sd1(aha0:1:0): Direct-Access 990MB (2027760 512 byte sectors)
sd1(aha0:1:0): with 1931 cyls, 15 heads, and an average 70 sectors/track
(aha0:2:0): "TOSHIBA CD-ROM XM-3401TA 0283" type 5 removable SCSI 2
cd0(aha0:2:0): CD-ROM can't get the size
/*
 * Omit non pertinent lines
 */
BIOS Geometries:
 0:02813f20 0..641=642 cylinders, 0..63=64 heads, 1..32=32 sectors
 1:03dd3f20 0..989=990 cylinders, 0..63=64 heads, 1..32=32 sectors
 0 accounted for
Device configuration finished.
/* END 2.2.8 dmesg */

	You will notice that I have rebuilt the kernel, but I assure
	you that the source code was as received in the 2.2.8-RELEASE.
	My kernel rebuild was to pare down all the default device support
	that is not needed in my system. My KERNKOTA is GENERIC with a 
	lot of lines commented out.

	I downloaded the 3.3-RELEASE floppies  (kern.flp) & (mfsroot.flp)
	from ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/3.3-RELEASE/floppies
	An attempt at installing resulted in the following.

	Visual kernel config with default arguments for aha0 device and
	elimination of all conflicts.
	After visual kernel config I did not let it auto reboot.
	I gave it the boot -v command to turn on verbose output
 
	dmesg output - (segment retyped by hand)  
	aha0: ahareset - Diagnostic Active failed to assert. status = 0x30
	aha0: Failed Reset
	aha0: status reg test failed ff
	aha0: status reg test failed ff
	aha0: status reg test failed ff
	aha0: status reg test failed 0
	aha0: status reg test failed 0 
	aha0: not found at 0x134

	Then I repeated the installation except in CLI mode I set aha0 port to 0x330

	dmesg output
	aha0: ahareset - Diagnostic Active failed to assert. status = 0x30
	aha0: Failed Reset
	aha0: not found at 0x330

	Needless to say, with all my hard drives being SCSI, this probe failure
	ended my attempt at installation.

>How-To-Repeat:

	
	This should be obvious from the description section above.
	However, you need the DTC3290 board to duplicate the problem!

>Fix:
        
	
	I don't have an actual fix or work around but here are some observations. 

	In the source code for 3.3-RELEASE
	$FreeBSD: src/sys/dev/aha/aha.c,v 1.19.2.6 1999/09/14 04:07:49 gibbs Exp $
	In the ahareset() function the PRVERB that causes

	aha0: ahareset - Diagnostic Active failed to assert. status = 0x30

	is the result of the preceding while loop never detecting the DIAG_ACTIVE
	(0x80) bit when it polls the STATUS_REG. The DTC3290 board is returning
	0x30

	This leads to the following.

	1. Is the board being sent the proper reset command?
	
	I find it curious that the old 
	$Id: aha1542.c,v 1.63.2.1 1997/01/10 09:08:46 phk Exp $
	in function aha_init() issued the reset command as
		outb(AHA_CTRL_STAT_PORT, AHA_HRST | AHA_SRST);
					  (0x80)     (0x40)
	The hard and soft reset bits are or'ed which sends (0xC0).
	The new aha.c sends only (0x80). Is this significant?

	2. Does the DTC3290 ever return status with the DIAG_ACTIVE(0x80) bit set?

	Perhaps DTC's emulation of Adaptec behavior is deficient, or is their
	reset accomplished and that bit is set and reset before being polled
	the first time? I don't know the answer to this.
	I also find it curious that the old code defined AHA_STST = 0x80 but
	never used that value for anything.

	I am willing to assist with this problem. If someone can assist me in
	being able to edit and compile 3.3-RELEASE sources into a kernel while
	executing on 2.2.8-RELEASE, I could try some variations and see if
	this problem is as simple as it currently seems, or if there are other
	problems lurking. This failure was very early in the probe.

>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?199909290433.VAA00387>