Discussion:
fix armv7 long descriptor second level bits
Jonathan Gray
2016-01-31 07:19:59 UTC
Permalink
The AP bits are the same place as in the small descriptor second level
format.

Expanded version of a diff from Patrick.

Index: arm/pmap.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/pmap.c,v
retrieving revision 1.57
diff -u -p -r1.57 pmap.c
--- arm/pmap.c 31 Jan 2016 00:14:50 -0000 1.57
+++ arm/pmap.c 31 Jan 2016 07:08:56 -0000
@@ -4361,6 +4361,12 @@ pt_entry_t pte_l1_s_prot_kr;
pt_entry_t pte_l1_s_prot_kw;
pt_entry_t pte_l1_s_prot_mask;

+pt_entry_t pte_l2_l_prot_ur;
+pt_entry_t pte_l2_l_prot_uw;
+pt_entry_t pte_l2_l_prot_kr;
+pt_entry_t pte_l2_l_prot_kw;
+pt_entry_t pte_l2_l_prot_mask;
+
pt_entry_t pte_l2_s_prot_ur;
pt_entry_t pte_l2_s_prot_uw;
pt_entry_t pte_l2_s_prot_kr;
@@ -4413,6 +4419,12 @@ pmap_pte_init_generic(void)
pte_l1_s_prot_kw = L1_S_PROT_KW_generic;
pte_l1_s_prot_mask = L1_S_PROT_MASK_generic;

+ pte_l2_l_prot_ur = L2_L_PROT_UR_generic;
+ pte_l2_l_prot_uw = L2_L_PROT_UW_generic;
+ pte_l2_l_prot_kr = L2_L_PROT_KR_generic;
+ pte_l2_l_prot_kw = L2_L_PROT_KW_generic;
+ pte_l2_l_prot_mask = L2_L_PROT_MASK_generic;
+
pte_l2_s_prot_ur = L2_S_PROT_UR_generic;
pte_l2_s_prot_uw = L2_S_PROT_UW_generic;
pte_l2_s_prot_kr = L2_S_PROT_KR_generic;
@@ -4542,6 +4554,12 @@ pmap_pte_init_armv7(void)
pte_l1_s_prot_kw = L1_S_PROT_KW_v7;
pte_l1_s_prot_mask = L1_S_PROT_MASK_v7;

+ pte_l2_l_prot_ur = L2_L_PROT_UR_v7;
+ pte_l2_l_prot_uw = L2_L_PROT_UW_v7;
+ pte_l2_l_prot_kr = L2_L_PROT_KR_v7;
+ pte_l2_l_prot_kw = L2_L_PROT_KW_v7;
+ pte_l2_l_prot_mask = L2_L_PROT_MASK_v7;
+
pte_l2_s_prot_ur = L2_S_PROT_UR_v7;
pte_l2_s_prot_uw = L2_S_PROT_UW_v7;
pte_l2_s_prot_kr = L2_S_PROT_KR_v7;
@@ -4679,6 +4697,12 @@ pmap_pte_init_xscale(void)
pte_l1_s_prot_kr = L1_S_PROT_KR_xscale;
pte_l1_s_prot_kw = L1_S_PROT_KW_xscale;
pte_l1_s_prot_mask = L1_S_PROT_MASK_xscale;
+
+ pte_l2_l_prot_ur = L2_L_PROT_UR_xscale;
+ pte_l2_l_prot_uw = L2_L_PROT_UW_xscale;
+ pte_l2_l_prot_kr = L2_L_PROT_KR_xscale;
+ pte_l2_l_prot_kw = L2_L_PROT_KW_xscale;
+ pte_l2_l_prot_mask = L2_L_PROT_MASK_xscale;

pte_l2_s_prot_ur = L2_S_PROT_UR_xscale;
pte_l2_s_prot_uw = L2_S_PROT_UW_xscale;
Index: arm/pmap7.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/pmap7.c,v
retrieving revision 1.22
diff -u -p -r1.22 pmap7.c
--- arm/pmap7.c 31 Jan 2016 00:14:50 -0000 1.22
+++ arm/pmap7.c 31 Jan 2016 07:08:57 -0000
@@ -3337,6 +3337,12 @@ pt_entry_t pte_l1_s_prot_kr;
pt_entry_t pte_l1_s_prot_kw;
pt_entry_t pte_l1_s_prot_mask;

