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