hello tech@

mfi(4) diff to support MegaRAID 9240-4i (from kravchuk...@gmail.com).

2:0:0: Symbios Logic MegaRAID SAS2008
        0x0000: Vendor ID: 1000 Product ID: 0073
        0x0004: Command: 0147 Status ID: 0010
        0x0008: Class: 01 Subclass: 04 Interface: 00 Revision: 03
        0x000c: BIST: 00 Header Type: 00 Latency Timer: 00 Cache Line Size:
10
        0x0010: BAR io addr: 0x0000e000/0x0100
        0x0014: BAR mem 64bit addr: 0x00000000fbb60000/0x00004000
        0x001c: BAR mem 64bit addr: 0x0000000000000000/0x00040000
        0x0024: BAR empty (00000000)
        0x0028: Cardbus CIS: 00000000
        0x002c: Subsystem Vendor ID: 1000 Product ID: 9241
        0x0030: Expansion ROM Base Address: fbb40000
        0x0038: 00000000
        0x003c: Interrupt Pin: 01 Line: 05 Min Gnt: 00 Max Lat: 00
        0x0050: Capability 0x01: Power Management
        0x0068: Capability 0x10: PCI Express
                Link Speed: 5.0 / 5.0 Gb/s Link Width: x8 / x8
        0x00d0: Capability 0x03: Vital Product Data (VPD)
        0x00a8: Capability 0x05: Message Signaled Interrupts (MSI)
        0x00c0: Capability 0x11: Extended Message Signaled Interrupts
(MSI-X)
        0x0000: 00731000 00100147 01040003 00000010
        0x0010: 0000e001 fbb60004 00000000 00000004
        0x0020: 00000000 00000000 00000000 92411000
        0x0030: fbb40000 00000050 00000000 00000105
        0x0040: 00000000 00000000 00000000 00000000
        0x0050: 06036801 00000008 00000000 00000000
        0x0060: 00000000 00000200 0002d010 10008025
        0x0070: 00092807 00000482 10820040 00000000
        0x0080: 00000000 00000000 00000000 00000016
        0x0090: 00000000 00000000 00000002 00000000
        0x00a0: 00000000 00000000 0080c005 00000000
        0x00b0: 00000000 00000000 00000000 00000000
        0x00c0: 000e0011 00002001 00003801 00000000
        0x00d0: 0000a803 00000000 00000000 00000000
        0x00e0: 00000000 00000000 00000000 00000000
        0x00f0: 00000000 00000000 00000000 00000000

OpenBSD 5.0-current (GENERIC.MP) #1: Mon Jan  2 22:17:32 GMT 2012
    r...@gw.done:/usr/src/sys/arch/amd64/compile/GENERIC.MP
