[EMAIL PROTECTED] wrote:
>
> I've been pounding my head against this for quite a while, and I've drawn a blank.
>I've
> read every relevant HOWTO I can think of as well as the driver sources. Clearly, I'm
> missing something.
>
> I've got a Compaq DeskPro XL 5133 (P200MMX, EISA/PCI thingy). It's got a built-in
> AM53C974 SCSI chip (actually, the SCSI/ENet combined chip). This controls 2 disks
>and
> the CD-ROM. One of the disks is esp. important because it has the EISA config utils
>on
> it, and it needs to be drive 80h (C:, or whatever). Runs Linux like a champ.
>
> Now...I add an Adaptec AHA-2744W (EISA-based wide diff SCSI, recognized by the
>aic7xxx
> driver). I want this card to be the second controller. The drive connected to this
> controller is correctly recognized by the Compaq BIOS as disk 82h.
>
> Load linux.
>
> I cannot for the *life* of me figure out how to coerce the damn Adaptec card to be
> SCSI1, not SCSI0. No matter what I do, the aic7xxx driver gets loaded before the AMD
> driver, rendering the machine unbootable (because what should be /dev/sda is now
> /dev/sdb). I've tried every BIOS & EISA setting under the sun. The AMD is set in
>the
> EISA config to be the first controller. I've put driver directives on the boot
>string
> trying to get the kernel to recognize the AMD chip first without luck. I've moved
>the
> SCSI controllers to every IRQ/mem combo possible. I've edited the builtin_scsi_hosts
> array hosts.c to move the Adaptec detection directive after the AMD and get a kernel
> detects them in the order I want and then promptly that panics (streaming too much
> rubbish out for me to transcribe the relevant messages). Even the rescue disk has
>let
> me down.
>
> I assume that this has something to do with the fact that the Compaq XL BIOS32 is in
>a
> funky location and the kernel isn't getting the clue about which controller should be
> first.
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 :-( ).
A kernel boot option to re-order the host list just after detection
shouldn't be too hard. But how to specify the option? On my
machine the scsi host strings look like this:
$ 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
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 ...
Doug Gilbert
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]