Source-Changes-HG archive

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

[src/netbsd-2-0]: src/sys/arch/sgimips/dev Pull up revision 1.17 (requested b...



details:   https://anonhg.NetBSD.org/src/rev/088190ae220b
branches:  netbsd-2-0
changeset: 560888:088190ae220b
user:      tron <tron%NetBSD.org@localhost>
date:      Tue May 11 12:37:09 2004 +0000

description:
Pull up revision 1.17 (requested by sekiya in ticket #285):
Hook the IMC bus error handler into the ISR, otherwise bus error conditions
won't be properly dealt with.

diffstat:

 sys/arch/sgimips/dev/imc.c |  14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

diffs (49 lines):

diff -r 36a88c609c69 -r 088190ae220b sys/arch/sgimips/dev/imc.c
--- a/sys/arch/sgimips/dev/imc.c        Tue May 11 12:35:46 2004 +0000
+++ b/sys/arch/sgimips/dev/imc.c        Tue May 11 12:37:09 2004 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: imc.c,v 1.16 2004/01/18 13:11:18 sekiya Exp $  */
+/*     $NetBSD: imc.c,v 1.16.2.1 2004/05/11 12:37:09 tron Exp $        */
 
 /*
  * Copyright (c) 2001 Rafal K. Boni
@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: imc.c,v 1.16 2004/01/18 13:11:18 sekiya Exp $");
+__KERNEL_RCSID(0, "$NetBSD: imc.c,v 1.16.2.1 2004/05/11 12:37:09 tron Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -58,7 +58,7 @@
 static void    imc_attach(struct device *, struct device *, void *);
 static int     imc_print(void *, const char *);
 void           imc_bus_reset(void);
-void           imc_bus_error(void);
+void           imc_bus_error(u_int32_t, u_int32_t, u_int32_t, u_int32_t);
 void           imc_watchdog_reset(void);
 void           imc_watchdog_disable(void);
 void           imc_watchdog_enable(void);
@@ -132,8 +132,10 @@
        printf("\n");
 
        /* Clear CPU/GIO error status registers to clear any leftover bits. */
-       bus_space_write_4(isc.iot, isc.ioh, IMC_CPU_ERRSTAT, 0);
-       bus_space_write_4(isc.iot, isc.ioh, IMC_GIO_ERRSTAT, 0);
+       imc_bus_reset();
+
+       /* Hook the bus error handler into the ISR */
+       platform.intr4 = imc_bus_error;
 
        /*
         * Enable parity reporting on GIO/main memory transactions.
@@ -249,7 +251,7 @@
 }
 
 void
-imc_bus_error(void)
+imc_bus_error(u_int32_t status, u_int32_t cause, u_int32_t pc, u_int32_t ipending)
 {
        printf("bus error: cpu_stat %08x addr %08x, gio_stat %08x addr %08x\n",
                        bus_space_read_4(isc.iot, isc.ioh, IMC_CPU_ERRSTAT),



Home | Main Index | Thread Index | Old Index