Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 May 1997 23:09:24 +0200
From:      Stefan Esser <se@FreeBSD.ORG>
To:        Jaye Mathisen <mrcpu@cdsnet.net>
Cc:        scsi@FreeBSD.ORG, hackers@FreeBSD.ORG
Subject:   Re: Boot problems/sd1/I'm sorry, I think ahc is acting funky.
Message-ID:  <19970528230924.06594@x14.mi.uni-koeln.de>
In-Reply-To: <Pine.NEB.3.95.970528124803.15391J-100000@mail.cdsnet.net>; from Jaye Mathisen on Wed, May 28, 1997 at 12:54:26PM -0700
References:  <Pine.NEB.3.95.970528124803.15391J-100000@mail.cdsnet.net>

next in thread | previous in thread | raw e-mail | index | archive | help
On May 28, Jaye Mathisen <mrcpu@cdsnet.net> 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



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