|
@@ -122,6 +122,17 @@
|
|
|
#define VTCR_EL2_T0SZ_MASK 0x3f
|
|
|
#define VTCR_EL2_T0SZ_40B 24
|
|
|
|
|
|
+/*
|
|
|
+ * We configure the Stage-2 page tables to always restrict the IPA space to be
|
|
|
+ * 40 bits wide (T0SZ = 24). Systems with a PARange smaller than 40 bits are
|
|
|
+ * not known to exist and will break with this configuration.
|
|
|
+ *
|
|
|
+ * Note that when using 4K pages, we concatenate two first level page tables
|
|
|
+ * together.
|
|
|
+ *
|
|
|
+ * The magic numbers used for VTTBR_X in this patch can be found in Tables
|
|
|
+ * D4-23 and D4-25 in ARM DDI 0487A.b.
|
|
|
+ */
|
|
|
#ifdef CONFIG_ARM64_64K_PAGES
|
|
|
/*
|
|
|
* Stage2 translation configuration:
|
|
@@ -149,7 +160,7 @@
|
|
|
#endif
|
|
|
|
|
|
#define VTTBR_BADDR_SHIFT (VTTBR_X - 1)
|
|
|
-#define VTTBR_BADDR_MASK (((1LLU << (40 - VTTBR_X)) - 1) << VTTBR_BADDR_SHIFT)
|
|
|
+#define VTTBR_BADDR_MASK (((1LLU << (PHYS_MASK_SHIFT - VTTBR_X)) - 1) << VTTBR_BADDR_SHIFT)
|
|
|
#define VTTBR_VMID_SHIFT (48LLU)
|
|
|
#define VTTBR_VMID_MASK (0xffLLU << VTTBR_VMID_SHIFT)
|
|
|
|