PERFORCE change 54963 for review
Juli Mallett
jmallett at FreeBSD.org
Mon Jun 14 22:45:02 GMT 2004
http://perforce.freebsd.org/chv.cgi?CH=54963
Change 54963 by jmallett at jmallett_oingo on 2004/06/14 22:44:06
Functionalize bus resetting, and further, make it the int4 handler.
Affected files ...
.. //depot/projects/mips/sys/mips/sgimips/imc/imc.c#8 edit
Differences ...
==== //depot/projects/mips/sys/mips/sgimips/imc/imc.c#8 (text+ko) ====
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $P4: //depot/projects/mips/sys/mips/sgimips/imc/imc.c#7 $
+ * $P4: //depot/projects/mips/sys/mips/sgimips/imc/imc.c#8 $
*/
#include <sys/cdefs.h>
@@ -38,6 +38,7 @@
#include <machine/bus.h>
#include <platform/models.h>
#include <platform/imc/imcreg.h>
+#include <platform/intr.h>
static devclass_t imc_devclass;
@@ -70,6 +71,8 @@
NULL
};
+static void imc_reset(void *);
+
#define IMC_READ_4(port, r) \
bus_space_read_4(device_space_tag, (port), (r))
@@ -123,9 +126,9 @@
device_printf(dev, "revision %d, EISA %s\n", sysid & IMC_SYSID_REVMASK,
sysid & IMC_SYSID_HAVEISA ? "present" : "not present");
- /* Clear error status. */
- IMC_WRITE_4(port, IMC_CPU_ERRSTAT, 0);
- IMC_WRITE_4(port, IMC_GIO_ERRSTAT, 0);
+ /* Clear error status and set up bus error handler. */
+ imc_reset(dev);
+ platform_establish_hardintr(4, imc_reset, dev);
/*
* Enable parity reporting on GIO/main memory transactions.
@@ -188,4 +191,18 @@
return (0);
}
+static void
+imc_reset(void *arg)
+{
+ device_t dev;
+ long *scp;
+ long port;
+
+ dev = (device_t)arg;
+ scp = device_get_softc(dev);
+ port = *scp;
+ IMC_WRITE_4(port, IMC_CPU_ERRSTAT, 0);
+ IMC_WRITE_4(port, IMC_GIO_ERRSTAT, 0);
+}
+
DRIVER_MODULE(imc, root, imc_driver, imc_devclass, 0, 0);
More information about the p4-projects
mailing list