+pt_entry_t pte_l2_l_prot_ur;
+pt_entry_t pte_l2_l_prot_uw;
+pt_entry_t pte_l2_l_prot_kr;
+pt_entry_t pte_l2_l_prot_kw;
+pt_entry_t pte_l2_l_prot_mask;
+
pt_entry_t pte_l2_s_prot_ur;
pt_entry_t pte_l2_s_prot_uw;
pt_entry_t pte_l2_s_prot_kr;
@@ -3388,6 +3394,12 @@ pmap_pte_init_generic(void)
pte_l1_s_prot_kw = L1_S_PROT_KW_generic;
pte_l1_s_prot_mask = L1_S_PROT_MASK_generic;

+ pte_l2_l_prot_ur = L2_L_PROT_UR_generic;
+ pte_l2_l_prot_uw = L2_L_PROT_UW_generic;
+ pte_l2_l_prot_kr = L2_L_PROT_KR_generic;
+ pte_l2_l_prot_kw = L2_L_PROT_KW_generic;
+ pte_l2_l_prot_mask = L2_L_PROT_MASK_generic;
+
pte_l2_s_prot_ur = L2_S_PROT_UR_generic;
pte_l2_s_prot_uw = L2_S_PROT_UW_generic;
pte_l2_s_prot_kr = L2_S_PROT_KR_generic;
@@ -3436,6 +3448,12 @@ pmap_pte_init_armv7(void)
pte_l1_s_prot_kr = L1_S_PROT_KR_v7;
pte_l1_s_prot_kw = L1_S_PROT_KW_v7;
pte_l1_s_prot_mask = L1_S_PROT_MASK_v7;
+
+ pte_l2_l_prot_ur = L2_L_PROT_UR_v7;
+ pte_l2_l_prot_uw = L2_L_PROT_UW_v7;
+ pte_l2_l_prot_kr = L2_L_PROT_KR_v7;
+ pte_l2_l_prot_kw = L2_L_PROT_KW_v7;
+ pte_l2_l_prot_mask = L2_L_PROT_MASK_v7;

pte_l2_s_prot_ur = L2_S_PROT_UR_v7;
pte_l2_s_prot_uw = L2_S_PROT_UW_v7;
Index: include/pmap.h
===================================================================
RCS file: /cvs/src/sys/arch/arm/include/pmap.h,v
retrieving revision 1.34
diff -u -p -r1.34 pmap.h
--- include/pmap.h 15 Aug 2015 22:20:20 -0000 1.34
+++ include/pmap.h 31 Jan 2016 07:08:57 -0000
@@ -431,6 +431,12 @@ extern pt_entry_t pte_l1_s_prot_kr;
extern pt_entry_t pte_l1_s_prot_kw;
extern pt_entry_t pte_l1_s_prot_mask;