real mem = 4237422592 (4041MB)
avail mem = 4110475264 (3920MB)
mainbus0 at root
bios0 at mainbus0: SMBIOS rev. 2.7 @ 0xeadc0 (105 entries)
bios0: vendor American Megatrends Inc. version "1.1a" date 09/28/2011
bios0: Supermicro X9SCL/X9SCM
acpi0 at bios0: rev 2
acpi0: sleep states S0 S1 S4 S5
acpi0: tables DSDT FACP APIC SSDT MCFG HPET SPMI EINJ ERST HEST BERT
acpi0: wakeup devices PS2K(S1) PS2M(S1) UAR1(S4) UAR2(S4) BR20(S1)
EUSB(S4) USBE(S4) PEX0(S4) PEX4(S4) PEX6(S4) GBE_(S4) P0P1(S4)
P0P2(S4) P0P3(S4) P0P4(S4) SLPB(S0) PWRB(S4)
acpitimer0 at acpi0: 3579545 Hz, 24 bits
acpimadt0 at acpi0 addr 0xfee00000: PC-AT compat
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel(R) Xeon(R) CPU E31230 @ 3.20GHz, 3193.20 MHz
cpu0: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,PCLMUL,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,POPCNT,XSAVE,AVX,NXE,LONG,LAHF
cpu0: 256KB 64b/line 8-way L2 cache
cpu0: apic clock running at 99MHz
cpu1 at mainbus0: apid 2 (application processor)
cpu1: Intel(R) Xeon(R) CPU E31230 @ 3.20GHz, 3192.75 MHz
cpu1: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,PCLMUL,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,POPCNT,XSAVE,AVX,NXE,LONG,LAHF
cpu1: 256KB 64b/line 8-way L2 cache
cpu2 at mainbus0: apid 4 (application processor)
cpu2: Intel(R) Xeon(R) CPU E31230 @ 3.20GHz, 3192.75 MHz
cpu2: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,PCLMUL,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,POPCNT,XSAVE,AVX,NXE,LONG,LAHF
cpu2: 256KB 64b/line 8-way L2 cache
cpu3 at mainbus0: apid 6 (application processor)
cpu3: Intel(R) Xeon(R) CPU E31230 @ 3.20GHz, 3192.75 MHz
cpu3: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,PCLMUL,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,POPCNT,XSAVE,AVX,NXE,LONG,LAHF
cpu3: 256KB 64b/line 8-way L2 cache
cpu4 at mainbus0: apid 1 (application processor)
cpu4: Intel(R) Xeon(R) CPU E31230 @ 3.20GHz, 3192.75 MHz
cpu4: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,PCLMUL,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,POPCNT,XSAVE,AVX,NXE,LONG,LAHF
cpu4: 256KB 64b/line 8-way L2 cache
cpu5 at mainbus0: apid 3 (application processor)
cpu5: Intel(R) Xeon(R) CPU E31230 @ 3.20GHz, 3192.75 MHz
cpu5: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,PCLMUL,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,POPCNT,XSAVE,AVX,NXE,LONG,LAHF
cpu5: 256KB 64b/line 8-way L2 cache
cpu6 at mainbus0: apid 5 (application processor)
cpu6: Intel(R) Xeon(R) CPU E31230 @ 3.20GHz, 3192.75 MHz
cpu6: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,PCLMUL,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,POPCNT,XSAVE,AVX,NXE,LONG,LAHF
cpu6: 256KB 64b/line 8-way L2 cache
cpu7 at mainbus0: apid 7 (application processor)
cpu7: Intel(R) Xeon(R) CPU E31230 @ 3.20GHz, 3192.75 MHz
cpu7: 
FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,DS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,SBF,SSE3,PCLMUL,MWAIT,DS-CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1,SSE4.2,x2APIC,POPCNT,XSAVE,AVX,NXE,LONG,LAHF
cpu7: 256KB 64b/line 8-way L2 cache
ioapic0 at mainbus0: apid 0 pa 0xfec00000, version 20, 24 pins
acpimcfg0 at acpi0 addr 0xe0000000, bus 0-255
acpihpet0 at acpi0: 14318179 Hz
acpiprt0 at acpi0: bus 0 (PCI0)
acpiprt1 at acpi0: bus 6 (BR20)
acpiprt2 at acpi0: bus 3 (PEX0)
acpiprt3 at acpi0: bus 4 (PEX4)
acpiprt4 at acpi0: bus 5 (PEX6)
acpiprt5 at acpi0: bus 1 (P0P1)
acpiprt6 at acpi0: bus 2 (P0P2)
acpiprt7 at acpi0: bus -1 (P0P3)
acpiprt8 at acpi0: bus -1 (P0P4)
acpicpu0 at acpi0: C3, C1, PSS
acpicpu1 at acpi0: C3, C1, PSS
acpicpu2 at acpi0: C3, C1, PSS
acpicpu3 at acpi0: C3, C1, PSS
acpicpu4 at acpi0: C3, C1, PSS
acpicpu5 at acpi0: C3, C1, PSS
acpicpu6 at acpi0: C3, C1, PSS
acpicpu7 at acpi0: C3, C1, PSS
acpibtn0 at acpi0: SLPB
acpibtn1 at acpi0: PWRB
ipmi at mainbus0 not configured
cpu0: Enhanced SpeedStep 3192 MHz: speeds: 3201, 3200, 3000, 2800,
2600, 2400, 2200, 2000, 1800, 1600 MHz
pci0 at mainbus0 bus 0
pchb0 at pci0 dev 0 function 0 vendor "Intel", unknown product 0x0108 rev 0x09
ppb0 at pci0 dev 1 function 0 "Intel Core 2G PCIE" rev 0x09: msi
pci1 at ppb0 bus 1
ppb1 at pci0 dev 1 function 1 "Intel Core 2G PCIE" rev 0x09: msi
pci2 at ppb1 bus 2
mem address conflict 0xffb00000/0x40000
mfi0 at pci2 dev 0 function 0 "Symbios Logic MegaRAID SAS2008" rev
0x03: apic 0 int 17, 0x92411000
mfi0: logical drives 1, version 20.10.1-0061, 0MB RAM
scsibus0 at mfi0: 1 targets
sd0 at scsibus0 targ 0 lun 0: <LSI, MR9240-4i, 2.12> SCSI3 0/direct
fixed naa.600605b0040274b0168b06c006dbdaed
sd0: 952720MB, 512 bytes/sector, 1951170560 sectors
ehci0 at pci0 dev 26 function 0 "Intel 6 Series USB" rev 0x05: apic 0 int 16
usb0 at ehci0: USB revision 2.0
uhub0 at usb0 "Intel EHCI root hub" rev 2.00/1.00 addr 1
ppb2 at pci0 dev 28 function 0 "Intel 6 Series PCIE" rev 0xb5: msi
pci3 at ppb2 bus 3
ppb3 at pci0 dev 28 function 4 "Intel 6 Series PCIE" rev 0xb5: msi
pci4 at ppb3 bus 4
em0 at pci4 dev 0 function 0 "Intel PRO/1000 MT (82574L)" rev 0x00:
msi, address 00:25:90:57:bf:b0
ppb4 at pci0 dev 28 function 6 "Intel 6 Series PCIE" rev 0xb5: msi
pci5 at ppb4 bus 5
em1 at pci5 dev 0 function 0 "Intel PRO/1000 MT (82574L)" rev 0x00:
msi, address 00:25:90:57:bf:b1
ehci1 at pci0 dev 29 function 0 "Intel 6 Series USB" rev 0x05: apic 0 int 23
usb1 at ehci1: USB revision 2.0
uhub1 at usb1 "Intel EHCI root hub" rev 2.00/1.00 addr 1
ppb5 at pci0 dev 30 function 0 "Intel 82801BA Hub-to-PCI" rev 0xa5
pci6 at ppb5 bus 6
vga1 at pci6 dev 3 function 0 "Matrox MGA G200eW" rev 0x0a
wsdisplay0 at vga1 mux 1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
pcib0 at pci0 dev 31 function 0 "Intel C202 LPC" rev 0x05
pciide0 at pci0 dev 31 function 2 "Intel 82801H RAID" rev 0x05: DMA,
channel 0 wired to native-PCI, channel 1 wired to native-PCI
pciide0: using apic 0 int 19 for native-PCI interrupt
ichiic0 at pci0 dev 31 function 3 "Intel 6 Series SMBus" rev 0x05: apic 0 int 18
iic0 at ichiic0
sdtemp0 at iic0 addr 0x19: se97
sdtemp1 at iic0 addr 0x1b: se97
spdmem0 at iic0 addr 0x51: 2GB DDR3 SDRAM ECC PC3-10600 with thermal sensor
spdmem1 at iic0 addr 0x53: 2GB DDR3 SDRAM ECC PC3-10600 with thermal sensor
isa0 at pcib0
isadma0 at isa0
com0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo
com1 at isa0 port 0x2f8/8 irq 3: ns16550a, 16 byte fifo
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pcppi0 at isa0 port 0x61
spkr0 at pcppi0
wbsio0 at isa0 port 0x2e/2: NCT6776F rev 0x33
lm1 at wbsio0 port 0xa30/8: NCT6776F
mtrr: Pentium Pro MTRR support
uhub2 at uhub0 port 1 "Intel Rate Matching Hub" rev 2.00/0.00 addr 2
uhidev0 at uhub2 port 2 configuration 1 interface 0 "Winbond
Electronics Corp Hermon USB hidmouse Device" rev 1.10/0.01 addr 3
uhidev0: iclass 3/1
ums0 at uhidev0: 3 buttons, Z dir
wsmouse0 at ums0 mux 0
uhidev1 at uhub2 port 2 configuration 1 interface 1 "Winbond
Electronics Corp Hermon USB hidmouse Device" rev 1.10/0.01 addr 3
uhidev1: iclass 3/1
ukbd0 at uhidev1: 8 modifier keys, 6 key codes
wskbd1 at ukbd0 mux 1
wskbd1: connecting to wsdisplay0
uhub3 at uhub1 port 1 "Intel Rate Matching Hub" rev 2.00/0.00 addr 2
uhidev2 at uhub3 port 2 configuration 1 interface 0 " USB Keyboard"
rev 1.10/3.10 addr 3
uhidev2: iclass 3/1
ukbd1 at uhidev2: 8 modifier keys, 6 key codes
wskbd2 at ukbd1 mux 1
wskbd2: connecting to wsdisplay0
uhidev3 at uhub3 port 2 configuration 1 interface 1 " USB Keyboard"
rev 1.10/3.10 addr 3
uhidev3: iclass 3/0, 2 report ids
uhid0 at uhidev3 reportid 1: input=1, output=0, feature=0
uhid1 at uhidev3 reportid 2: input=3, output=0, feature=0
uhidev4 at uhub3 port 4 configuration 1 interface 0 "Logitech USB
Optical Mouse" rev 2.00/54.00 addr 4
uhidev4: iclass 3/1
ums1 at uhidev4: 8 buttons, Z dir
wsmouse1 at ums1 mux 0
vscsi0 at root
scsibus1 at vscsi0: 256 targets
softraid0 at root
scsibus2 at softraid0: 256 targets
root on sd0a (13bd0d2d1702d918.a) swap on sd0b dump on sd0b

