|
@@ -20,14 +20,20 @@
|
|
|
#define __ASM_PAGE_H
|
|
|
|
|
|
/* PAGE_SHIFT determines the page size */
|
|
|
+/* CONT_SHIFT determines the number of pages which can be tracked together */
|
|
|
#ifdef CONFIG_ARM64_64K_PAGES
|
|
|
#define PAGE_SHIFT 16
|
|
|
+#define CONT_SHIFT 5
|
|
|
#else
|
|
|
#define PAGE_SHIFT 12
|
|
|
+#define CONT_SHIFT 4
|
|
|
#endif
|
|
|
-#define PAGE_SIZE (_AC(1,UL) << PAGE_SHIFT)
|
|
|
+#define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT)
|
|
|
#define PAGE_MASK (~(PAGE_SIZE-1))
|
|
|
|
|
|
+#define CONT_SIZE (_AC(1, UL) << (CONT_SHIFT + PAGE_SHIFT))
|
|
|
+#define CONT_MASK (~(CONT_SIZE-1))
|
|
|
+
|
|
|
/*
|
|
|
* The idmap and swapper page tables need some space reserved in the kernel
|
|
|
* image. Both require pgd, pud (4 levels only) and pmd tables to (section)
|