summaryrefslogtreecommitdiff
path: root/sys/arch/mvme88k/mvme88k/m197_machdep.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/mvme88k/mvme88k/m197_machdep.c')
-rw-r--r--sys/arch/mvme88k/mvme88k/m197_machdep.c22
1 files changed, 4 insertions, 18 deletions
diff --git a/sys/arch/mvme88k/mvme88k/m197_machdep.c b/sys/arch/mvme88k/mvme88k/m197_machdep.c
index a2ae7d4b909..1cf9e2786d4 100644
--- a/sys/arch/mvme88k/mvme88k/m197_machdep.c
+++ b/sys/arch/mvme88k/mvme88k/m197_machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: m197_machdep.c,v 1.7 2005/04/30 16:42:37 miod Exp $ */
+/* $OpenBSD: m197_machdep.c,v 1.8 2006/04/13 21:16:17 miod Exp $ */
/*
* Copyright (c) 1998, 1999, 2000, 2001 Steve Murphree, Jr.
* Copyright (c) 1996 Nivas Madhur
@@ -67,7 +67,6 @@ u_int m197_getipl(void);
vaddr_t m197_memsize(void);
u_int m197_raiseipl(u_int);
u_int m197_setipl(u_int);
-void m197_setupiackvectors(void);
void m197_startup(void);
vaddr_t obiova;
@@ -147,21 +146,6 @@ m197_startup()
panic("obiova %lx: OBIO not free", obiova);
}
-void
-m197_setupiackvectors()
-{
- u_int8_t *vaddr = (u_int8_t *)M197_IACK;
-
- ivec[0] = vaddr + 0x03; /* We dont use level 0 */
- ivec[1] = vaddr + 0x07;
- ivec[2] = vaddr + 0x0b;
- ivec[3] = vaddr + 0x0f;
- ivec[4] = vaddr + 0x13;
- ivec[5] = vaddr + 0x17;
- ivec[6] = vaddr + 0x1b;
- ivec[7] = vaddr + 0x1f;
-}
-
/*
* Device interrupt handler for MVME197
*/
@@ -173,6 +157,7 @@ m197_ext_int(u_int v, struct trapframe *eframe)
struct intrhand *intr;
intrhand_t *list;
int ret;
+ vaddr_t ivec;
u_int8_t vec;
mask = *(u_int8_t *)M197_IMASK & 0x07;
@@ -183,7 +168,8 @@ m197_ext_int(u_int v, struct trapframe *eframe)
} else {
level = *(u_int8_t *)M197_ILEVEL & 0x07;
/* generate IACK and get the vector */
- vec = *ivec[level];
+ ivec = M197_IACK + (level << 2) + 0x03;
+ vec = *(volatile u_int8_t *)ivec;
}
uvmexp.intrs++;