NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: NetBSD 6.0/amd64 Panic on shutdown.. mfi related?



On Thu, Nov 08, 2012 at 01:07:47PM +0000, Hugo Silva wrote:
> The guys in the datacenter were unable to give me any more information.
> 
> What I could find through pcictl was:
> 
> 001:00:0: Symbios Logic MegaRAID SAS2108 GEN2 (RAID mass storage,
> revision 0x04)
> 003:14:0: Symbios Logic MegaRAID SAS (RAID mass storage)
> 
> 
> I *think* but am not sure that I could query mfi0 with FreeBSD's mfiutil
> before installing NetBSD. bioctl mfi0 show doesn't work though:
> 
> bioctl: Can't locate mfi0 device via /dev/bio
> 
> 
> When the server is booting only the mfi1 card is seen doing its thing.
> I'd noticed mfi0 being present was strange but didn't think much of it
> (mfi1 did work after all), that is until I noticed the panic on shutdown
> appeared to be related to the driver.

Can you update to a recent netbsd-6 and apply the attached patch ?
looks like we're missing some initialisation steps for this model,
when the firmware is in MFI_STATE_BOOT_MESSAGE_PENDING state.

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--
Index: mfi.c
===================================================================
RCS file: /cvsroot/src/sys/dev/ic/mfi.c,v
retrieving revision 1.47
diff -u -p -u -r1.47 mfi.c
--- mfi.c       19 Sep 2012 21:24:29 -0000      1.47
+++ mfi.c       8 Nov 2012 14:12:59 -0000
@@ -587,12 +587,14 @@ mfi_transition_firmware(struct mfi_softc
                        max_wait = 20;
                        break;
                case MFI_STATE_BOOT_MESSAGE_PENDING:
-                       if (sc->sc_ioptype == MFI_IOP_TBOLT) {
+                       if (sc->sc_ioptype == MFI_IOP_SKINNY ||
+                           sc->sc_ioptype == MFI_IOP_TBOLT) {
                                mfi_write(sc, MFI_SKINNY_IDB, MFI_INIT_HOTPLUG);
-                               max_wait = 180;
-                               break;
+                       } else {
+                               mfi_write(sc, MFI_IDB, MFI_INIT_HOTPLUG);
                        }
-                       /* FALLTHROUGH */
+                       max_wait = 180;
+                       break;
                default:
                        aprint_error_dev(sc->sc_dev,
                            "unknown firmware state %d\n", fw_state);


Home | Main Index | Thread Index | Old Index