xlat: Always compile TLB invalidation functions
authorSandrine Bailleux <sandrine.bailleux@arm.com>
Tue, 25 Apr 2017 13:09:47 +0000 (14:09 +0100)
committerAntonio Nino Diaz <antonio.ninodiaz@arm.com>
Thu, 5 Oct 2017 13:32:12 +0000 (14:32 +0100)
TLB invalidation functions used to be conditionally compiled in.
They were enabled only when using the dynamic mapping feature.
because only then would we need to modify page tables on the fly.

Actually there are other use cases where invalidating TLBs is required.
When changing memory attributes in existing translation descriptors for
example. These other use cases do not necessarily depend on the dynamic
mapping feature.

This patch removes this dependency and always compile TLB invalidation
functions in. If they're not used, they will be removed from the binary
at link-time anyway so there's no consequence on the memory footprint
if these functions are not called.

Change-Id: I1c33764ae900eb00073ee23b7d0d53d4efa4dd21
Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
lib/xlat_tables_v2/aarch64/xlat_tables_arch.c
lib/xlat_tables_v2/xlat_tables_private.h

index 760db928b447a4989e7f7adb9fe479c067179e0d..81e035beb5a0562f0f9293064cd9ffe713db0e29 100644 (file)
@@ -10,7 +10,6 @@
 #include <bl_common.h>
 #include <cassert.h>
 #include <common_def.h>
-#include <platform_def.h>
 #include <sys/types.h>
 #include <utils.h>
 #include <utils_def.h>
@@ -82,8 +81,6 @@ int is_mmu_enabled(void)
 #endif
 }
 
-#if PLAT_XLAT_TABLES_DYNAMIC
-
 void xlat_arch_tlbi_va(uintptr_t va)
 {
        /*
@@ -124,8 +121,6 @@ void xlat_arch_tlbi_va_sync(void)
        isb();
 }
 
-#endif /* PLAT_XLAT_TABLES_DYNAMIC */
-
 int xlat_arch_current_el(void)
 {
        int el = GET_EL(read_CurrentEl());
index d352583c99f8b60fefa65d8326860fe0fe8ec410..fbd9578a72ef623a9ddaf79e7b9017aafb01eac8 100644 (file)
@@ -34,6 +34,8 @@ typedef enum  {
        MT_DYNAMIC      = 1 << MT_DYN_SHIFT
 } mmap_priv_attr_t;
 
+#endif /* PLAT_XLAT_TABLES_DYNAMIC */
+
 /*
  * Function used to invalidate all levels of the translation walk for a given
  * virtual address. It must be called for every translation table entry that is
@@ -47,8 +49,6 @@ void xlat_arch_tlbi_va(uintptr_t va);
  */
 void xlat_arch_tlbi_va_sync(void);
 
-#endif /* PLAT_XLAT_TABLES_DYNAMIC */
-
 /* Print VA, PA, size and attributes of all regions in the mmap array. */
 void print_mmap(mmap_region_t *const mmap);