LSI2008 controller clobbers first disk with new LSI mps driver

Jason Wolfe nitroboost at gmail.com
Thu Feb 16 20:46:19 UTC 2012


I'm having an issue with the recent and older LSI developed mps drivers
(r230922) on the LSI2008 SAS2 controller running IT firmware (Supermicro
X8DTT-H) where the controller (ses0) is seen up as the first device (pass0)
and clobbers the boot drive, leaving only 11 of the 12 drives picked up by
the OS. When using the FBSD developed driver that had been in 8.2-STABLE
for the past year up until the recent LSI release earlier this month, the
controller is picked up last and all 12 drives show properly.

In all cases BIOS and the boot loader see all drives properly, and again
the FBSD dev driver sees all 12 in the OS. This causes the system to boot
with the LSI drivers, but when it goes to mount to the root it hangs at the
prompt. I've reverted all my systems back to the older FBSD dev driver for
now so I dont have to boot from the 2nd drive, but I'm game to revert and
do any testing.

LSI Corporation MPT SAS2 BIOS
MPT2BIOS-7.19.00.00 (2011.05.16)
Copyright 2000-2011 LSI Corporation.

PCI ENCL LUN VENDOR PRODUCT PRODUCT SIZE
SLOT SLOT NUM NAME IDENTIFIER REVISION NVDATA
---- ---- --- -------- ---------------- ----------- ---------
5 LSI SAS2008-IT 10.00.02.00 0A:02:00:04
5 0 0 SEAGATE ST91000640SS 0001 953 GB
5 1 0 SEAGATE ST91000640SS 0001 953 GB
5 2 0 SEAGATE ST91000640SS 0001 953 GB
5 3 0 SEAGATE ST91000640SS 0001 953 GB
5 4 0 SEAGATE ST91000640SS 0001 953 GB
5 5 0 SEAGATE ST91000640SS 0001 953 GB
5 6 0 SEAGATE ST91000640SS 0001 953 GB
5 7 0 SEAGATE ST91000640SS 0001 953 GB
5 8 0 SEAGATE ST91000640SS 0001 953 GB
5 9 0 SEAGATE ST91000640SS 0001 953 GB
5 10 0 SEAGATE ST91000640SS 0001 953 GB
5 11 0 SEAGATE ST91000640SS 0001 953 GB


BIOS drive C: is disk0
BIOS drive D: is disk1
BIOS drive E: is disk2
BIOS drive F: is disk3
BIOS drive G: is disk4
BIOS drive H: is disk5
BIOS drive I: is disk6
BIOS drive J: is disk7
BIOS drive K: is disk8
BIOS drive L: is disk9
BIOS drive M: is disk10
BIOS drive N: is disk11


Running the LSI developed binary (11.00.00.00) on/for 7.2-RELEASE or LSI
developed driver (released to the community earlier this month) in
8.2-STABLE:
<LSI CORP SAS2X28 0717> at scbus0 target 8 lun 0 (ses0,pass0)
<SEAGATE ST91000640SS 0001> at scbus0 target 9 lun 0 (da0,pass1)
<SEAGATE ST91000640SS 0001> at scbus0 target 10 lun 0 (da1,pass2)
<SEAGATE ST91000640SS 0001> at scbus0 target 11 lun 0 (da2,pass3)
<SEAGATE ST91000640SS 0001> at scbus0 target 12 lun 0 (da3,pass4)
<SEAGATE ST91000640SS 0001> at scbus0 target 13 lun 0 (da4,pass5)
<SEAGATE ST91000640SS 0001> at scbus0 target 14 lun 0 (da5,pass6)
<SEAGATE ST91000640SS 0001> at scbus0 target 15 lun 0 (da6,pass7)
<SEAGATE ST91000640SS 0001> at scbus0 target 16 lun 0 (da7,pass8)
<SEAGATE ST91000640SS 0001> at scbus0 target 17 lun 0 (da8,pass9)
<SEAGATE ST91000640SS 0001> at scbus0 target 18 lun 0 (da9,pass10)
<SEAGATE ST91000640SS 0001> at scbus0 target 19 lun 0 (da10,pass11)


On the FBSD developed driver active in 8-STABLE prior to the LSI release:

