svn commit: r198914 - stable/7/sys/dev/fxp

Pyun YongHyeon yongari at FreeBSD.org
Wed Nov 4 18:08:54 UTC 2009


Author: yongari
Date: Wed Nov  4 18:08:53 2009
New Revision: 198914
URL: http://svn.freebsd.org/changeset/base/198914

Log:
  MFC r194570:
    Due to possible PCI bus lock-up issues fxp(4) didn't perform full
    hardware reset in attach phase. Selective reset does not clear
    configured parameters so I think full hardware reset is required.
    To prevent PCI bus lock-up, do selective reset first which will get
    off the controller from PCI bus and request software reset after
    selective reset. Software reset will unmask interrupts so disable
    it after the reset.

Modified:
  stable/7/sys/dev/fxp/if_fxp.c
Directory Properties:
  stable/7/sys/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)

Modified: stable/7/sys/dev/fxp/if_fxp.c
==============================================================================
--- stable/7/sys/dev/fxp/if_fxp.c	Wed Nov  4 18:07:09 2009	(r198913)
+++ stable/7/sys/dev/fxp/if_fxp.c	Wed Nov  4 18:08:53 2009	(r198914)
@@ -467,10 +467,14 @@ fxp_attach(device_t dev)
 	}
 
 	/*
-	 * Reset to a stable state.
+	 * Put CU/RU idle state and prepare full reset.
 	 */
 	CSR_WRITE_4(sc, FXP_CSR_PORT, FXP_PORT_SELECTIVE_RESET);
 	DELAY(10);
+	/* Full reset and disable interrupts. */
+	CSR_WRITE_4(sc, FXP_CSR_PORT, FXP_PORT_SOFTWARE_RESET);
+	DELAY(10);
+	CSR_WRITE_1(sc, FXP_CSR_SCB_INTRCNTL, FXP_SCB_INTR_DISABLE);
 
 	/*
 	 * Find out how large of an SEEPROM we have.


More information about the svn-src-stable-7 mailing list