+extern pt_entry_t pte_l2_l_prot_ur;
+extern pt_entry_t pte_l2_l_prot_uw;
+extern pt_entry_t pte_l2_l_prot_kr;
+extern pt_entry_t pte_l2_l_prot_kw;
+extern pt_entry_t pte_l2_l_prot_mask;
+
extern pt_entry_t pte_l2_s_prot_ur;
extern pt_entry_t pte_l2_s_prot_uw;
extern pt_entry_t pte_l2_s_prot_kr;
@@ -487,11 +493,23 @@ extern void (*pmap_zero_page_func)(struc
#define L1_S_COHERENT_xscale (L1_S_B|L1_S_C|L1_S_XSCALE_TEX(TEX_XSCALE_X))
#define L1_S_COHERENT_v7 (L1_S_C|L1_S_V7_TEX_MASK)

-#define L2_L_PROT_KR (L2_AP(0))
-#define L2_L_PROT_UR (L2_AP(AP_U))
-#define L2_L_PROT_KW (L2_AP(AP_W))
-#define L2_L_PROT_UW (L2_AP(AP_U|AP_W))
-#define L2_L_PROT_MASK (L2_AP(AP_U|AP_W))
+#define L2_L_PROT_KR_generic (L2_AP(0))
+#define L2_L_PROT_UR_generic (L2_AP(AP_U))
+#define L2_L_PROT_KW_generic (L2_AP(AP_W))
+#define L2_L_PROT_UW_generic (L2_AP(AP_U|AP_W))
+#define L2_L_PROT_MASK_generic (L2_AP(AP_U|AP_W))
+
+#define L2_L_PROT_KR_xscale (L2_AP(0))
+#define L2_L_PROT_UR_xscale (L2_AP(AP_U))
+#define L2_L_PROT_KW_xscale (L2_AP(AP_W))
+#define L2_L_PROT_UW_xscale (L2_AP(AP_U|AP_W))
+#define L2_L_PROT_MASK_xscale (L2_AP(AP_U|AP_W))
+
+#define L2_L_PROT_UR_v7 (L2_V7_AP(AP_KRWUR))
+#define L2_L_PROT_UW_v7 (L2_V7_AP(AP_KRWURW))
+#define L2_L_PROT_KR_v7 (L2_V7_AP(AP_V7_KR))
+#define L2_L_PROT_KW_v7 (L2_V7_AP(AP_KRW))
+#define L2_L_PROT_MASK_v7 (L2_V7_AP(0x07) | L2_V7_S_XN)

#define L2_L_CACHE_MASK_generic (L2_B|L2_C)
#define L2_L_CACHE_MASK_xscale (L2_B|L2_C|L2_XSCALE_L_TEX(TEX_XSCALE_X))
@@ -553,6 +571,12 @@ extern void (*pmap_zero_page_func)(struc
#define L1_S_PROT_KW pte_l1_s_prot_kw
#define L1_S_PROT_MASK pte_l1_s_prot_mask

+#define L2_L_PROT_UR pte_l2_l_prot_ur
+#define L2_L_PROT_UW pte_l2_l_prot_uw
+#define L2_L_PROT_KR pte_l2_l_prot_kr
+#define L2_L_PROT_KW pte_l2_l_prot_kw
+#define L2_L_PROT_MASK pte_l2_l_prot_mask
+
#define L2_S_PROT_UR pte_l2_s_prot_ur
#define L2_S_PROT_UW pte_l2_s_prot_uw
#define L2_S_PROT_KR pte_l2_s_prot_kr
@@ -580,6 +604,12 @@ extern void (*pmap_zero_page_func)(struc
#define L1_S_PROT_KW L1_S_PROT_KW_generic
#define L1_S_PROT_MASK L1_S_PROT_MASK_generic

+#define L2_L_PROT_UR L2_L_PROT_UR_generic
+#define L2_L_PROT_UW L2_L_PROT_UW_generic
+#define L2_L_PROT_KR L2_L_PROT_KR_generic
+#define L2_L_PROT_KW L2_L_PROT_KW_generic
+#define L2_L_PROT_MASK L2_L_PROT_MASK_generic
+
#define L2_S_PROT_UR L2_S_PROT_UR_generic
#define L2_S_PROT_UW L2_S_PROT_UW_generic
#define L2_S_PROT_KR L2_S_PROT_KR_generic
@@ -607,6 +637,12 @@ extern void (*pmap_zero_page_func)(struc
#define L1_S_PROT_KW L1_S_PROT_KW_xscale
#define L1_S_PROT_MASK L1_S_PROT_MASK_xscale

+#define L2_L_PROT_UR L2_L_PROT_UR_xscale
+#define L2_L_PROT_UW L2_L_PROT_UW_xscale
+#define L2_L_PROT_KR L2_L_PROT_KR_xscale
+#define L2_L_PROT_KW L2_L_PROT_KW_xscale
+#define L2_L_PROT_MASK L2_L_PROT_MASK_xscale
+
#define L2_S_PROT_UR L2_S_PROT_UR_xscale
#define L2_S_PROT_UW L2_S_PROT_UW_xscale
#define L2_S_PROT_KR L2_S_PROT_KR_xscale
@@ -633,6 +669,12 @@ extern void (*pmap_zero_page_func)(struc
#define L1_S_PROT_KR L1_S_PROT_KR_v7
#define L1_S_PROT_KW L1_S_PROT_KW_v7
#define L1_S_PROT_MASK L1_S_PROT_MASK_v7
+
+#define L2_L_PROT_UR L2_L_PROT_UR_v7
+#define L2_L_PROT_UW L2_L_PROT_UW_v7
+#define L2_L_PROT_KR L2_L_PROT_KR_v7
+#define L2_L_PROT_KW L2_L_PROT_KW_v7
+#define L2_L_PROT_MASK L2_L_PROT_MASK_v7

#define L2_S_PROT_UR L2_S_PROT_UR_v7
#define L2_S_PROT_UW L2_S_PROT_UW_v7
Patrick Wildt
2016-01-31 17:55:57 UTC
Permalink
Post by Jonathan Gray
The AP bits are the same place as in the small descriptor second level
format.
Expanded version of a diff from Patrick.
Looks good to me, works for me.
Post by Jonathan Gray
Index: arm/pmap.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/pmap.c,v
retrieving revision 1.57
diff -u -p -r1.57 pmap.c
--- arm/pmap.c 31 Jan 2016 00:14:50 -0000 1.57
+++ arm/pmap.c 31 Jan 2016 07:08:56 -0000
@@ -4361,6 +4361,12 @@ pt_entry_t pte_l1_s_prot_kr;
pt_entry_t pte_l1_s_prot_kw;
pt_entry_t pte_l1_s_prot_mask;
+pt_entry_t pte_l2_l_prot_ur;
+pt_entry_t pte_l2_l_prot_uw;
+pt_entry_t pte_l2_l_prot_kr;
+pt_entry_t pte_l2_l_prot_kw;
+pt_entry_t pte_l2_l_prot_mask;
+
pt_entry_t pte_l2_s_prot_ur;
pt_entry_t pte_l2_s_prot_uw;
pt_entry_t pte_l2_s_prot_kr;
@@ -4413,6 +4419,12 @@ pmap_pte_init_generic(void)
pte_l1_s_prot_kw = L1_S_PROT_KW_generic;
pte_l1_s_prot_mask = L1_S_PROT_MASK_generic;
+ pte_l2_l_prot_ur = L2_L_PROT_UR_generic;
+ pte_l2_l_prot_uw = L2_L_PROT_UW_generic;
+ pte_l2_l_prot_kr = L2_L_PROT_KR_generic;
+ pte_l2_l_prot_kw = L2_L_PROT_KW_generic;
+ pte_l2_l_prot_mask = L2_L_PROT_MASK_generic;
+
pte_l2_s_prot_ur = L2_S_PROT_UR_generic;
pte_l2_s_prot_uw = L2_S_PROT_UW_generic;
pte_l2_s_prot_kr = L2_S_PROT_KR_generic;
@@ -4542,6 +4554,12 @@ pmap_pte_init_armv7(void)
pte_l1_s_prot_kw = L1_S_PROT_KW_v7;
pte_l1_s_prot_mask = L1_S_PROT_MASK_v7;
+ pte_l2_l_prot_ur = L2_L_PROT_UR_v7;
+ pte_l2_l_prot_uw = L2_L_PROT_UW_v7;
+ pte_l2_l_prot_kr = L2_L_PROT_KR_v7;
+ pte_l2_l_prot_kw = L2_L_PROT_KW_v7;
+ pte_l2_l_prot_mask = L2_L_PROT_MASK_v7;
+
pte_l2_s_prot_ur = L2_S_PROT_UR_v7;
pte_l2_s_prot_uw = L2_S_PROT_UW_v7;
pte_l2_s_prot_kr = L2_S_PROT_KR_v7;
@@ -4679,6 +4697,12 @@ pmap_pte_init_xscale(void)
pte_l1_s_prot_kr = L1_S_PROT_KR_xscale;
pte_l1_s_prot_kw = L1_S_PROT_KW_xscale;
pte_l1_s_prot_mask = L1_S_PROT_MASK_xscale;
+
+ pte_l2_l_prot_ur = L2_L_PROT_UR_xscale;
+ pte_l2_l_prot_uw = L2_L_PROT_UW_xscale;
+ pte_l2_l_prot_kr = L2_L_PROT_KR_xscale;
+ pte_l2_l_prot_kw = L2_L_PROT_KW_xscale;
+ pte_l2_l_prot_mask = L2_L_PROT_MASK_xscale;
pte_l2_s_prot_ur = L2_S_PROT_UR_xscale;
pte_l2_s_prot_uw = L2_S_PROT_UW_xscale;
Index: arm/pmap7.c
===================================================================
RCS file: /cvs/src/sys/arch/arm/arm/pmap7.c,v
retrieving revision 1.22
diff -u -p -r1.22 pmap7.c
--- arm/pmap7.c 31 Jan 2016 00:14:50 -0000 1.22
+++ arm/pmap7.c 31 Jan 2016 07:08:57 -0000
@@ -3337,6 +3337,12 @@ pt_entry_t pte_l1_s_prot_kr;
pt_entry_t pte_l1_s_prot_kw;
pt_entry_t pte_l1_s_prot_mask;
+pt_entry_t pte_l2_l_prot_ur;
+pt_entry_t pte_l2_l_prot_uw;
+pt_entry_t pte_l2_l_prot_kr;
+pt_entry_t pte_l2_l_prot_kw;
+pt_entry_t pte_l2_l_prot_mask;
+
pt_entry_t pte_l2_s_prot_ur;
pt_entry_t pte_l2_s_prot_uw;
pt_entry_t pte_l2_s_prot_kr;
@@ -3388,6 +3394,12 @@ pmap_pte_init_generic(void)
pte_l1_s_prot_kw = L1_S_PROT_KW_generic;
pte_l1_s_prot_mask = L1_S_PROT_MASK_generic;
+ pte_l2_l_prot_ur = L2_L_PROT_UR_generic;
+ pte_l2_l_prot_uw = L2_L_PROT_UW_generic;
+ pte_l2_l_prot_kr = L2_L_PROT_KR_generic;
+ pte_l2_l_prot_kw = L2_L_PROT_KW_generic;
+ pte_l2_l_prot_mask = L2_L_PROT_MASK_generic;
+
pte_l2_s_prot_ur = L2_S_PROT_UR_generic;
pte_l2_s_prot_uw = L2_S_PROT_UW_generic;
pte_l2_s_prot_kr = L2_S_PROT_KR_generic;
@@ -3436,6 +3448,12 @@ pmap_pte_init_armv7(void)
pte_l1_s_prot_kr = L1_S_PROT_KR_v7;
pte_l1_s_prot_kw = L1_S_PROT_KW_v7;
pte_l1_s_prot_mask = L1_S_PROT_MASK_v7;
+
+ pte_l2_l_prot_ur = L2_L_PROT_UR_v7;
+ pte_l2_l_prot_uw = L2_L_PROT_UW_v7;
+ pte_l2_l_prot_kr = L2_L_PROT_KR_v7;
+ pte_l2_l_prot_kw = L2_L_PROT_KW_v7;
+ pte_l2_l_prot_mask = L2_L_PROT_MASK_v7;
pte_l2_s_prot_ur = L2_S_PROT_UR_v7;
pte_l2_s_prot_uw = L2_S_PROT_UW_v7;
Index: include/pmap.h
===================================================================
RCS file: /cvs/src/sys/arch/arm/include/pmap.h,v
retrieving revision 1.34
diff -u -p -r1.34 pmap.h
--- include/pmap.h 15 Aug 2015 22:20:20 -0000 1.34
+++ include/pmap.h 31 Jan 2016 07:08:57 -0000
@@ -431,6 +431,12 @@ extern pt_entry_t pte_l1_s_prot_kr;
extern pt_entry_t pte_l1_s_prot_kw;
extern pt_entry_t pte_l1_s_prot_mask;
+extern pt_entry_t pte_l2_l_prot_ur;
+extern pt_entry_t pte_l2_l_prot_uw;
+extern pt_entry_t pte_l2_l_prot_kr;
+extern pt_entry_t pte_l2_l_prot_kw;
+extern pt_entry_t pte_l2_l_prot_mask;
+
extern pt_entry_t pte_l2_s_prot_ur;
extern pt_entry_t pte_l2_s_prot_uw;
extern pt_entry_t pte_l2_s_prot_kr;
@@ -487,11 +493,23 @@ extern void (*pmap_zero_page_func)(struc
#define L1_S_COHERENT_xscale (L1_S_B|L1_S_C|L1_S_XSCALE_TEX(TEX_XSCALE_X))
#define L1_S_COHERENT_v7 (L1_S_C|L1_S_V7_TEX_MASK)
-#define L2_L_PROT_KR (L2_AP(0))
-#define L2_L_PROT_UR (L2_AP(AP_U))
-#define L2_L_PROT_KW (L2_AP(AP_W))
-#define L2_L_PROT_UW (L2_AP(AP_U|AP_W))
-#define L2_L_PROT_MASK (L2_AP(AP_U|AP_W))
+#define L2_L_PROT_KR_generic (L2_AP(0))
+#define L2_L_PROT_UR_generic (L2_AP(AP_U))
+#define L2_L_PROT_KW_generic (L2_AP(AP_W))
+#define L2_L_PROT_UW_generic (L2_AP(AP_U|AP_W))
+#define L2_L_PROT_MASK_generic (L2_AP(AP_U|AP_W))
+
+#define L2_L_PROT_KR_xscale (L2_AP(0))
+#define L2_L_PROT_UR_xscale (L2_AP(AP_U))
+#define L2_L_PROT_KW_xscale (L2_AP(AP_W))
+#define L2_L_PROT_UW_xscale (L2_AP(AP_U|AP_W))
+#define L2_L_PROT_MASK_xscale (L2_AP(AP_U|AP_W))
+
+#define L2_L_PROT_UR_v7 (L2_V7_AP(AP_KRWUR))
+#define L2_L_PROT_UW_v7 (L2_V7_AP(AP_KRWURW))
+#define L2_L_PROT_KR_v7 (L2_V7_AP(AP_V7_KR))
+#define L2_L_PROT_KW_v7 (L2_V7_AP(AP_KRW))
+#define L2_L_PROT_MASK_v7 (L2_V7_AP(0x07) | L2_V7_S_XN)
#define L2_L_CACHE_MASK_generic (L2_B|L2_C)
#define L2_L_CACHE_MASK_xscale (L2_B|L2_C|L2_XSCALE_L_TEX(TEX_XSCALE_X))
@@ -553,6 +571,12 @@ extern void (*pmap_zero_page_func)(struc
#define L1_S_PROT_KW pte_l1_s_prot_kw
#define L1_S_PROT_MASK pte_l1_s_prot_mask
+#define L2_L_PROT_UR pte_l2_l_prot_ur
+#define L2_L_PROT_UW pte_l2_l_prot_uw
+#define L2_L_PROT_KR pte_l2_l_prot_kr
+#define L2_L_PROT_KW pte_l2_l_prot_kw
+#define L2_L_PROT_MASK pte_l2_l_prot_mask
+
#define L2_S_PROT_UR pte_l2_s_prot_ur
#define L2_S_PROT_UW pte_l2_s_prot_uw
#define L2_S_PROT_KR pte_l2_s_prot_kr
@@ -580,6 +604,12 @@ extern void (*pmap_zero_page_func)(struc
#define L1_S_PROT_KW L1_S_PROT_KW_generic
#define L1_S_PROT_MASK L1_S_PROT_MASK_generic
+#define L2_L_PROT_UR L2_L_PROT_UR_generic
+#define L2_L_PROT_UW L2_L_PROT_UW_generic
+#define L2_L_PROT_KR L2_L_PROT_KR_generic
+#define L2_L_PROT_KW L2_L_PROT_KW_generic
+#define L2_L_PROT_MASK L2_L_PROT_MASK_generic
+
#define L2_S_PROT_UR L2_S_PROT_UR_generic
#define L2_S_PROT_UW L2_S_PROT_UW_generic
#define L2_S_PROT_KR L2_S_PROT_KR_generic
@@ -607,6 +637,12 @@ extern void (*pmap_zero_page_func)(struc
#define L1_S_PROT_KW L1_S_PROT_KW_xscale
#define L1_S_PROT_MASK L1_S_PROT_MASK_xscale
+#define L2_L_PROT_UR L2_L_PROT_UR_xscale
+#define L2_L_PROT_UW L2_L_PROT_UW_xscale
+#define L2_L_PROT_KR L2_L_PROT_KR_xscale
+#define L2_L_PROT_KW L2_L_PROT_KW_xscale
+#define L2_L_PROT_MASK L2_L_PROT_MASK_xscale
+
#define L2_S_PROT_UR L2_S_PROT_UR_xscale
#define L2_S_PROT_UW L2_S_PROT_UW_xscale
#define L2_S_PROT_KR L2_S_PROT_KR_xscale
@@ -633,6 +669,12 @@ extern void (*pmap_zero_page_func)(struc
#define L1_S_PROT_KR L1_S_PROT_KR_v7
#define L1_S_PROT_KW L1_S_PROT_KW_v7
#define L1_S_PROT_MASK L1_S_PROT_MASK_v7
+
+#define L2_L_PROT_UR L2_L_PROT_UR_v7
+#define L2_L_PROT_UW L2_L_PROT_UW_v7
+#define L2_L_PROT_KR L2_L_PROT_KR_v7
+#define L2_L_PROT_KW L2_L_PROT_KW_v7
+#define L2_L_PROT_MASK L2_L_PROT_MASK_v7
#define L2_S_PROT_UR L2_S_PROT_UR_v7
#define L2_S_PROT_UW L2_S_PROT_UW_v7
Jonathan Gray
2016-02-01 04:31:17 UTC
Permalink
Post by Patrick Wildt
Post by Jonathan Gray
The AP bits are the same place as in the small descriptor second level
format.
Expanded version of a diff from Patrick.
Looks good to me, works for me.
Committed with the mask fixed to have L2_V7_L_XN not L2_V7_S_XN,
though L2_L_PROT_MASK isn't used at the moment.

Loading...