> I have had a similar frustration with several different controllers
> (different models) from the same manufacturer that all use the same
> driver. Loading it as a module won't help either. I need to hack
> the driver code if I want a different order (and the order it picks
> is oldest technology first :-( ).
Well I knew the manufacturer before I even got further reading. :-)
The Advansys driver supports all Advansys SCSI host adapters including
those for ISA, VL, EISA, and PCI buses, so bus and adapter ordering
is a signficant issue for the driver.
Boot Ordering - MB BIOS
=======================
One thing that hasn't been mentioned is that SCSI Low-Level drivers
has no control over which device is selected for booting. This is
typically what the end user is most interested in with regard to
adapter ordering. MB BIOSes allow varying degrees of control over
boot drive ordering. Phoenix BIOSes that implement the BIOS Boot
Specification allow the most control. Award and AMI BIOSes typically
only have a "SCSI" boot option which means boot the first non-IDE
drive. If the user puts LILO on whatever disk the MB BIOS boots from
they can specify (if necessary) in lilo.conf a different root device
with the Linux kernel and then SCSI Low-Level driver ordering can take
effect to re-order almost anyway the user wants.
SCSI Low-Level Driver Adapter Sorting for a particular Bus Type
===============================================================
> $ cat /proc/scsi/sg/host_strs
> AdvanSys SCSI 3.2L: ISA PnP 16 CDB: BIOS C800, IO 120/F, IRQ 10, DMA 7
> AdvanSys SCSI 3.2L: PCI Ultra-Wide: BIOS E0000/7FFF, IO C800/3F, IRQ 11
> AdvanSys SCSI 3.2L: PCI Ultra2-Wide: IO CC00/FF, IRQ 5
> SCSI host adapter emulation for IDE ATAPI devices
>
For particular bus types there are sorting methods which make sense to use.
The Advansys driver uses: ISA, VL, EISA - sort by I/O address, PCI - sort
in ascending order by PCI bus, slot, and device number. The PCI ordering
we've found matches the order most MB BIOSes scan PCI BIOSes. Having a
consistent sort order for a particular bus type allows the user to change
adapter physical bus slots (as has been mentioned) to come up with the order
they desire. This always has met user requests for control over load ordering
for adapters of the same bus type.
SCSI Low-Level Driver Bus Type Sorting
======================================
> One idea for a boot line option:
> scsi_hosts_order=Ultra2,,Wide
> This will bring the first host found with "Ultra2" in its identifier
> string to the scsi0 position and the "first" host matching "Wide"
> (excluding the one already matched) to the scsi2 position. That
> leaves the first unmatched host (the ISA one) in the scsi1
> position. Comments ...
Because SCSI Low-Level adapter strings are arbitrary and have become
different for each driver, re-ordering by drivers that control mulitple
bus types I think should be done with a boot option supported by the
driver. For many drivers as as been mentioned this isn't an issue because
the driver only controls adapters of a single bus type. Advansys does
not support Bus Type sorting but I'll put it in. Do you have a preference
for how to specify the boot option for ISA, VL, EISA, or PCI bus ordering?
SCSI Low-Level Driver Sorting
=============================
Load ordering for SCSI Low-Level drivers can be changed by using modules,
but it would be nice to have a way to specify re-ordering of statically
built SCSI low-level drivers other than by editing driver/scsi/hosts.c
(I'm not aware of one). Note also I recall there are some restrictions
on hosts.c ordering. I believe the BusLogic driver must be loaded before
the Adaptec driver because some BusLogic ISA adapters have an Adaptec
compatibility mode. If the Adaptec driver finds them and controls them
they'll run in low performance compatibility mode instead of in BusLogic's
faster driver mode.
Sorting Hierarchy
=================
So, here's the ordering hierarchy I've described:
SCSI Low-Level Driver
Bus Type
Adapter
A limitation (acceptable I think) of this hierarchy order is that
all adapters of a particular driver will come before or after those
of another driver just as all bus adapters controlled by a particular
driver come before or after those of another bus type. If this ordering
capability is desired then we do need to go to a SCSI Mid-Level sorting
method along the lines of what Doug describes, but I don't see or have
heard a need for it.
Bob Frey
[EMAIL PROTECTED]
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]