From owner-freebsd-current Sun Nov 8 18:23:55 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id SAA24779 for freebsd-current-outgoing; Sun, 8 Nov 1998 18:23:55 -0800 (PST) (envelope-from owner-freebsd-current@FreeBSD.ORG) Received: from werple.mira.net (werple.mira.net [203.9.190.18]) by hub.freebsd.org (8.8.8/8.8.8) with SMTP id SAA24774 for ; Sun, 8 Nov 1998 18:23:53 -0800 (PST) (envelope-from gfm@mira.net) Received: (qmail 20016 invoked from network); 9 Nov 1998 02:23:37 -0000 Received: from dp-m-r095.werple.net.au (203.17.46.95) by mira.net with SMTP; 9 Nov 1998 02:23:37 -0000 From: gfm@mira.net (Graham Menhennitt) To: freebsd-current@FreeBSD.ORG Subject: 3.0-CURRENT: Adaptec 1540 not detected (with workaround) Date: Mon, 09 Nov 1998 02:25:45 GMT Message-ID: <36484fb6.262608561@mira.net> X-Mailer: Forte Agent 1.5/32.451 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by hub.freebsd.org id SAA24775 Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG I have just upgraded by 2.2-STABLE machine to 3.0-CURRENT. It couldn't boot either kernel.GENERIC or the custom kernel that I built. It said that it didn't detect my Adaptec 1540 (and then paniced with "cannot mount root"). I even specified the exact port address, IRQ and DRQ in userconfig. Still no go. It used to work fine with 2.2 and was correctly detected by the kernel on the 3.0 boot floppy. Eventually I found the problem. In /usr/src/sys/dev/aha/aha.c there is some code that attempts to distinguish between Adaptec and Buslogic adaptors. This was failing. I'm not sure what model my adaptor is (I think it's an 'A') but it is a genuine Adaptec. Hence the comment in the code about cloned cards may apply to some genuine ones also. Anyway, the following patch worked around the problem for me. Graham *** aha.c Sun Nov 8 17:19:37 1998 --- aha.c_save Fri Oct 16 09:46:33 1998 *************** *** 324,340 **** * this register, and return 0xff, while buslogic cards will return * something different. * * XXX I'm not sure how this will impact other cloned cards. */ if (aha->boardid <= 0x42) { status = aha_inb(aha, GEOMETRY_REG); if (status != 0xff) ! /*return (ENXIO)*/; } return (0); } /* * Pull the boards setup information and record it in our softc. */ --- 324,340 ---- * this register, and return 0xff, while buslogic cards will return * something different. * * XXX I'm not sure how this will impact other cloned cards. */ if (aha->boardid <= 0x42) { status = aha_inb(aha, GEOMETRY_REG); if (status != 0xff) ! return (ENXIO); } return (0); } /* * Pull the boards setup information and record it in our softc. */ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message