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

Reply via email to