From owner-freebsd-hackers Wed May 28 14:09:43 1997 Return-Path: Received: (from root@localhost) by hub.freebsd.org (8.8.5/8.8.5) id OAA03109 for hackers-outgoing; Wed, 28 May 1997 14:09:43 -0700 (PDT) Received: from Sisyphos.MI.Uni-Koeln.DE (Sisyphos.MI.Uni-Koeln.DE [134.95.212.10]) by hub.freebsd.org (8.8.5/8.8.5) with SMTP id OAA03094; Wed, 28 May 1997 14:09:33 -0700 (PDT) Received: from x14.mi.uni-koeln.de (annexr2-45.slip.Uni-Koeln.DE) by Sisyphos.MI.Uni-Koeln.DE with SMTP id AA16525 (5.67b/IDA-1.5); Wed, 28 May 1997 23:09:30 +0200 Received: (from se@localhost) by x14.mi.uni-koeln.de (8.8.5/8.6.9) id XAA11010; Wed, 28 May 1997 23:09:25 +0200 (CEST) X-Face: " Date: Wed, 28 May 1997 23:09:24 +0200 From: Stefan Esser To: Jaye Mathisen Cc: scsi@FreeBSD.ORG, hackers@FreeBSD.ORG Subject: Re: Boot problems/sd1/I'm sorry, I think ahc is acting funky. References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.74 In-Reply-To: ; from Jaye Mathisen on Wed, May 28, 1997 at 12:54:26PM -0700 Sender: owner-hackers@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk On May 28, Jaye Mathisen wrote: > > I posted this a few days ago, but now it's really biting me in the butt, > and I'd like to see if it's fixable before I throw out the baby and the > bathwater. Well, yes, there might be a way if you are running -current ... > I have a box with a 3940UW and 2940AU. In the BIOS scan of the PCI bus, > it finds the 3940 first, then the 2940. Swapping cards in the PCI slots > confirms this order. This is a very bogus scan order, except if you requested it in some BIOS setup! PCI bus 0 is always scanned first (with different motherboards using either ascending or descending slot number order). Only after bus 0 is completed, the scan descends down to devices behind PCI to PCI bridges. This order is REQUIRED for all buses > bus 0 (because of the active address decode principle in PCI), but it obviously does not make much sense to have a different probe order for buses directly connected to bus 0 and buses that are themselves connected through a bridge. > *however*, when FreeBSD boots, it *always* finds the 2940 first, and > assigns it as ahc0, and the 3940 as ahc1 and ahc2. This is broke I think. No. Not at all! And there would be MANY more complaints, if I changeed the probe order in the way you suggest! > This is problematic, as when booting (since I have a JAZ drive on the > 2940), It assigns sd0 to the JAZ, *and* makes me type: > > 0:sd(1,a)/kernel > > to the boot blocks to boot each time, which is a major drag. You know about the boot.config file ? (Again assuming you got a reasonably recent kernel). > This behaviour seems specific to FreeBSD, as other OS's find them in the > same order as the BIOS scan. Hmmm, well, I could use the PCI BIOS to scan by supported PCI device ID, instead of by bus topology, but this introduces other problems which I'd prefer to avoid. > IS this easily fixable? There IS nothing to fix, actually ... Either put a reasonable boot command line into /boot.config, or locate the definion of "pci_wireddevs" in /sys/pci/pci_compat.c and add a line reading: { "ahc", 2, 0, SLOT, 0, 0 }, with the SLOT number of the 2940 filled in. (You didn't send the verbose boot message log I need to give more detailed instructions.) You can also remove the other lines (except the last), since they are only left overs from tests I performed before commiting that code ... Let me know if neither approach works for you. Regards, STefan