kern/71532: Multiple SCSI-Busses are seen differently by BIOS,
loader, and kernel
tps at vr-web.de
Thu Sep 9 09:20:10 PDT 2004
>Synopsis: Multiple SCSI-Busses are seen differently by BIOS, loader, and kernel
>Arrival-Date: Thu Sep 09 16:20:09 GMT 2004
>Originator: Thomas Schweikle
FreeBSD hazel.tps 4.10-STABLE FreeBSD 4.10-STABLE #3: Thu Sep 9 16:29:02 CEST 2004 root at hazel.tps:/usr/obj/usr/src/sys/HAZEL i386
- PCI-Adapter AHA-2940 U/UW
- Onboard AIC-7890 U2W
- old SCSI-I as unit 0 on AHA-2940
- new LVD SCSI-II as unit 0 on AIC-7890
BIOS is adviced to take the PCI-Adapter as first in the system.
The loader respects this and finds:
BIOS device C: is disk1 (the old SCSI-I disk)
BIOS device D: is disk2 (the new LVD disk)
The kernel loads from disk1.
Now the kernel takes over:
ahc1 is AHA-2940
ahc0 is AIC-7890
The old SCSI-I HD gets da1 assigned,
the new LVD-HD gets da0 assigned.
Disks have swapped now! The kernel does not find its root and asks for it. Instead it should respect what the BIOS tells, and assign:
ahc0 to AHA-2940
ahc1 to AIC-7890
da0 being connected to AHA-2940
da1 being connected to AIC-7890
Systems with such a configuration render unusable until you remove at least one drive, keeping them all connected to one SCSI-Adapter only. This isn't acceptable.
The same problem arose with a system connected to a FC array, booting from a local SCSI device. It was impossible to have the system work, if both devices where connected.
Get a system with on board SCSI, plug in a second SCSI-Adapter, then tell the BIOS to take this plugged in adapter as the first one. All being OK, until the kernel takes over. He will take the onboard adapter as the first one, the plugged in as second.
More information about the freebsd-bugs