Module Name: src
Committed By: skrll
Date: Sun Jul 27 21:31:34 UTC 2014
Modified Files:
src/sys/arch/arm/arm: cpufunc.c
src/sys/arch/arm/include/arm32: pmap.h vmparam.h
Log Message:
More fixes as a step towards ARM_MMU_EXTENDED on RPI.
- don't set CPU_CONTROL_SYST_ENABLE in arm11x6_setup for ARM_MMU_EXTENDED
- Use the new MMU defines for V6N
- pull in arm/cpuconf.h in vmparam s that VM_MAXUSER_ADDRESS gets set
correctly.
To generate a diff of this commit:
cvs rdiff -u -r1.147 -r1.148 src/sys/arch/arm/arm/cpufunc.c
cvs rdiff -u -r1.133 -r1.134 src/sys/arch/arm/include/arm32/pmap.h
cvs rdiff -u -r1.34 -r1.35 src/sys/arch/arm/include/arm32/vmparam.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/arm/arm/cpufunc.c
diff -u src/sys/arch/arm/arm/cpufunc.c:1.147 src/sys/arch/arm/arm/cpufunc.c:1.148
--- src/sys/arch/arm/arm/cpufunc.c:1.147 Fri Apr 18 23:50:59 2014
+++ src/sys/arch/arm/arm/cpufunc.c Sun Jul 27 21:31:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: cpufunc.c,v 1.147 2014/04/18 23:50:59 christos Exp $ */
+/* $NetBSD: cpufunc.c,v 1.148 2014/07/27 21:31:34 skrll Exp $ */
/*
* arm7tdmi support code Copyright (c) 2001 John Fremlin
@@ -49,7 +49,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpufunc.c,v 1.147 2014/04/18 23:50:59 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpufunc.c,v 1.148 2014/07/27 21:31:34 skrll Exp $");
#include "opt_compat_netbsd.h"
#include "opt_cpuoptions.h"
@@ -3153,10 +3153,11 @@ arm11x6_setup(char *args)
CPU_CONTROL_32BP_ENABLE |
CPU_CONTROL_32BD_ENABLE |
CPU_CONTROL_LABT_ENABLE |
- CPU_CONTROL_SYST_ENABLE |
CPU_CONTROL_UNAL_ENABLE |
#ifdef ARM_MMU_EXTENDED
CPU_CONTROL_XP_ENABLE |
+#else
+ CPU_CONTROL_SYST_ENABLE |
#endif
CPU_CONTROL_IC_ENABLE;
Index: src/sys/arch/arm/include/arm32/pmap.h
diff -u src/sys/arch/arm/include/arm32/pmap.h:1.133 src/sys/arch/arm/include/arm32/pmap.h:1.134
--- src/sys/arch/arm/include/arm32/pmap.h:1.133 Sun Jun 15 03:27:46 2014
+++ src/sys/arch/arm/include/arm32/pmap.h Sun Jul 27 21:31:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap.h,v 1.133 2014/06/15 03:27:46 ozaki-r Exp $ */
+/* $NetBSD: pmap.h,v 1.134 2014/07/27 21:31:34 skrll Exp $ */
/*
* Copyright (c) 2002, 2003 Wasabi Systems, Inc.
@@ -739,6 +739,7 @@ extern void (*pmap_zero_page_func)(paddr
#define L1_S_CACHE_MASK_generic (L1_S_B|L1_S_C)
#define L1_S_CACHE_MASK_xscale (L1_S_B|L1_S_C|L1_S_XS_TEX(TEX_XSCALE_X))
#define L1_S_CACHE_MASK_armv6 (L1_S_B|L1_S_C|L1_S_XS_TEX(TEX_ARMV6_TEX))
+#define L1_S_CACHE_MASK_armv6n (L1_S_B|L1_S_C|L1_S_XS_TEX(TEX_ARMV6_TEX)|L1_S_V6_S)
#define L1_S_CACHE_MASK_armv7 (L1_S_B|L1_S_C|L1_S_XS_TEX(TEX_ARMV6_TEX)|L1_S_V6_S)
#define L2_L_PROT_U_generic (L2_AP(AP_U))
@@ -764,6 +765,7 @@ extern void (*pmap_zero_page_func)(paddr
#define L2_L_CACHE_MASK_generic (L2_B|L2_C)
#define L2_L_CACHE_MASK_xscale (L2_B|L2_C|L2_XS_L_TEX(TEX_XSCALE_X))
#define L2_L_CACHE_MASK_armv6 (L2_B|L2_C|L2_V6_L_TEX(TEX_ARMV6_TEX))
+#define L2_L_CACHE_MASK_armv6n (L2_B|L2_C|L2_V6_L_TEX(TEX_ARMV6_TEX)|L2_XS_S)
#define L2_L_CACHE_MASK_armv7 (L2_B|L2_C|L2_V6_L_TEX(TEX_ARMV6_TEX)|L2_XS_S)
#define L2_S_PROT_U_generic (L2_AP(AP_U))
@@ -822,7 +824,11 @@ extern void (*pmap_zero_page_func)(paddr
#else
#define L2_S_PROTO_armv6c (L2_TYPE_S) /* XP=0, subpage APs */
#endif
+#ifdef ARM_MMU_EXTENDED
+#define L2_S_PROTO_armv6n (L2_TYPE_S|L2_XS_XN)
+#else
#define L2_S_PROTO_armv6n (L2_TYPE_S) /* with XP=1 */
+#endif
#ifdef ARM_MMU_EXTENDED
#define L2_S_PROTO_armv7 (L2_TYPE_S|L2_XS_XN)
#else
@@ -904,8 +910,8 @@ extern void (*pmap_zero_page_func)(paddr
#define L2_L_PROT_RO L2_L_PROT_RO_armv6n
#define L2_L_PROT_MASK L2_L_PROT_MASK_armv6n
-#define L1_S_CACHE_MASK L1_S_CACHE_MASK_armv6
-#define L2_L_CACHE_MASK L2_L_CACHE_MASK_armv6
+#define L1_S_CACHE_MASK L1_S_CACHE_MASK_armv6n
+#define L2_L_CACHE_MASK L2_L_CACHE_MASK_armv6n
#define L2_S_CACHE_MASK L2_S_CACHE_MASK_armv6n
/* These prototypes make writeable mappings, while the other MMU types
Index: src/sys/arch/arm/include/arm32/vmparam.h
diff -u src/sys/arch/arm/include/arm32/vmparam.h:1.34 src/sys/arch/arm/include/arm32/vmparam.h:1.35
--- src/sys/arch/arm/include/arm32/vmparam.h:1.34 Mon Mar 31 01:48:37 2014
+++ src/sys/arch/arm/include/arm32/vmparam.h Sun Jul 27 21:31:34 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: vmparam.h,v 1.34 2014/03/31 01:48:37 matt Exp $ */
+/* $NetBSD: vmparam.h,v 1.35 2014/07/27 21:31:34 skrll Exp $ */
/*
* Copyright (c) 2001, 2002 Wasabi Systems, Inc.
@@ -44,6 +44,7 @@
* Virtual Memory parameters common to all arm32 platforms.
*/
+#include <arm/cpuconf.h>
#include <arm/arm32/pte.h> /* pt_entry_t */
#define USRSTACK VM_MAXUSER_ADDRESS