Jake Smith
2012-03-22 15:31:03 UTC
Hello,
I am trying to get the latest mps(4) driver in FreeBSD 9-STABLE working
with am LSI SAS2008 variant from ASUS, they call it PIKE 2008/IMR. Link
http://www.asus.com/Server_Workstation/Accessories/PIKE_2008IMR/
From what I can see this card should be compatible with the mps(4)
driver MFC'd to 9-STABLE about 6 weeks ago.
# uname -a
FreeBSD xxx 9.0-STABLE FreeBSD 9.0-STABLE #3 r233304M: Thu Mar 22
12:53:17 GMT 2012 ***@xxx:/usr/obj/usr/src/sys/GENERIC amd64
Revision: 233304
Initially the card is not seen at all by the driver, however pciconf
shows us why that is.
***@pci0:2:0:0: class=0x010700 card=0x843b1043 chip=0x00731000
rev=0x03 hdr=0x00
vendor = 'LSI Logic / Symbios Logic'
device = 'MegaRAID SAS 9240'
class = mass storage
subclass = SAS
It seems on other models of LSI SAS2008 the chip device ID is 0x0072,
however for some reason this card has 0x0073. So I patched the mps(4)
driver and recompiled.
diff -ruN mps.orig/mpi/mpi2_cnfg.h mps/mpi/mpi2_cnfg.h
--- mps.orig/mpi/mpi2_cnfg.h 2012-03-22 14:50:53.000000000 +0000
+++ mps/mpi/mpi2_cnfg.h 2012-03-22 14:52:23.000000000 +0000
@@ -416,7 +416,8 @@
/* SAS */
#define MPI2_MFGPAGE_DEVID_SAS2004 (0x0070)
-#define MPI2_MFGPAGE_DEVID_SAS2008 (0x0072)
+#define MPI2_MFGPAGE_DEVID_SAS2008_1 (0x0072)
+#define MPI2_MFGPAGE_DEVID_SAS2008_2 (0x0073)
#define MPI2_MFGPAGE_DEVID_SAS2108_1 (0x0074)
#define MPI2_MFGPAGE_DEVID_SAS2108_2 (0x0076)
#define MPI2_MFGPAGE_DEVID_SAS2108_3 (0x0077)
diff -ruN mps.orig/mps_pci.c mps/mps_pci.c
--- mps.orig/mps_pci.c 2012-03-22 14:48:41.000000000 +0000
+++ mps/mps_pci.c 2012-03-22 14:51:59.000000000 +0000
@@ -99,7 +99,9 @@
} mps_identifiers[] = {
{ MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2004,
0xffff, 0xffff, 0, "LSI SAS2004" },
- { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2008,
+ { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2008_1,
+ 0xffff, 0xffff, 0, "LSI SAS2008" },
+ { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2008_2,
0xffff, 0xffff, 0, "LSI SAS2008" },
{ MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2108_1,
0xffff, 0xffff, 0, "LSI SAS2108" },
After reboot it now loads the mps(4) module and attempts to init the
card but fails.
# dmesg | grep mps
mps0: <LSI SAS2008> port 0xd800-0xd8ff mem
0xfbd7c000-0xfbd7ffff,0xfbdc0000-0xfbdfffff irq 16 at device 0.0 on pci2
mps0: Doorbell failed to activate
device_attach: mps0 attach returned 6
From this point I'm stuck on what to try next, google does not provide
any answers for this situation. Does any one have any advice or ideas as
to why this is not working?
I am able to provide ssh access to the server if any one wants to log
on and have a look at it.
Really appreciate any help you can give.
Kind Regards
Jake
I am trying to get the latest mps(4) driver in FreeBSD 9-STABLE working
with am LSI SAS2008 variant from ASUS, they call it PIKE 2008/IMR. Link
http://www.asus.com/Server_Workstation/Accessories/PIKE_2008IMR/
From what I can see this card should be compatible with the mps(4)
driver MFC'd to 9-STABLE about 6 weeks ago.
# uname -a
FreeBSD xxx 9.0-STABLE FreeBSD 9.0-STABLE #3 r233304M: Thu Mar 22
12:53:17 GMT 2012 ***@xxx:/usr/obj/usr/src/sys/GENERIC amd64
Revision: 233304
Initially the card is not seen at all by the driver, however pciconf
shows us why that is.
***@pci0:2:0:0: class=0x010700 card=0x843b1043 chip=0x00731000
rev=0x03 hdr=0x00
vendor = 'LSI Logic / Symbios Logic'
device = 'MegaRAID SAS 9240'
class = mass storage
subclass = SAS
It seems on other models of LSI SAS2008 the chip device ID is 0x0072,
however for some reason this card has 0x0073. So I patched the mps(4)
driver and recompiled.
diff -ruN mps.orig/mpi/mpi2_cnfg.h mps/mpi/mpi2_cnfg.h
--- mps.orig/mpi/mpi2_cnfg.h 2012-03-22 14:50:53.000000000 +0000
+++ mps/mpi/mpi2_cnfg.h 2012-03-22 14:52:23.000000000 +0000
@@ -416,7 +416,8 @@
/* SAS */
#define MPI2_MFGPAGE_DEVID_SAS2004 (0x0070)
-#define MPI2_MFGPAGE_DEVID_SAS2008 (0x0072)
+#define MPI2_MFGPAGE_DEVID_SAS2008_1 (0x0072)
+#define MPI2_MFGPAGE_DEVID_SAS2008_2 (0x0073)
#define MPI2_MFGPAGE_DEVID_SAS2108_1 (0x0074)
#define MPI2_MFGPAGE_DEVID_SAS2108_2 (0x0076)
#define MPI2_MFGPAGE_DEVID_SAS2108_3 (0x0077)
diff -ruN mps.orig/mps_pci.c mps/mps_pci.c
--- mps.orig/mps_pci.c 2012-03-22 14:48:41.000000000 +0000
+++ mps/mps_pci.c 2012-03-22 14:51:59.000000000 +0000
@@ -99,7 +99,9 @@
} mps_identifiers[] = {
{ MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2004,
0xffff, 0xffff, 0, "LSI SAS2004" },
- { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2008,
+ { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2008_1,
+ 0xffff, 0xffff, 0, "LSI SAS2008" },
+ { MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2008_2,
0xffff, 0xffff, 0, "LSI SAS2008" },
{ MPI2_MFGPAGE_VENDORID_LSI, MPI2_MFGPAGE_DEVID_SAS2108_1,
0xffff, 0xffff, 0, "LSI SAS2108" },
After reboot it now loads the mps(4) module and attempts to init the
card but fails.
# dmesg | grep mps
mps0: <LSI SAS2008> port 0xd800-0xd8ff mem
0xfbd7c000-0xfbd7ffff,0xfbdc0000-0xfbdfffff irq 16 at device 0.0 on pci2
mps0: Doorbell failed to activate
device_attach: mps0 attach returned 6
From this point I'm stuck on what to try next, google does not provide
any answers for this situation. Does any one have any advice or ideas as
to why this is not working?
I am able to provide ssh access to the server if any one wants to log
on and have a look at it.
Really appreciate any help you can give.
Kind Regards
Jake