]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Include/Chipset/ArmV7Mmu.h
ArmPkg/ArmV7Mmu.h: Fixed XN bit conversion from section to small/large page format
[mirror_edk2.git] / ArmPkg / Include / Chipset / ArmV7Mmu.h
index 581cd9572ca92aa41027ed6a3391f9066350ec6e..431fed924b1d34ef10b3f54f600e5a8f915fe259 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
 *\r
-*  Copyright (c) 2011, ARM Limited. All rights reserved.\r
+*  Copyright (c) 2011-2012, ARM Limited. All rights reserved.\r
 *  \r
 *  This program and the accompanying materials                          \r
 *  are licensed and made available under the terms and conditions of the BSD License         \r
@@ -66,8 +66,7 @@
 #define TT_DESCRIPTOR_SECTION_SIZE                              (0x00100000)\r
 \r
 #define TT_DESCRIPTOR_SECTION_NS_MASK                           (1UL << 19)\r
-#define TT_DESCRIPTOR_SECTION_NS_SECURE                         (0UL << 19)\r
-#define TT_DESCRIPTOR_SECTION_NS_NON_SECURE                     (1UL << 19)\r
+#define TT_DESCRIPTOR_SECTION_NS                                (1UL << 19)\r
 \r
 #define TT_DESCRIPTOR_SECTION_NG_MASK                           (1UL << 17)\r
 #define TT_DESCRIPTOR_SECTION_NG_GLOBAL                         (0UL << 17)\r
 #define TT_DESCRIPTOR_CONVERT_TO_PAGE_NG(Desc)                  ((((Desc) & TT_DESCRIPTOR_SECTION_NG_MASK) >> 6) & TT_DESCRIPTOR_PAGE_NG_MASK)\r
 #define TT_DESCRIPTOR_CONVERT_TO_PAGE_S(Desc)                  ((((Desc) & TT_DESCRIPTOR_SECTION_S_MASK) >> 6) & TT_DESCRIPTOR_PAGE_S_MASK)\r
 #define TT_DESCRIPTOR_CONVERT_TO_PAGE_XN(Desc,IsLargePage)      ((IsLargePage)? \\r
-                                                                    ((((Desc) & TT_DESCRIPTOR_SECTION_XN_MASK) >> 4) & TT_DESCRIPTOR_LARGEPAGE_XN_MASK):    \\r
-                                                                    ((((Desc) & TT_DESCRIPTOR_SECTION_XN_MASK) << 11) & TT_DESCRIPTOR_PAGE_XN_MASK))\r
+                                                                    ((((Desc) & TT_DESCRIPTOR_SECTION_XN_MASK) << 11) & TT_DESCRIPTOR_LARGEPAGE_XN_MASK):    \\r
+                                                                    ((((Desc) & TT_DESCRIPTOR_SECTION_XN_MASK) >> 4) & TT_DESCRIPTOR_PAGE_XN_MASK))\r
 #define TT_DESCRIPTOR_CONVERT_TO_PAGE_CACHE_POLICY(Desc,IsLargePage)      (IsLargePage? \\r
                                                                     (((Desc) & TT_DESCRIPTOR_SECTION_CACHE_POLICY_MASK) & TT_DESCRIPTOR_LARGEPAGE_CACHE_POLICY_MASK): \\r
                                                                     (((((Desc) & (0x3 << 12)) >> 6) | (Desc & (0x3 << 2)))))\r
 #define TT_DESCRIPTOR_PAGE_BASE_ADDRESS(a)                   ((a) & TT_DESCRIPTOR_PAGE_BASE_ADDRESS_MASK)\r
 #define TT_DESCRIPTOR_PAGE_BASE_SHIFT                        12\r
 \r
