Map SVM regions at a sane offset on arm64
[vpp.git] / src / svm / svm_common.h
index a716028..58cd0e9 100644 (file)
@@ -83,9 +83,15 @@ typedef struct svm_map_region_args_
  * Base should be "out of the way," and size should be big enough to
  * cover everything we plan to put here.
  */
-#define SVM_GLOBAL_REGION_BASEVA  0x30000000
 #define SVM_GLOBAL_REGION_SIZE    (64<<20)
 #define SVM_GLOBAL_REGION_NAME "/global_vm"
+#if defined (__aarch64__)
+#define VA_BITS 48
+#define BASEVA ((1ul << VA_BITS) / 4)
+#define SVM_GLOBAL_REGION_BASEVA (BASEVA - (2 * SVM_GLOBAL_REGION_SIZE))
+#else
+#define SVM_GLOBAL_REGION_BASEVA  0x30000000
+#endif
 
 /*
  * Memory shared across individual router instances.