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