Module Name: src
Committed By: mrg
Date: Mon Feb 22 22:28:58 UTC 2010
Modified Files:
src/sys/arch/sparc64/conf: files.sparc64
src/sys/arch/sparc64/sparc64: locore.s
Added Files:
src/sys/arch/sparc64/sparc64: db_tlb_access.S
Log Message:
move {dump,print}_[id]tlb() into a separate file.
To generate a diff of this commit:
cvs rdiff -u -r1.123 -r1.124 src/sys/arch/sparc64/conf/files.sparc64
cvs rdiff -u -r0 -r1.1 src/sys/arch/sparc64/sparc64/db_tlb_access.S
cvs rdiff -u -r1.318 -r1.319 src/sys/arch/sparc64/sparc64/locore.s
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/sparc64/conf/files.sparc64
diff -u src/sys/arch/sparc64/conf/files.sparc64:1.123 src/sys/arch/sparc64/conf/files.sparc64:1.124
--- src/sys/arch/sparc64/conf/files.sparc64:1.123 Tue Jan 12 14:45:50 2010
+++ src/sys/arch/sparc64/conf/files.sparc64 Mon Feb 22 22:28:58 2010
@@ -1,4 +1,4 @@
-# $NetBSD: files.sparc64,v 1.123 2010/01/12 14:45:50 martin Exp $
+# $NetBSD: files.sparc64,v 1.124 2010/02/22 22:28:58 mrg Exp $
# @(#)files.sparc64 8.1 (Berkeley) 7/19/93
# sparc64-specific configuration info
@@ -198,7 +198,7 @@
file arch/sparc64/sparc64/intr.c
file arch/sparc64/sparc64/kgdb_machdep.c kgdb
file arch/sparc64/sparc64/kobj_machdep.c modular
-# sparc/sparc/locore.s is handled specially in the makefile,
+# sparc64/sparc64/locore.s is handled specially in the makefile,
# because it must come first in the "ld" command line.
file arch/sparc64/sparc64/machdep.c
file arch/sparc64/sparc64/process_machdep.c
@@ -216,8 +216,9 @@
file arch/sparc64/sparc64/lock_stubs.s
file arch/sparc64/sparc64/db_interface.c ddb | kgdb
-file arch/sparc64/sparc64/db_trace.c ddb
+file arch/sparc64/sparc64/db_trace.c ddb
file arch/sparc64/sparc64/db_disasm.c ddb
+file arch/sparc64/sparc64/db_tlb_access.S ddb
# USB Support
include "dev/usb/files.usb"
Index: src/sys/arch/sparc64/sparc64/locore.s
diff -u src/sys/arch/sparc64/sparc64/locore.s:1.318 src/sys/arch/sparc64/sparc64/locore.s:1.319
--- src/sys/arch/sparc64/sparc64/locore.s:1.318 Mon Feb 22 00:16:31 2010
+++ src/sys/arch/sparc64/sparc64/locore.s Mon Feb 22 22:28:57 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: locore.s,v 1.318 2010/02/22 00:16:31 mrg Exp $ */
+/* $NetBSD: locore.s,v 1.319 2010/02/22 22:28:57 mrg Exp $ */
/*
* Copyright (c) 1996-2002 Eduardo Horvath
@@ -4333,221 +4333,6 @@
.globl _C_LABEL(endtrapcode)
_C_LABEL(endtrapcode):
-#ifdef DDB
-!!!
-!!! Dump the DTLB to phys address in %o0 and print it
-!!!
-!!! Only toast a few %o registers
-!!!
-
-ENTRY_NOPROFILE(dump_dtlb)
- clr %o1
- add %o1, (64 * 8), %o3 ! XXX TLB_SIZE
-1:
- ldxa [%o1] ASI_DMMU_TLB_TAG, %o2
- membar #Sync
- stx %o2, [%o0]
- membar #Sync
- inc 8, %o0
- ldxa [%o1] ASI_DMMU_TLB_DATA, %o4
- membar #Sync
- inc 8, %o1
- stx %o4, [%o0]
- cmp %o1, %o3
- membar #Sync
- bl 1b
- inc 8, %o0
-
- retl
- nop
-
-ENTRY_NOPROFILE(dump_itlb)
- clr %o1
- add %o1, (64 * 8), %o3 ! XXX TLB_SIZE
-1:
- ldxa [%o1] ASI_IMMU_TLB_TAG, %o2
- membar #Sync
- stx %o2, [%o0]
- membar #Sync
- inc 8, %o0
- ldxa [%o1] ASI_IMMU_TLB_DATA, %o4
- membar #Sync
- inc 8, %o1
- stx %o4, [%o0]
- cmp %o1, %o3
- membar #Sync
- bl 1b
- inc 8, %o0
-
- retl
- nop
-
-#ifdef _LP64
-ENTRY_NOPROFILE(print_dtlb)
- save %sp, -CC64FSZ, %sp
- clr %l1
- add %l1, (64 * 8), %l3 ! XXX TLB_SIZE
- clr %l2
-1:
- ldxa [%l1] ASI_DMMU_TLB_TAG, %o2
- membar #Sync
- mov %l2, %o1
- ldxa [%l1] ASI_DMMU_TLB_DATA, %o3
- membar #Sync
- inc %l2
- set 2f, %o0
- call _C_LABEL(db_printf)
- inc 8, %l1
-
- ldxa [%l1] ASI_DMMU_TLB_TAG, %o2
- membar #Sync
- mov %l2, %o1
- ldxa [%l1] ASI_DMMU_TLB_DATA, %o3
- membar #Sync
- inc %l2
- set 3f, %o0
- call _C_LABEL(db_printf)
- inc 8, %l1
-
- cmp %l1, %l3
- bl 1b
- inc 8, %l0
-
- ret
- restore
-
-
-ENTRY_NOPROFILE(print_itlb)
- save %sp, -CC64FSZ, %sp
- clr %l1
- add %l1, (64 * 8), %l3 ! XXX TLB_SIZE
- clr %l2
-1:
- ldxa [%l1] ASI_IMMU_TLB_TAG, %o2
- membar #Sync
- mov %l2, %o1
- ldxa [%l1] ASI_IMMU_TLB_DATA, %o3
- membar #Sync
- inc %l2
- set 2f, %o0
- call _C_LABEL(db_printf)
- inc 8, %l1
-
- ldxa [%l1] ASI_IMMU_TLB_TAG, %o2
- membar #Sync
- mov %l2, %o1
- ldxa [%l1] ASI_IMMU_TLB_DATA, %o3
- membar #Sync
- inc %l2
- set 3f, %o0
- call _C_LABEL(db_printf)
- inc 8, %l1
-
- cmp %l1, %l3
- bl 1b
- inc 8, %l0
-
- ret
- restore
-
- .data
-2:
- .asciz "%2d:%016lx %016lx "
-3:
- .asciz "%2d:%016lx %016lx\r\n"
- .text
-#else
-ENTRY_NOPROFILE(print_dtlb)
- save %sp, -CC64FSZ, %sp
- clr %l1
- add %l1, (64 * 8), %l3 ! XXX TLB_SIZE
- clr %l2
-1:
- ldxa [%l1] ASI_DMMU_TLB_TAG, %o2
- membar #Sync
- srl %o2, 0, %o3
- mov %l2, %o1
- srax %o2, 32, %o2
- ldxa [%l1] ASI_DMMU_TLB_DATA, %o4
- membar #Sync
- srl %o4, 0, %o5
- inc %l2
- srax %o4, 32, %o4
- set 2f, %o0
- call _C_LABEL(db_printf)
- inc 8, %l1
-
- ldxa [%l1] ASI_DMMU_TLB_TAG, %o2
- membar #Sync
- srl %o2, 0, %o3
- mov %l2, %o1
- srax %o2, 32, %o2
- ldxa [%l1] ASI_DMMU_TLB_DATA, %o4
- membar #Sync
- srl %o4, 0, %o5
- inc %l2
- srax %o4, 32, %o4
- set 3f, %o0
- call _C_LABEL(db_printf)
- inc 8, %l1
-
- cmp %l1, %l3
- bl 1b
- inc 8, %l0
-
- ret
- restore
-
-ENTRY_NOPROFILE(print_itlb)
- save %sp, -CC64FSZ, %sp
- clr %l1
- add %l1, (64 * 8), %l3 ! XXX TLB_SIZE
- clr %l2
-1:
- ldxa [%l1] ASI_IMMU_TLB_TAG, %o2
- membar #Sync
- srl %o2, 0, %o3
- mov %l2, %o1
- srax %o2, 32, %o2
- ldxa [%l1] ASI_IMMU_TLB_DATA, %o4
- membar #Sync
- srl %o4, 0, %o5
- inc %l2
- srax %o4, 32, %o4
- set 2f, %o0
- call _C_LABEL(db_printf)
- inc 8, %l1
-
- ldxa [%l1] ASI_IMMU_TLB_TAG, %o2
- membar #Sync
- srl %o2, 0, %o3
- mov %l2, %o1
- srax %o2, 32, %o2
- ldxa [%l1] ASI_IMMU_TLB_DATA, %o4
- membar #Sync
- srl %o4, 0, %o5
- inc %l2
- srax %o4, 32, %o4
- set 3f, %o0
- call _C_LABEL(db_printf)
- inc 8, %l1
-
- cmp %l1, %l3
- bl 1b
- inc 8, %l0
-
- ret
- restore
-
- .data
-2:
- .asciz "%2d:%08x:%08x %08x:%08x "
-3:
- .asciz "%2d:%08x:%08x %08x:%08x\r\n"
- .text
-#endif
-#endif
-
/*
* Kernel entry point.
*
Added files:
Index: src/sys/arch/sparc64/sparc64/db_tlb_access.S
diff -u /dev/null src/sys/arch/sparc64/sparc64/db_tlb_access.S:1.1
--- /dev/null Mon Feb 22 22:28:58 2010
+++ src/sys/arch/sparc64/sparc64/db_tlb_access.S Mon Feb 22 22:28:58 2010
@@ -0,0 +1,246 @@
+/* $NetBSD: db_tlb_access.S,v 1.1 2010/02/22 22:28:58 mrg Exp $ */
+
+/*
+ * Copyright (c) 1996-2002 Eduardo Horvath
+ * 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.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 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.
+ *
+ */
+
+#include "opt_ddb.h"
+
+#include <machine/ctlreg.h>
+#include <machine/asm.h>
+
+#ifdef DDB
+!!!
+!!! Dump the DTLB to phys address in %o0 and print it
+!!!
+!!! Only toast a few %o registers
+!!!
+
+ENTRY_NOPROFILE(dump_dtlb)
+ clr %o1
+ add %o1, (64 * 8), %o3 ! XXX TLB_SIZE
+1:
+ ldxa [%o1] ASI_DMMU_TLB_TAG, %o2
+ membar #Sync
+ stx %o2, [%o0]
+ membar #Sync
+ inc 8, %o0
+ ldxa [%o1] ASI_DMMU_TLB_DATA, %o4
+ membar #Sync
+ inc 8, %o1
+ stx %o4, [%o0]
+ cmp %o1, %o3
+ membar #Sync
+ bl 1b
+ inc 8, %o0
+
+ retl
+ nop
+
+ENTRY_NOPROFILE(dump_itlb)
+ clr %o1
+ add %o1, (64 * 8), %o3 ! XXX TLB_SIZE
+1:
+ ldxa [%o1] ASI_IMMU_TLB_TAG, %o2
+ membar #Sync
+ stx %o2, [%o0]
+ membar #Sync
+ inc 8, %o0
+ ldxa [%o1] ASI_IMMU_TLB_DATA, %o4
+ membar #Sync
+ inc 8, %o1
+ stx %o4, [%o0]
+ cmp %o1, %o3
+ membar #Sync
+ bl 1b
+ inc 8, %o0
+
+ retl
+ nop
+
+#ifdef _LP64
+ENTRY_NOPROFILE(print_dtlb)
+ save %sp, -CC64FSZ, %sp
+ clr %l1
+ add %l1, (64 * 8), %l3 ! XXX TLB_SIZE
+ clr %l2
+1:
+ ldxa [%l1] ASI_DMMU_TLB_TAG, %o2
+ membar #Sync
+ mov %l2, %o1
+ ldxa [%l1] ASI_DMMU_TLB_DATA, %o3
+ membar #Sync
+ inc %l2
+ set 2f, %o0
+ call _C_LABEL(db_printf)
+ inc 8, %l1
+
+ ldxa [%l1] ASI_DMMU_TLB_TAG, %o2
+ membar #Sync
+ mov %l2, %o1
+ ldxa [%l1] ASI_DMMU_TLB_DATA, %o3
+ membar #Sync
+ inc %l2
+ set 3f, %o0
+ call _C_LABEL(db_printf)
+ inc 8, %l1
+
+ cmp %l1, %l3
+ bl 1b
+ inc 8, %l0
+
+ ret
+ restore
+
+
+ENTRY_NOPROFILE(print_itlb)
+ save %sp, -CC64FSZ, %sp
+ clr %l1
+ add %l1, (64 * 8), %l3 ! XXX TLB_SIZE
+ clr %l2
+1:
+ ldxa [%l1] ASI_IMMU_TLB_TAG, %o2
+ membar #Sync
+ mov %l2, %o1
+ ldxa [%l1] ASI_IMMU_TLB_DATA, %o3
+ membar #Sync
+ inc %l2
+ set 2f, %o0
+ call _C_LABEL(db_printf)
+ inc 8, %l1
+
+ ldxa [%l1] ASI_IMMU_TLB_TAG, %o2
+ membar #Sync
+ mov %l2, %o1
+ ldxa [%l1] ASI_IMMU_TLB_DATA, %o3
+ membar #Sync
+ inc %l2
+ set 3f, %o0
+ call _C_LABEL(db_printf)
+ inc 8, %l1
+
+ cmp %l1, %l3
+ bl 1b
+ inc 8, %l0
+
+ ret
+ restore
+
+ .data
+2:
+ .asciz "%2d:%016lx %016lx "
+3:
+ .asciz "%2d:%016lx %016lx\r\n"
+ .text
+#else
+ENTRY_NOPROFILE(print_dtlb)
+ save %sp, -CC64FSZ, %sp
+ clr %l1
+ add %l1, (64 * 8), %l3 ! XXX TLB_SIZE
+ clr %l2
+1:
+ ldxa [%l1] ASI_DMMU_TLB_TAG, %o2
+ membar #Sync
+ srl %o2, 0, %o3
+ mov %l2, %o1
+ srax %o2, 32, %o2
+ ldxa [%l1] ASI_DMMU_TLB_DATA, %o4
+ membar #Sync
+ srl %o4, 0, %o5
+ inc %l2
+ srax %o4, 32, %o4
+ set 2f, %o0
+ call _C_LABEL(db_printf)
+ inc 8, %l1
+
+ ldxa [%l1] ASI_DMMU_TLB_TAG, %o2
+ membar #Sync
+ srl %o2, 0, %o3
+ mov %l2, %o1
+ srax %o2, 32, %o2
+ ldxa [%l1] ASI_DMMU_TLB_DATA, %o4
+ membar #Sync
+ srl %o4, 0, %o5
+ inc %l2
+ srax %o4, 32, %o4
+ set 3f, %o0
+ call _C_LABEL(db_printf)
+ inc 8, %l1
+
+ cmp %l1, %l3
+ bl 1b
+ inc 8, %l0
+
+ ret
+ restore
+
+ENTRY_NOPROFILE(print_itlb)
+ save %sp, -CC64FSZ, %sp
+ clr %l1
+ add %l1, (64 * 8), %l3 ! XXX TLB_SIZE
+ clr %l2
+1:
+ ldxa [%l1] ASI_IMMU_TLB_TAG, %o2
+ membar #Sync
+ srl %o2, 0, %o3
+ mov %l2, %o1
+ srax %o2, 32, %o2
+ ldxa [%l1] ASI_IMMU_TLB_DATA, %o4
+ membar #Sync
+ srl %o4, 0, %o5
+ inc %l2
+ srax %o4, 32, %o4
+ set 2f, %o0
+ call _C_LABEL(db_printf)
+ inc 8, %l1
+
+ ldxa [%l1] ASI_IMMU_TLB_TAG, %o2
+ membar #Sync
+ srl %o2, 0, %o3
+ mov %l2, %o1
+ srax %o2, 32, %o2
+ ldxa [%l1] ASI_IMMU_TLB_DATA, %o4
+ membar #Sync
+ srl %o4, 0, %o5
+ inc %l2
+ srax %o4, 32, %o4
+ set 3f, %o0
+ call _C_LABEL(db_printf)
+ inc 8, %l1
+
+ cmp %l1, %l3
+ bl 1b
+ inc 8, %l0
+
+ ret
+ restore
+
+ .data
+2:
+ .asciz "%2d:%08x:%08x %08x:%08x "
+3:
+ .asciz "%2d:%08x:%08x %08x:%08x\r\n"
+ .text
+#endif
+#endif