Date: Mon, 7 Apr 2008 13:50:18 +1000 (EST) From: Damian McGuckin <damianm@esi.com.au> To: freebsd-scsi@freebsd.org Subject: SAS Drive Numbering inside the MPT driver Message-ID: <Pine.LNX.4.64.0804071345420.18981@key0.esi.com.au>
index | next in thread | raw e-mail
We have been fighting with a SAS drive controller under the control of the MPT(4) driver. It is an LSI3041E-R, 4 drive controller, which is handled by the MPT driver. Nice controller. Drive work nice and fast. But, as a bootable controllers, its behaviour is almost unworkable. Currently, when a virgin controller sees virgin disks, it allocates a scan order to the drives, and remembers their SAS addresses. This memory feature is causing us grief. Also, allocation of the ordering of the controllers themselves does not seem to reflect PCI bus ordering. Case 1: ====== Where there is only a single controller, from a virgin state, it assigns sequently drives in slots 0 through 3 to da0, da1, da2 and da3. It then remembers the drive serial number, well strictly SAS address. It will then boot off the LOWEST numbered drive. If we then rip out the first of those drives, 'da0' from the machine, and insert an alternate boot disk in the same slot as the original 'da0', the controller decides it is now the FOURTH drive it has seen. So it will be return a scan ordering AFTER what was da3. So, it will return drive orderings which effectively renumber the drives. You now have slot 0 - 4th in the scan order : da3 slot 1 - 1st in the scan order : da0 slot 2 - 2nd in the scan order : da1 slot 3 - 3rd in the scan order : da2 and it will attempt to boot off the drive in slot 1 because it is now the lowest numbered drive. There is NO way we can see to force the controller to boot off any drive other than the lowest numbered drive. How do we fake booting off the drive in slot 0, or any nominated slot for that matter? Is there some hidden BIOS setting for these controllers? Is there some SAS address drive mapping facility like SUN's ssd.conf? Case 2: ====== We have 2 SAS controllers in one machine, call then 'first' and 'second'. The order in which it sees the controllers seems not to reflect the order on the PCIe bus. While the BIOS will allow the user to nominate from which controller to boot, it still returns drives found in the order it wants. /dev/da0 Drive 1 on second controller with a Scan order of 0 /dev/da1 Drive 2 on second controller with a Scan order of 1 /dev/da2 Drive 1 on first controller with a Scan order of 0 /dev/da3 Drive 2 on first controller with a Scan order of 1 /dev/da4 Drive 3 on first controller with a Scan order of 2 /dev/da5 Drive 4 on first controller with a Scan order of 3 Again, how do we force the ordering, what the controller calls the scan order? Thanks - Damian Pacific Engineering Systems International, 277-279 Broadway, Broadway NSW 2007 Ph:+61-2-8571-0847 .. Fx:+61-2-9692-9623 | unsolicited email not wanted here ! Views and opinions here are mine and not those of any past or present employerhelp
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.64.0804071345420.18981>