<SEAGATE ST91000640SS 0001> at scbus0 target 1 lun 0 (pass0,da0)
<SEAGATE ST91000640SS 0001> at scbus0 target 2 lun 0 (pass1,da1)
<SEAGATE ST91000640SS 0001> at scbus0 target 3 lun 0 (pass2,da2)
<SEAGATE ST91000640SS 0001> at scbus0 target 4 lun 0 (pass3,da3)
<SEAGATE ST91000640SS 0001> at scbus0 target 5 lun 0 (pass4,da4)
<SEAGATE ST91000640SS 0001> at scbus0 target 6 lun 0 (pass5,da5)
<SEAGATE ST91000640SS 0001> at scbus0 target 7 lun 0 (pass6,da6)
<SEAGATE ST91000640SS 0001> at scbus0 target 8 lun 0 (pass7,da7)
<SEAGATE ST91000640SS 0001> at scbus0 target 9 lun 0 (pass8,da8)
<SEAGATE ST91000640SS 0001> at scbus0 target 10 lun 0 (pass9,da9)
<SEAGATE ST91000640SS 0001> at scbus0 target 11 lun 0 (pass10,da10)
<SEAGATE ST91000640SS 0001> at scbus0 target 12 lun 0 (pass11,da11)
<LSI CORP SAS2X28 0717> at scbus0 target 13 lun 0 (ses0,pass12)

Our one lead is that in older machines of the same model but older
firmware, this behavior is _NOT_ seen.

Supermicro X8DTT-H BIOS Date: 02/11/11 14:48:51 Ver 2.0c

LSI Corporation MPT SAS2 BIOS
MPT2BIOS-7.11.00.00 (2010.07.29)
Copyright 2000-2010 LSI Corporation.

PCI ENCL LUN VENDOR PRODUCT PRODUCT SIZE
SLOT SLOT NUM NAME IDENTIFIER REVISION NVDATA
---- ---- --- -------- ---------------- ----------- ---------
5 LSI Corp SAS2008-IT 7.00.00.00 07:00:00:05
5 0 0 SEAGATE ST91000640SS 0001 931 GB
5 1 0 SEAGATE ST91000640SS 0001 931 GB
5 2 0 SEAGATE ST91000640SS 0001 931 GB
5 3 0 SEAGATE ST91000640SS 0001 931 GB
5 4 0 SEAGATE ST91000640SS 0001 931 GB
5 5 0 SEAGATE ST91000640SS 0001 931 GB
5 6 0 SEAGATE ST91000640SS 0001 931 GB
5 7 0 SEAGATE ST91000640SS 0001 931 GB
5 8 0 SEAGATE ST91000640SS 0001 931 GB
5 9 0 SEAGATE ST91000640SS 0001 931 GB
5 10 0 SEAGATE ST91000640SS 0001 931 GB
5 11 0 SEAGATE ST91000640SS 0001 931 GB

So works fine:

MPT2BIOS-7.11.00.00 (2010.07.29) / PRODUCT REVISION 7.00.00.00

Clobbers boot drive:

MPT2BIOS-7.19.00.00 (2011.05.16) / PRODUCT REVISION 10.00.02.00

On both system types the hardware/capabilities are identical, only
variation is the LSI drivers print the Driver: X after the Firmware, where
the FBSD drive did not:

mps0: <LSI SAS2008> port 0xe000-0xe0ff mem
0xfbd3c000-0xfbd3ffff,0xfbd40000-0xfbd7ffff irq 26 at device 0.0 on pci4
mps0: Firmware: 07.00.00.00, Driver: 11.255.03.00-fbsd
mps0: IOCCapabilities:
1285c<ScsiTaskFull,DiagTrace,SnapBuf,EEDP,TransRetry,EventReplay,HostDisc>
mps0: [ITHREAD]

ses0 at mps0 bus 0 scbus0 target 20 lun 0
ses0: <LSI CORP SAS2X28 0717> Fixed Enclosure Services SCSI-5 device
ses0: 600.000MB/s transfers
ses0: Command Queueing enabled
ses0: SCSI-3 SES Device

mps0 at pci0:4:0:0: class=0x010700 card=0x040015d9 chip=0x00721000 rev=0x02
hdr=0x00
vendor = 'LSI Logic (Was: Symbios Logic, NCR)'
class = mass storage
subclass = SAS


Thanks in advance for any advice, I'm guessing a bug is being tickled in
the driver by the new mpt firmware, or vice versa? Might it be possible to
use hints to force the controller to be picked up last?

Jason


More information about the freebsd-scsi mailing list