diff options
| author | skrll <skrll@NetBSD.org> | 2014-07-27 21:31:34 +0000 |
|---|---|---|
| committer | skrll <skrll@NetBSD.org> | 2014-07-27 21:31:34 +0000 |
| commit | bb3f395e984d6cf3d66e55b1b2e9f140f3add3cb (patch) | |
| tree | a267e35296ec3804533b843b89bbc082eb531526 /sys | |
| parent | 7efcd2c792794f822fd2421cce25be8a0637a462 (diff) | |
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.
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/arch/arm/arm/cpufunc.c | 7 | ||||
| -rw-r--r-- | sys/arch/arm/include/arm32/pmap.h | 12 | ||||
| -rw-r--r-- | sys/arch/arm/include/arm32/vmparam.h | 3 |
3 files changed, 15 insertions, 7 deletions
diff --git a/sys/arch/arm/arm/cpufunc.c b/sys/arch/arm/arm/cpufunc.c index d372b2fc84e..d3aae786d36 100644 --- a/sys/arch/arm/arm/cpufunc.c +++ b/sys/arch/arm/arm/cpufunc.c @@ -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; diff --git a/sys/arch/arm/include/arm32/pmap.h b/sys/arch/arm/include/arm32/pmap.h index b343690b0e6..0008a5d62a8 100644 --- a/sys/arch/arm/include/arm32/pmap.h +++ b/sys/arch/arm/include/arm32/pmap.h @@ -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_t); #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_t); #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_t); #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_t); #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 diff --git a/sys/arch/arm/include/arm32/vmparam.h b/sys/arch/arm/include/arm32/vmparam.h index 111684e4191..531f5633ba0 100644 --- a/sys/arch/arm/include/arm32/vmparam.h +++ b/sys/arch/arm/include/arm32/vmparam.h @@ -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 |
