The theory here is that the device may not be properly initializing its on-chip memory, leaving some of it in a parity errored state, and enabling parity check may result in the device blowing up. Error message: http://hup.hu/old/images/trey/work/clevo_core_duo/S3600052.JPG Fix: Relevant threads: http://marc.theaimsgroup.com/?l=dragonfly-kernel&m=109967161431080&w=2 See this commit: http://www.dragonflybsd.org/cvsweb/src/sys/bus/firewire/fwohci_pci.c?rev=1.16&content-type=text/x-cvsweb-markup Or: + /* + * Clear PCIM_CMD_MWRICEN as per FreeBSD/1.20, but note that the + * problem may have been related to SERR and PERR being + * unconditionally enabled in that rev. + * + * Do not change the SERRESPEN or PERRESPEN bits. Use the BIOS + * values (probably off). This crashes some machines in fwohci_init(). + * + * The theory here is that the device may not be properly initializing + * its on-chip memory, leaving some of it in a parity errored state, + * and enabling parity check may result in the device blowing up. + * It's also possible that some hardware is just plain broken. OpenBSD + * does not turn on SERRESPEN or PERRESPEN so we won't either. + */ cmd = pci_read_config(self, PCIR_COMMAND, 2); - cmd |= PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN | PCIM_CMD_MWRICEN | - PCIM_CMD_SERRESPEN | PCIM_CMD_PERRESPEN; -#if 1 /* for broken hardware */ + cmd |= PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN; cmd &= ~PCIM_CMD_MWRICEN; - cmd &= ~(PCIM_CMD_SERRESPEN | PCIM_CMD_PERRESPEN); -#endif pci_write_config(self, PCIR_COMMAND, cmd, 2); /*--eYvGKBtip12U9eUPEWikXWPfjq4Rpw8ronq51o9SSnbjVJkK Content-Type: text/plain; name="file.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="file.diff" --- fwohci_pci.c.orig Mon Mar 27 22:11:47 2006 +++ fwohci_pci.c Mon Mar 27 22:36:47 2006 @@ -240,13 +240,23 @@ int olatency, latency, ocache_line, cache_line; uint16_t cmd; How-To-Repeat: Boot with unpatched kernel.
Responsible Changed From-To: freebsd-bugs->freebsd-firewire Firewire bug
simokawa 2007-03-15 14:11:46 UTC FreeBSD src repository Modified files: sys/dev/firewire fwohci_pci.c Log: Don't mess with PCIM_CMD_SERRESPEN and PCIM_CMD_PERRESPEN. This will fix 'NMI RAM parity error' while booting on some machines. PR: kern/95077 MFC after: 3 days Revision Changes Path 1.57 +1 -3 src/sys/dev/firewire/fwohci_pci.c _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
simokawa 2007-03-19 05:11:07 UTC FreeBSD src repository Modified files: (Branch: RELENG_6) sys/dev/firewire fwohci_pci.c Log: MFC: rev 1.57 Don't mess with PCIM_CMD_SERRESPEN and PCIM_CMD_PERRESPEN. This will fix 'NMI RAM parity error' while booting on some machines. PR: kern/95077 Revision Changes Path 1.52.2.1 +1 -3 src/sys/dev/firewire/fwohci_pci.c _______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
State Changed From-To: open->feedback A fix is committed
State Changed From-To: feedback->closed Patched and MFCed.