From owner-freebsd-bugs Tue Sep 28 22:10: 6 1999 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id D145C15422 for ; Tue, 28 Sep 1999 22:10:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id WAA63872; Tue, 28 Sep 1999 22:10:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from cepheus.azstarnet.com (cepheus.azstarnet.com [169.197.56.195]) by hub.freebsd.org (Postfix) with ESMTP id 8DD6014E54 for ; Tue, 28 Sep 1999 22:04:24 -0700 (PDT) (envelope-from bkat@azstarnet.com) Received: from kot.tic.toc (dialup001ip252.tus.azstarnet.com [169.197.12.252]) by cepheus.azstarnet.com (8.9.3+blt.Beta0/8.9.3) with ESMTP id WAA19425 for ; Tue, 28 Sep 1999 22:04:19 -0700 (MST) Received: (from bkat@localhost) by kot.tic.toc (8.8.8/8.8.8) id VAA00387; Tue, 28 Sep 1999 21:33:05 -0700 (MST) (envelope-from bkat) Message-Id: <199909290433.VAA00387@kot.tic.toc> Date: Tue, 28 Sep 1999 21:33:05 -0700 (MST) From: bobkat@azstarnet.com Reply-To: bobkat@azstarnet.com To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.2 Subject: i386/14030: aha0 probe fails 3.3.0-RELEASE install with DTC3290 EISA SCSI Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >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