svn commit: r268311 - in projects/arm64/sys: arm64/arm64 conf

Andrew Turner andrew at FreeBSD.org
Sun Jul 6 13:48:16 UTC 2014


Author: andrew
Date: Sun Jul  6 13:48:15 2014
New Revision: 268311
URL: http://svnweb.freebsd.org/changeset/base/268311

Log:
  Move to exception.S. This contains the vector to handle the exceptions
  we can configure at EL1.

Added:
  projects/arm64/sys/arm64/arm64/exception.S   (contents, props changed)
Deleted:
  projects/arm64/sys/arm64/arm64/exception.c
Modified:
  projects/arm64/sys/conf/files.arm64

Added: projects/arm64/sys/arm64/arm64/exception.S
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ projects/arm64/sys/arm64/arm64/exception.S	Sun Jul  6 13:48:15 2014	(r268311)
@@ -0,0 +1,93 @@
+/*-
+ * Copyright (c) 2014 Andrew Turner
+ * All rights reserved.
+ *
+ * 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 AUTHOR 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 AUTHOR 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.
+ *
+ */
+
+/*
+ * Interrupt counters for vmstat.
+ * TODO: These could live in a .c file.
+ */
+	.data
+	.globl intrcnt
+	.globl sintrcnt
+	.globl intrnames
+	.globl sintrnames
+
+intrnames:
+	.space	8
+sintrnames:
+	.quad	8
+intrcnt:
+	.space	8 * 8 /* u_long[8] */
+sintrcnt:
+	.quad	8
+
+	.text
+#define	EMIT(x)			\
+	mov	x0, x;		\
+	mov	x1, 0x1c090000; \
+	str	x0, [x1];
+
+.macro	vempty
+	.align 7
+	EMIT('Z');
+	1: b	1b
+.endm
+
+.macro	el1h_sync
+	.align 7
+	EMIT('B');
+	1: b	1b
+.endm
+
+.macro	el1h_error
+	.align 7
+	EMIT('C');
+	1: b	1b
+.endm
+
+	.align 11
+	.globl exception_vectors
+exception_vectors:
+	vempty		/* Synchronous EL1t */
+	vempty		/* IRQ EL1t */
+	vempty		/* FIQ EL1t */
+	vempty		/* Error EL1t */
+
+	el1h_sync	/* Synchronous EL1h */
+	vempty		/* IRQ EL1h */
+	vempty		/* FIQ EL1h */
+	el1h_error	/* Error EL1h */
+
+	vempty		/* Synchronous 64-bit EL0 */
+	vempty		/* IRQ 64-bit EL0 */
+	vempty		/* FIQ 64-bit EL0 */
+	vempty		/* Error 64-bit EL0 */
+
+	vempty		/* Synchronous 32-bit EL0 */
+	vempty		/* IRQ 32-bit EL0 */
+	vempty		/* FIQ 32-bit EL0 */
+	vempty		/* Error 32-bit EL0 */
+

Modified: projects/arm64/sys/conf/files.arm64
==============================================================================
--- projects/arm64/sys/conf/files.arm64	Sun Jul  6 10:24:06 2014	(r268310)
+++ projects/arm64/sys/conf/files.arm64	Sun Jul  6 13:48:15 2014	(r268311)
@@ -6,7 +6,7 @@ arm64/arm64/copyinout.c		standard
 arm64/arm64/copystr.c		standard
 arm64/arm64/dump_machdep.c	standard
 arm64/arm64/elf_machdep.c	standard
-arm64/arm64/exception.c		standard
+arm64/arm64/exception.S		standard
 arm64/arm64/identcpu.c		standard
 arm64/arm64/in_cksum.c		optional	inet | inet6
 arm64/arm64/locore.S		standard	no-obj


More information about the svn-src-projects mailing list