Module Name: src
Committed By: thorpej
Date: Sat Jan 13 19:20:26 UTC 2024
Modified Files:
src/sys/arch/hp300/conf: files.hp300
src/sys/arch/hp300/hp300: locore.s
src/sys/arch/hp300/include: cpu.h
Added Files:
src/sys/arch/hp300/include: vectors.h
Removed Files:
src/sys/arch/hp300/hp300: vectors.s
Log Message:
Switch hp300 over to the common m68k vector table.
To generate a diff of this commit:
cvs rdiff -u -r1.93 -r1.94 src/sys/arch/hp300/conf/files.hp300
cvs rdiff -u -r1.179 -r1.180 src/sys/arch/hp300/hp300/locore.s
cvs rdiff -u -r1.19 -r0 src/sys/arch/hp300/hp300/vectors.s
cvs rdiff -u -r1.74 -r1.75 src/sys/arch/hp300/include/cpu.h
cvs rdiff -u -r0 -r1.1 src/sys/arch/hp300/include/vectors.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/hp300/conf/files.hp300
diff -u src/sys/arch/hp300/conf/files.hp300:1.93 src/sys/arch/hp300/conf/files.hp300:1.94
--- src/sys/arch/hp300/conf/files.hp300:1.93 Tue Jan 9 04:16:24 2024
+++ src/sys/arch/hp300/conf/files.hp300 Sat Jan 13 19:20:26 2024
@@ -1,4 +1,4 @@
-# $NetBSD: files.hp300,v 1.93 2024/01/09 04:16:24 thorpej Exp $
+# $NetBSD: files.hp300,v 1.94 2024/01/13 19:20:26 thorpej Exp $
#
# hp300-specific configuration info
@@ -224,6 +224,7 @@ file arch/m68k/m68k/mmu_subr.s
file arch/m68k/m68k/pmap_motorola.c
file arch/m68k/m68k/procfs_machdep.c procfs
file arch/m68k/m68k/sys_machdep.c
+file arch/m68k/m68k/vectors.c
file arch/m68k/m68k/vm_machdep.c
file dev/cons.c
Index: src/sys/arch/hp300/hp300/locore.s
diff -u src/sys/arch/hp300/hp300/locore.s:1.179 src/sys/arch/hp300/hp300/locore.s:1.180
--- src/sys/arch/hp300/hp300/locore.s:1.179 Tue Jan 9 07:28:25 2024
+++ src/sys/arch/hp300/hp300/locore.s Sat Jan 13 19:20:26 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.179 2024/01/09 07:28:25 thorpej Exp $ */
+/* $NetBSD: locore.s,v 1.180 2024/01/13 19:20:26 thorpej Exp $ */
/*
* Copyright (c) 1980, 1990, 1993
@@ -128,8 +128,6 @@ GLOBAL(kernel_text)
.space PAGE_SIZE
ASLOCAL(tmpstk)
-#include <hp300/hp300/vectors.s>
-
/*
* Macro to relocate a symbol, used before MMU is enabled.
*/
@@ -370,36 +368,6 @@ Lis320:
*/
Lstart1:
- /*
- * Now that we know what CPU we have, initialize the address error
- * and bus error handlers in the vector table:
- *
- * vectab+8 bus error
- * vectab+12 address error
- */
- RELOC(cputype, %a0)
- movl #_C_LABEL(vectab),%a2
- addl %a5,%a2
-#if defined(M68040)
- cmpl #CPU_68040,%a0@ | 68040?
- jne 1f | no, skip
- movl #_C_LABEL(buserr40),%a2@(8)
- movl #_C_LABEL(addrerr4060),%a2@(12)
- jra Lstart2
-1:
-#endif
-#if defined(M68020) || defined(M68030)
- cmpl #CPU_68040,%a0@ | 68040?
- jeq 1f | yes, skip
- movl #_C_LABEL(busaddrerr2030),%a2@(8)
- movl #_C_LABEL(busaddrerr2030),%a2@(12)
- jra Lstart2
-1:
-#endif
- /* Config botch; no hope. */
- DOREBOOT
-
-Lstart2:
movl #0,%a1@(MMUCMD) | clear out MMU again
/* initialize source/destination control registers for movs */
moveq #FC_USERD,%d0 | user space
@@ -493,13 +461,6 @@ Lcodecopy:
*/
Lhighcode:
- /*
- * Set up the vector table, and race to get the MMU
- * enabled.
- */
- movl #_C_LABEL(vectab),%d0 | set Vector Base Register
- movc %d0,%vbr
-
RELOC(mmutype, %a0)
tstl %a0@ | HP MMU?
jeq Lhpmmu3 | yes, skip
@@ -542,7 +503,8 @@ Lehighcode:
* Should be running mapped from this point on
*/
Lenab1:
- lea _ASM_LABEL(tmpstk),%sp | temporary stack
+ lea _ASM_LABEL(tmpstk),%sp | re-load the temporary stack
+ jbsr _C_LABEL(vec_init) | initialize the vector table
/* call final pmap setup */
jbsr _C_LABEL(pmap_bootstrap_finalize)
/* set kernel stack, user SP */
Index: src/sys/arch/hp300/include/cpu.h
diff -u src/sys/arch/hp300/include/cpu.h:1.74 src/sys/arch/hp300/include/cpu.h:1.75
--- src/sys/arch/hp300/include/cpu.h:1.74 Tue Jan 9 04:16:24 2024
+++ src/sys/arch/hp300/include/cpu.h Sat Jan 13 19:20:26 2024
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.74 2024/01/09 04:16:24 thorpej Exp $ */
+/* $NetBSD: cpu.h,v 1.75 2024/01/13 19:20:26 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -116,7 +116,6 @@ extern int astpending; /* need to trap
*/
extern uint8_t *intiobase, *intiolimit, *extiobase;
-extern void (*vectab[])(void);
/* locore.s functions */
void doboot(void) __attribute__((__noreturn__));
Added files:
Index: src/sys/arch/hp300/include/vectors.h
diff -u /dev/null src/sys/arch/hp300/include/vectors.h:1.1
--- /dev/null Sat Jan 13 19:20:26 2024
+++ src/sys/arch/hp300/include/vectors.h Sat Jan 13 19:20:26 2024
@@ -0,0 +1,50 @@
+/* $NetBSD: vectors.h,v 1.1 2024/01/13 19:20:26 thorpej Exp $ */
+
+/*-
+ * Copyright (c) 2024 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code is derived from software contributed to The NetBSD Foundation
+ * by Jason R. Thorpe.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+ * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef _HP300_VECTORS_H_
+#define _HP300_VECTORS_H_
+
+#ifdef _KERNEL
+
+#include <m68k/vectors.h>
+
+#define MACHINE_AV0_HANDLER spurintr
+#define MACHINE_AV1_HANDLER intrhand
+#define MACHINE_AV2_HANDLER intrhand
+#define MACHINE_AV3_HANDLER intrhand
+#define MACHINE_AV4_HANDLER intrhand
+#define MACHINE_AV5_HANDLER intrhand
+#define MACHINE_AV6_HANDLER lev6intr
+#define MACHINE_AV7_HANDLER lev7intr
+
+#endif /* _KERNEL */
+
+#endif /* _HP300_VECTORS_H_ */