Module Name: src Committed By: rin Date: Sat May 7 07:10:47 UTC 2022
Modified Files: src/sys/arch/powerpc/conf: files.powerpc src/sys/arch/powerpc/include: pmap.h src/sys/arch/powerpc/include/oea: pmap.h Log Message: Try to fix PV tracking support. * For oea (with real PV tracking support): Define __HAVE_PMAP_PV_TRACK. Otherwise, pmap_pv_init() is not called by uvm_init(). * For booke and ibm4xx (without PV tracking support): For MODULAR kernel and modules, define __HAVE_PMAP_PV_TRACK together with PMAP_PV_TRACK_ONLY_STUBS, so that modules can be shared with oea. Note that PMAP_PV_TRACK_ONLY_STUBS can be used even for oea, as a compile-time option to strip real PV tracking support. To generate a diff of this commit: cvs rdiff -u -r1.100 -r1.101 src/sys/arch/powerpc/conf/files.powerpc cvs rdiff -u -r1.41 -r1.42 src/sys/arch/powerpc/include/pmap.h cvs rdiff -u -r1.36 -r1.37 src/sys/arch/powerpc/include/oea/pmap.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/powerpc/conf/files.powerpc diff -u src/sys/arch/powerpc/conf/files.powerpc:1.100 src/sys/arch/powerpc/conf/files.powerpc:1.101 --- src/sys/arch/powerpc/conf/files.powerpc:1.100 Thu Feb 17 16:09:00 2022 +++ src/sys/arch/powerpc/conf/files.powerpc Sat May 7 07:10:46 2022 @@ -1,4 +1,4 @@ -# $NetBSD: files.powerpc,v 1.100 2022/02/17 16:09:00 macallan Exp $ +# $NetBSD: files.powerpc,v 1.101 2022/05/07 07:10:46 rin Exp $ defflag opt_altivec.h ALTIVEC K_ALTIVEC PPC_HAVE_SPE defflag opt_openpic.h OPENPIC_DISTRIBUTE @@ -32,6 +32,8 @@ file arch/powerpc/powerpc/db_trace.c d file arch/powerpc/powerpc/fpu.c file arch/powerpc/powerpc/intr_stubs.c ppc_booke +file uvm/pmap/pmap_pvt.c modular | (ppc_oea | ppc_oea64 | ppc_oea64_bridge | ppc_oea601) + # IBM 4xx Family files (40x) file arch/powerpc/ibm4xx/pmap.c ppc_ibm4xx file arch/powerpc/ibm4xx/trap.c ppc_ibm4xx @@ -51,7 +53,6 @@ file arch/powerpc/oea/pmap64.c ppc_oea file arch/powerpc/oea/pmap64_bridge.c ppc_oea64_bridge file arch/powerpc/oea/pmap_kernel.c ppc_oea | ppc_oea64 | ppc_oea64_bridge | ppc_oea601 file arch/powerpc/powerpc/trap.c ppc_oea | ppc_oea64 | ppc_oea64_bridge | ppc_oea601 -file uvm/pmap/pmap_pvt.c ppc_oea | ppc_oea64 | ppc_oea64_bridge | ppc_oea601 # PPC BookE (MPC85xx) Family files file arch/powerpc/booke/booke_machdep.c ppc_booke Index: src/sys/arch/powerpc/include/pmap.h diff -u src/sys/arch/powerpc/include/pmap.h:1.41 src/sys/arch/powerpc/include/pmap.h:1.42 --- src/sys/arch/powerpc/include/pmap.h:1.41 Wed Feb 16 23:31:13 2022 +++ src/sys/arch/powerpc/include/pmap.h Sat May 7 07:10:46 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.41 2022/02/16 23:31:13 riastradh Exp $ */ +/* $NetBSD: pmap.h,v 1.42 2022/05/07 07:10:46 rin Exp $ */ #ifndef _POWERPC_PMAP_H_ #define _POWERPC_PMAP_H_ @@ -22,8 +22,6 @@ #endif /* !_MODULE */ -#include <uvm/pmap/pmap_pvt.h> - #if !defined(_LOCORE) && (defined(MODULAR) || defined(_MODULE)) /* * Both BOOKE and OEA use __HAVE_VM_PAGE_MD but IBM4XX doesn't so define @@ -41,6 +39,15 @@ struct vm_page_md { __CTASSERT(sizeof(struct vm_page_md) == sizeof(uintptr_t)*5); +#ifndef __HAVE_PMAP_PV_TRACK +/* + * We need empty stubs for modules shared with all sub-archs. + */ +#define __HAVE_PMAP_PV_TRACK +#define PMAP_PV_TRACK_ONLY_STUBS +#include <uvm/pmap/pmap_pvt.h> +#endif /* !__HAVE_PMAP_PV_TRACK */ + #endif /* !LOCORE && (MODULAR || _MODULE) */ #endif /* !_POWERPC_PMAP_H_ */ Index: src/sys/arch/powerpc/include/oea/pmap.h diff -u src/sys/arch/powerpc/include/oea/pmap.h:1.36 src/sys/arch/powerpc/include/oea/pmap.h:1.37 --- src/sys/arch/powerpc/include/oea/pmap.h:1.36 Wed Feb 16 23:31:13 2022 +++ src/sys/arch/powerpc/include/oea/pmap.h Sat May 7 07:10:46 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: pmap.h,v 1.36 2022/02/16 23:31:13 riastradh Exp $ */ +/* $NetBSD: pmap.h,v 1.37 2022/05/07 07:10:46 rin Exp $ */ /*- * Copyright (C) 1995, 1996 Wolfgang Solfrank. @@ -48,6 +48,9 @@ #endif #include <powerpc/oea/pte.h> +#define __HAVE_PMAP_PV_TRACK +#include <uvm/pmap/pmap_pvt.h> + /* * Pmap stuff */