-#define TT_DESCRIPTOR_SECTION_WRITE_BACK(Secure)       (TT_DESCRIPTOR_SECTION_TYPE_SECTION                                                           | \\r
-                                                        ((Secure) ?  TT_DESCRIPTOR_SECTION_NS_SECURE : TT_DESCRIPTOR_SECTION_NS_NON_SECURE )    | \\r
-                                                                     TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
-                                                                     TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
-                                                                     TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
-                                                                     TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
-                                                                     TT_DESCRIPTOR_SECTION_CACHE_POLICY_WRITE_BACK_ALLOC)\r
-#define TT_DESCRIPTOR_SECTION_WRITE_THROUGH(Secure)    (TT_DESCRIPTOR_SECTION_TYPE_SECTION                                                           | \\r
-                                                        ((Secure) ?  TT_DESCRIPTOR_SECTION_NS_SECURE : TT_DESCRIPTOR_SECTION_NS_NON_SECURE )    | \\r
-                                                                     TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
-                                                                     TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
-                                                                     TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
-                                                                     TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
-                                                                     TT_DESCRIPTOR_SECTION_CACHE_POLICY_WRITE_THROUGH_NO_ALLOC)\r
-#define TT_DESCRIPTOR_SECTION_DEVICE(Secure)           (TT_DESCRIPTOR_SECTION_TYPE_SECTION                                                           | \\r
-                                                        ((Secure) ?  TT_DESCRIPTOR_SECTION_NS_SECURE : TT_DESCRIPTOR_SECTION_NS_NON_SECURE )    | \\r
-                                                                     TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
-                                                                     TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
-                                                                     TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
-                                                                     TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
-                                                                     TT_DESCRIPTOR_SECTION_CACHE_POLICY_SHAREABLE_DEVICE)\r
-#define TT_DESCRIPTOR_SECTION_UNCACHED(Secure)         (TT_DESCRIPTOR_SECTION_TYPE_SECTION                                                           | \\r
-                                                        ((Secure) ?  TT_DESCRIPTOR_SECTION_NS_SECURE : TT_DESCRIPTOR_SECTION_NS_NON_SECURE )    | \\r
-                                                                     TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
-                                                                     TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
-                                                                     TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
-                                                                     TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
-                                                                     TT_DESCRIPTOR_SECTION_CACHE_POLICY_NON_CACHEABLE)\r
+#define TT_DESCRIPTOR_SECTION_WRITE_BACK(NonSecure)         (TT_DESCRIPTOR_SECTION_TYPE_SECTION                                                           | \\r
+                                                            ((NonSecure) ?  TT_DESCRIPTOR_SECTION_NS : 0)    | \\r
+                                                            TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
+                                                            TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
+                                                            TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
+                                                            TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
+                                                            TT_DESCRIPTOR_SECTION_CACHE_POLICY_WRITE_BACK_ALLOC)\r
+#define TT_DESCRIPTOR_SECTION_WRITE_THROUGH(NonSecure)      (TT_DESCRIPTOR_SECTION_TYPE_SECTION                                                           | \\r
+                                                            ((NonSecure) ?  TT_DESCRIPTOR_SECTION_NS : 0)    | \\r
+                                                            TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
+                                                            TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
+                                                            TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
+                                                            TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
+                                                            TT_DESCRIPTOR_SECTION_CACHE_POLICY_WRITE_THROUGH_NO_ALLOC)\r
+#define TT_DESCRIPTOR_SECTION_DEVICE(NonSecure)             (TT_DESCRIPTOR_SECTION_TYPE_SECTION                                                           | \\r
+                                                            ((NonSecure) ?  TT_DESCRIPTOR_SECTION_NS : 0)    | \\r
+                                                            TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
+                                                            TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
+                                                            TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
+                                                            TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
+                                                            TT_DESCRIPTOR_SECTION_CACHE_POLICY_SHAREABLE_DEVICE)\r
+#define TT_DESCRIPTOR_SECTION_UNCACHED(NonSecure)          (TT_DESCRIPTOR_SECTION_TYPE_SECTION                                                           | \\r
+                                                           ((NonSecure) ?  TT_DESCRIPTOR_SECTION_NS : 0)    | \\r
+                                                           TT_DESCRIPTOR_SECTION_NG_GLOBAL                         | \\r
+                                                           TT_DESCRIPTOR_SECTION_S_NOT_SHARED                      | \\r
+                                                           TT_DESCRIPTOR_SECTION_DOMAIN(0)                         | \\r
+                                                           TT_DESCRIPTOR_SECTION_AP_RW_RW                          | \\r
+                                                           TT_DESCRIPTOR_SECTION_CACHE_POLICY_NON_CACHEABLE)\r
 \r
 #define TT_DESCRIPTOR_PAGE_WRITE_BACK              (TT_DESCRIPTOR_PAGE_TYPE_PAGE                                                           | \\r
                                                         TT_DESCRIPTOR_PAGE_NG_GLOBAL                                                      | \\r