Index: dev/ic/mfi.c
===================================================================
RCS file: /cvs/src/sys/dev/ic/mfi.c,v
retrieving revision 1.121
diff -u -p -r1.121 mfi.c
--- dev/ic/mfi.c        17 Jul 2011 22:46:48 -0000      1.121
+++ dev/ic/mfi.c        3 Jan 2012 01:31:16 -0000
@@ -145,6 +145,18 @@ static const struct mfi_iop_ops mfi_iop_
        mfi_gen2_post
 };

+u_int32_t      mfi_skinny_fw_state(struct mfi_softc *);
+void           mfi_skinny_intr_ena(struct mfi_softc *);
+int            mfi_skinny_intr(struct mfi_softc *);
+void           mfi_skinny_post(struct mfi_softc *, struct mfi_ccb *);
+
+static const struct mfi_iop_ops mfi_iop_skinny = {
+       mfi_skinny_fw_state,
+       mfi_skinny_intr_ena,
+       mfi_skinny_intr,
+       mfi_skinny_post
+};
+
 #define mfi_fw_state(_s)       ((_s)->sc_iop->mio_fw_state(_s))
 #define mfi_intr_enable(_s)    ((_s)->sc_iop->mio_intr_ena(_s))
 #define mfi_my_intr(_s)                ((_s)->sc_iop->mio_intr(_s))
