|
@@ -120,34 +120,51 @@ static const struct prot_bits pte_bits[] = {
|
|
};
|
|
};
|
|
|
|
|
|
static const struct prot_bits section_bits[] = {
|
|
static const struct prot_bits section_bits[] = {
|
|
-#ifndef CONFIG_ARM_LPAE
|
|
|
|
- /* These are approximate */
|
|
|
|
|
|
+#ifdef CONFIG_ARM_LPAE
|
|
|
|
+ {
|
|
|
|
+ .mask = PMD_SECT_USER,
|
|
|
|
+ .val = PMD_SECT_USER,
|
|
|
|
+ .set = "USR",
|
|
|
|
+ }, {
|
|
|
|
+ .mask = PMD_SECT_RDONLY,
|
|
|
|
+ .val = PMD_SECT_RDONLY,
|
|
|
|
+ .set = "ro",
|
|
|
|
+ .clear = "RW",
|
|
|
|
+#elif __LINUX_ARM_ARCH__ >= 6
|
|
{
|
|
{
|
|
- .mask = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
|
|
|
- .val = 0,
|
|
|
|
|
|
+ .mask = PMD_SECT_APX | PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
|
|
|
+ .val = PMD_SECT_APX | PMD_SECT_AP_WRITE,
|
|
.set = " ro",
|
|
.set = " ro",
|
|
}, {
|
|
}, {
|
|
- .mask = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
|
|
|
|
|
+ .mask = PMD_SECT_APX | PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
|
.val = PMD_SECT_AP_WRITE,
|
|
.val = PMD_SECT_AP_WRITE,
|
|
.set = " RW",
|
|
.set = " RW",
|
|
}, {
|
|
}, {
|
|
- .mask = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
|
|
|
|
|
+ .mask = PMD_SECT_APX | PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
|
.val = PMD_SECT_AP_READ,
|
|
.val = PMD_SECT_AP_READ,
|
|
.set = "USR ro",
|
|
.set = "USR ro",
|
|
}, {
|
|
}, {
|
|
- .mask = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
|
|
|
|
|
+ .mask = PMD_SECT_APX | PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
|
.val = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
|
.val = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
|
.set = "USR RW",
|
|
.set = "USR RW",
|
|
-#else
|
|
|
|
|
|
+#else /* ARMv4/ARMv5 */
|
|
|
|
+ /* These are approximate */
|
|
{
|
|
{
|
|
- .mask = PMD_SECT_USER,
|
|
|
|
- .val = PMD_SECT_USER,
|
|
|
|
- .set = "USR",
|
|
|
|
|
|
+ .mask = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
|
|
|
+ .val = 0,
|
|
|
|
+ .set = " ro",
|
|
}, {
|
|
}, {
|
|
- .mask = PMD_SECT_RDONLY,
|
|
|
|
- .val = PMD_SECT_RDONLY,
|
|
|
|
- .set = "ro",
|
|
|
|
- .clear = "RW",
|
|
|
|
|
|
+ .mask = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
|
|
|
+ .val = PMD_SECT_AP_WRITE,
|
|
|
|
+ .set = " RW",
|
|
|
|
+ }, {
|
|
|
|
+ .mask = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
|
|
|
+ .val = PMD_SECT_AP_READ,
|
|
|
|
+ .set = "USR ro",
|
|
|
|
+ }, {
|
|
|
|
+ .mask = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
|
|
|
+ .val = PMD_SECT_AP_READ | PMD_SECT_AP_WRITE,
|
|
|
|
+ .set = "USR RW",
|
|
#endif
|
|
#endif
|
|
}, {
|
|
}, {
|
|
.mask = PMD_SECT_XN,
|
|
.mask = PMD_SECT_XN,
|