]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Include/Chipset/ArmV7.h
ArmPkg/Mmu: Support page size granularity in the initial MMU setting
[mirror_edk2.git] / ArmPkg / Include / Chipset / ArmV7.h
index b9d74305801a09f75c42eb54b2d271e18051aa4f..6a63cceabb1befb4a6f00e74bcf91ef26518f0e9 100644 (file)
 #define TT_DESCRIPTOR_SECTION_CACHE_POLICY_WRITE_BACK_ALLOC       ((1UL << 12) | (1UL << 3) | (1UL << 2))\r
 #define TT_DESCRIPTOR_SECTION_CACHE_POLICY_NON_SHAREABLE_DEVICE   ((2UL << 12) | (0UL << 3) | (0UL << 2))\r
 \r
+#define TT_DESCRIPTOR_PAGE_SIZE                               (0x00001000)\r
+\r
 #define TT_DESCRIPTOR_PAGE_CACHE_POLICY_MASK                   ((3UL << 6) | (1UL << 3) | (1UL << 2))\r
 #define TT_DESCRIPTOR_PAGE_CACHEABLE_MASK                       (1UL << 3)\r
 #define TT_DESCRIPTOR_PAGE_CACHE_POLICY_STRONGLY_ORDERED       ((0UL << 6) | (0UL << 3) | (0UL << 2))\r
                                                                     (((Desc) & TT_DESCRIPTOR_SECTION_CACHE_POLICY_MASK) & TT_DESCRIPTOR_LARGEPAGE_CACHE_POLICY_MASK): \\r
                                                                     (((((Desc) & (0x3 << 12)) >> 6) | (Desc & (0x3 << 2)))))\r
 \r
+#define TT_DESCRIPTOR_CONVERT_TO_SECTION_AP(Desc)                  ((((Desc) & TT_DESCRIPTOR_PAGE_AP_MASK) << 6) & TT_DESCRIPTOR_SECTION_AP_MASK)\r
+\r
+#define TT_DESCRIPTOR_CONVERT_TO_SECTION_CACHE_POLICY(Desc,IsLargePage)      (IsLargePage? \\r
+                                                                    (((Desc) & TT_DESCRIPTOR_LARGEPAGE_CACHE_POLICY_MASK) & TT_DESCRIPTOR_SECTION_CACHE_POLICY_MASK): \\r
+                                                                    (((((Desc) & (0x3 << 6)) << 6) | (Desc & (0x3 << 2)))))\r
+\r
+\r
 #define TT_DESCRIPTOR_SECTION_DOMAIN_MASK                       (0x0FUL << 5)\r
 #define TT_DESCRIPTOR_SECTION_DOMAIN(a)                         (((a) & 0x0FUL) << 5)\r
 \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
+                                                        TT_DESCRIPTOR_PAGE_S_NOT_SHARED                                                   | \\r
+                                                        TT_DESCRIPTOR_PAGE_AP_RW_RW                                                       | \\r
+                                                        TT_DESCRIPTOR_PAGE_CACHE_POLICY_WRITE_BACK_ALLOC)\r
+#define TT_DESCRIPTOR_PAGE_WRITE_THROUGH           (TT_DESCRIPTOR_PAGE_TYPE_PAGE                                                           | \\r
+                                                        TT_DESCRIPTOR_PAGE_NG_GLOBAL                                                      | \\r
+                                                        TT_DESCRIPTOR_PAGE_S_NOT_SHARED                                                   | \\r
+                                                        TT_DESCRIPTOR_PAGE_AP_RW_RW                                                       | \\r
+                                                        TT_DESCRIPTOR_PAGE_CACHE_POLICY_WRITE_THROUGH_NO_ALLOC)\r
+#define TT_DESCRIPTOR_PAGE_DEVICE                  (TT_DESCRIPTOR_PAGE_TYPE_PAGE                                                           | \\r
+                                                        TT_DESCRIPTOR_PAGE_NG_GLOBAL                                                      | \\r
+                                                        TT_DESCRIPTOR_PAGE_S_NOT_SHARED                                                   | \\r
+                                                        TT_DESCRIPTOR_PAGE_AP_RW_RW                                                       | \\r
+                                                        TT_DESCRIPTOR_PAGE_CACHE_POLICY_SHAREABLE_DEVICE)\r
+#define TT_DESCRIPTOR_PAGE_UNCACHED                (TT_DESCRIPTOR_PAGE_TYPE_PAGE                                                           | \\r
+                                                        TT_DESCRIPTOR_PAGE_NG_GLOBAL                                                      | \\r
+                                                        TT_DESCRIPTOR_PAGE_S_NOT_SHARED                                                   | \\r
+                                                        TT_DESCRIPTOR_PAGE_AP_RW_RW                                                       | \\r
+                                                        TT_DESCRIPTOR_PAGE_CACHE_POLICY_NON_CACHEABLE)\r
+\r
 // Cortex A9 feature bit definitions\r
 #define A9_FEATURE_PARITY  (1<<9)\r
 #define A9_FEATURE_AOW     (1<<8)\r