@@ -366,11 +378,17 @@ mfi_transition_firmware(struct mfi_softc
                        printf("%s: firmware fault\n", DEVNAME(sc));
                        return (1);
                case MFI_STATE_WAIT_HANDSHAKE:
-                       mfi_write(sc, MFI_IDB, MFI_INIT_CLEAR_HANDSHAKE);
+                       if (sc->sc_flags & MFI_IOP_SKINNY)
+                               mfi_write(sc, MFI_SKINNY_IDB, 
MFI_INIT_CLEAR_HANDSHAKE);
+                       else
+                               mfi_write(sc, MFI_IDB, 
MFI_INIT_CLEAR_HANDSHAKE);
                        max_wait = 2;
                        break;
                case MFI_STATE_OPERATIONAL:
-                       mfi_write(sc, MFI_IDB, MFI_INIT_READY);
+                       if (sc->sc_flags & MFI_IOP_SKINNY)
+                               mfi_write(sc, MFI_SKINNY_IDB, MFI_INIT_READY);
+                       else
+                               mfi_write(sc, MFI_IDB, MFI_INIT_READY);
                        max_wait = 10;
                        break;
                case MFI_STATE_UNDEFINED:
@@ -646,6 +664,9 @@ mfi_attach(struct mfi_softc *sc, enum mf
        case MFI_IOP_GEN2:
                sc->sc_iop = &mfi_iop_gen2;
                break;
+       case MFI_IOP_SKINNY:
+               sc->sc_iop = &mfi_iop_skinny;
+               break;
        default:
                panic("%s: unknown iop %d", DEVNAME(sc), iop);
        }
@@ -2169,4 +2190,39 @@ mfi_gen2_post(struct mfi_softc *sc, stru
 {
        mfi_write(sc, MFI_IQP, 0x1 | ccb->ccb_pframe |
            (ccb->ccb_extra_frames << 1));
+}
+
+u_int32_t
+mfi_skinny_fw_state(struct mfi_softc *sc)
+{
+       return (mfi_read(sc, MFI_OSP));
+}
+
+void
+mfi_skinny_intr_ena(struct mfi_softc *sc)
+{
+       mfi_write(sc, MFI_OMSK, ~0x00000001);
+}
+
+int
+mfi_skinny_intr(struct mfi_softc *sc)
+{
+       u_int32_t status;
+
+       status = mfi_read(sc, MFI_OSTS);
+       if (!ISSET(status, MFI_OSTS_SKINNY_INTR_VALID))
+               return (0);
+
+       /* write status back to acknowledge interrupt */
+       mfi_write(sc, MFI_OSTS, status);
+
+       return (1);
+}
+
+void
+mfi_skinny_post(struct mfi_softc *sc, struct mfi_ccb *ccb)
+{
+       mfi_write(sc, MFI_IQPL, 0x1 | ccb->ccb_pframe |
+           (ccb->ccb_extra_frames << 1));
+       mfi_write(sc, MFI_IQPH, 0x00000000);
 }
Index: dev/ic/mfireg.h
===================================================================
RCS file: /cvs/src/sys/dev/ic/mfireg.h,v
retrieving revision 1.29
diff -u -p -r1.29 mfireg.h
--- dev/ic/mfireg.h     8 Apr 2011 19:23:46 -0000       1.29
+++ dev/ic/mfireg.h     3 Jan 2012 01:31:16 -0000
@@ -45,6 +45,14 @@
 #define MFI_ODC                                        0xa0 /* outbound 
doorbell clr */
 #define MFI_OSP                                        0xb0 /* outbound 
scratch pad */

+/*
+ * skinny specific changes
+*/
+#define MFI_SKINNY_IDB                         0x00 /* Inbound doorbell is at 
0x00 for skinny */
+#define MFI_IQPL                               0x000000c0
+#define MFI_IQPH                               0x000000c4
+#define MFI_OSTS_SKINNY_INTR_VALID             0x00000001
+
 /* * firmware states */
 #define MFI_STATE_MASK                         0xf0000000
 #define MFI_STATE_UNDEFINED                    0x00000000
Index: dev/ic/mfivar.h
===================================================================
RCS file: /cvs/src/sys/dev/ic/mfivar.h,v
retrieving revision 1.41
diff -u -p -r1.41 mfivar.h
--- dev/ic/mfivar.h     9 Apr 2011 20:23:31 -0000       1.41
+++ dev/ic/mfivar.h     3 Jan 2012 01:31:16 -0000
@@ -95,7 +95,8 @@ SLIST_HEAD(mfi_ccb_list, mfi_ccb);
 enum mfi_iop {
        MFI_IOP_XSCALE,
        MFI_IOP_PPC,
-       MFI_IOP_GEN2
+       MFI_IOP_GEN2,
+       MFI_IOP_SKINNY
 };

 struct mfi_iop_ops {
@@ -114,6 +115,7 @@ struct mfi_softc {
        const struct mfi_iop_ops *sc_iop;

        int                     sc_64bit_dma;
+       int                     sc_flags;

        bus_space_tag_t         sc_iot;
        bus_space_handle_t      sc_ioh;
Index: dev/pci/mfi_pci.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/mfi_pci.c,v
retrieving revision 1.25
diff -u -p -r1.25 mfi_pci.c
--- dev/pci/mfi_pci.c   20 Jul 2011 20:15:23 -0000      1.25
+++ dev/pci/mfi_pci.c   3 Jan 2012 01:31:16 -0000
@@ -105,6 +105,8 @@ struct      mfi_pci_device {
          MFI_IOP_GEN2,         mfi_gen2_subtypes },
        { PCI_VENDOR_SYMBIOS,   PCI_PRODUCT_SYMBIOS_SAS2108_2,
          MFI_IOP_GEN2,         mfi_gen2_subtypes },
+       { PCI_VENDOR_SYMBIOS,   PCI_PRODUCT_SYMBIOS_SAS2008_1,
+         MFI_IOP_SKINNY,       NULL },
 };

 const struct mfi_pci_device *mfi_pci_find_device(struct pci_attach_args *);
@@ -153,7 +155,9 @@ mfi_pci_attach(struct device *parent, st
                return;
        }

-       if (mpd->mpd_iop == MFI_IOP_GEN2)
+       sc->sc_flags = mpd->mpd_iop;
+       
+       if (mpd->mpd_iop == MFI_IOP_GEN2 || mpd->mpd_iop == MFI_IOP_SKINNY )
                regbar = MFI_BAR_GEN2;
        else
                regbar = MFI_BAR;
Index: dev/pci/pcidevs
===================================================================
RCS file: /cvs/src/sys/dev/pci/pcidevs,v
retrieving revision 1.1629
diff -u -p -r1.1629 pcidevs
--- dev/pci/pcidevs     2 Jan 2012 10:29:43 -0000       1.1629
+++ dev/pci/pcidevs     3 Jan 2012 01:31:17 -0000
@@ -3983,6 +3983,7 @@ product SYMBIOS SAS2116_2 0x0065  SAS2116
 product SYMBIOS SAS2308_3      0x006e  SAS2308
 product SYMBIOS SAS2004                0x0070  SAS2004
 product SYMBIOS SAS2008                0x0072  SAS2008
+product SYMBIOS SAS2008_1      0x0073  MegaRAID SAS2008
 product SYMBIOS SAS2108_3      0x0074  SAS2108
 product SYMBIOS SAS2108_4      0x0076  SAS2108
 product SYMBIOS SAS2108_5      0x0077  SAS2108

[demime 1.01d removed an attachment of type application/octet-stream which had 
a name of mfi.diff]

Reply via email to