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