Module Name:    src
Committed By:   skrll
Date:           Mon May  2 10:13:16 UTC 2022

Modified Files:
        src/sys/arch/aarch64/aarch64: db_machdep.c
        src/sys/arch/aarch64/include: armreg.h

Log Message:
Only print the appropriate PAR fields for PAR.F={0,1}

Group the fields in the header.


To generate a diff of this commit:
cvs rdiff -u -r1.42 -r1.43 src/sys/arch/aarch64/aarch64/db_machdep.c
cvs rdiff -u -r1.60 -r1.61 src/sys/arch/aarch64/include/armreg.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/aarch64/aarch64/db_machdep.c
diff -u src/sys/arch/aarch64/aarch64/db_machdep.c:1.42 src/sys/arch/aarch64/aarch64/db_machdep.c:1.43
--- src/sys/arch/aarch64/aarch64/db_machdep.c:1.42	Sun Oct 31 16:23:47 2021
+++ src/sys/arch/aarch64/aarch64/db_machdep.c	Mon May  2 10:13:15 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: db_machdep.c,v 1.42 2021/10/31 16:23:47 skrll Exp $ */
+/* $NetBSD: db_machdep.c,v 1.43 2022/05/02 10:13:15 skrll Exp $ */
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: db_machdep.c,v 1.42 2021/10/31 16:23:47 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: db_machdep.c,v 1.43 2022/05/02 10:13:15 skrll Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_compat_netbsd32.h"
@@ -456,17 +456,29 @@ db_par_print(uint64_t par, vaddr_t va)
 	paddr_t pa = (__SHIFTOUT(par, PAR_PA) << PAR_PA_SHIFT) +
 	    (va & __BITS(PAR_PA_SHIFT - 1, 0));
 
-	db_printf("%016"PRIx64": ATTR=0x%02lx, NS=%ld, S=%ld, SHA=%ld, PTW=%ld"
-	    ", FST=%ld, F=%ld, PA=%016"PRIxPADDR"\n",
-	    par,
-	    __SHIFTOUT(par, PAR_ATTR),
-	    __SHIFTOUT(par, PAR_NS),
-	    __SHIFTOUT(par, PAR_S),
-	    __SHIFTOUT(par, PAR_SHA),
-	    __SHIFTOUT(par, PAR_PTW),
-	    __SHIFTOUT(par, PAR_FST),
-	    __SHIFTOUT(par, PAR_F),
-	    pa);
+	if (__SHIFTOUT(par, PAR_F) == 0) {
+		db_printf("%016" PRIx64
+		    ": ATTR=0x%02" __PRIxBITS
+		    ", NS=%" __PRIuBITS
+		    ", SH=%" __PRIuBITS
+		    ", PA=%016" PRIxPADDR
+		    " (no fault)\n",
+		    par,
+		    __SHIFTOUT(par, PAR_ATTR),
+		    __SHIFTOUT(par, PAR_NS),
+		    __SHIFTOUT(par, PAR_SH),
+		    pa);
+	} else {
+		db_printf("%016" PRIx64
+		    ", S=%" __PRIuBITS
+		    ", PTW=%" __PRIuBITS
+		    ", FST=%" __PRIuBITS
+		    " (fault)\n",
+		    par,
+		    __SHIFTOUT(par, PAR_S),
+		    __SHIFTOUT(par, PAR_PTW),
+		    __SHIFTOUT(par, PAR_FST));
+	}
 }
 
 void

Index: src/sys/arch/aarch64/include/armreg.h
diff -u src/sys/arch/aarch64/include/armreg.h:1.60 src/sys/arch/aarch64/include/armreg.h:1.61
--- src/sys/arch/aarch64/include/armreg.h:1.60	Wed Jan  5 19:53:32 2022
+++ src/sys/arch/aarch64/include/armreg.h	Mon May  2 10:13:15 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: armreg.h,v 1.60 2022/01/05 19:53:32 ryo Exp $ */
+/* $NetBSD: armreg.h,v 1.61 2022/05/02 10:13:15 skrll Exp $ */
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -788,11 +788,12 @@ AARCH64REG_WRITE_INLINE(par_el1)
 #define	PAR_PA			__BITS(51,12)	// F=0 physical address
 #define	PAR_PA_SHIFT		12
 #define	PAR_NS			__BIT(9)	// F=0 non-secure
+#define	PAR_SH			__BITS(8,7)	// F=0 shareability attribute
+#define	 PAR_SH_NONE		 0
+#define	 PAR_SH_OUTER		 2
+#define	 PAR_SH_INNER		 3
+
 #define	PAR_S			__BIT(9)	// F=1 failure stage
-#define	PAR_SHA			__BITS(8,7)	// F=0 shareability attribute
-#define	 PAR_SHA_NONE		 0
-#define	 PAR_SHA_OUTER		 2
-#define	 PAR_SHA_INNER		 3
 #define	PAR_PTW			__BIT(8)	// F=1 partial table walk
 #define	PAR_FST			__BITS(6,1)	// F=1 fault status code
 #define	PAR_F			__BIT(0)	// translation failed

Reply via email to