diff --git a/include/lib/xlat_tables/xlat_tables_v2.h b/include/lib/xlat_tables/xlat_tables_v2.h
index 2c27e3c..e7ed233 100644
--- a/include/lib/xlat_tables/xlat_tables_v2.h
+++ b/include/lib/xlat_tables/xlat_tables_v2.h
@@ -83,18 +83,25 @@
 } mmap_region_t;
 
 /* Generic translation table APIs */
+
+/*
+ * Initialize translation tables from the current list of mmap regions. Calling
+ * this function marks the transition point after which static regions can no
+ * longer be added.
+ */
 void init_xlat_tables(void);
 
 /*
- * Add a region with defined base PA and base VA. This type of region can only
- * be added before initializing the MMU and cannot be removed later.
+ * Add a static region with defined base PA and base VA. This function can only
+ * be used before initializing the translation tables. The region cannot be
+ * removed afterwards.
  */
 void mmap_add_region(unsigned long long base_pa, uintptr_t base_va,
 				size_t size, mmap_attr_t attr);
 
 /*
- * Add a region with defined base PA and base VA. This type of region can be
- * added and removed even if the MMU is enabled.
+ * Add a dynamic region with defined base PA and base VA. This type of region
+ * can be added and removed even after the translation tables are initialized.
  *
  * Returns:
  *        0: Success.
@@ -107,15 +114,16 @@
 				size_t size, mmap_attr_t attr);
 
 /*
- * Add an array of static regions with defined base PA and base VA. This type
- * of region can only be added before initializing the MMU and cannot be
- * removed later.
+ * Add an array of static regions with defined base PA and base VA. This
+ * function can only be used before initializing the translation tables. The
+ * regions cannot be removed afterwards.
  */
 void mmap_add(const mmap_region_t *mm);
 
 /*
  * Remove a region with the specified base VA and size. Only dynamic regions can
- * be removed, and they can be removed even if the MMU is enabled.
+ * be removed, and they can be removed even if the translation tables are
+ * initialized.
  *
  * Returns:
  *        0: Success.
diff --git a/lib/xlat_tables_v2/aarch64/xlat_tables_arch.c b/lib/xlat_tables_v2/aarch64/xlat_tables_arch.c
index cc41fc3..14f6cd6 100644
--- a/lib/xlat_tables_v2/aarch64/xlat_tables_arch.c
+++ b/lib/xlat_tables_v2/aarch64/xlat_tables_arch.c
@@ -60,7 +60,7 @@
 	PARANGE_0101
 };
 
-unsigned long long xlat_arch_get_max_supported_pa(void)
+static unsigned long long xlat_arch_get_max_supported_pa(void)
 {
 	u_register_t pa_range = read_id_aa64mmfr0_el1() &
 						ID_AA64MMFR0_EL1_PARANGE_MASK;
diff --git a/lib/xlat_tables_v2/xlat_tables_common.c b/lib/xlat_tables_v2/xlat_tables_common.c
index a6f3b7c..f20bf93 100644
--- a/lib/xlat_tables_v2/xlat_tables_common.c
+++ b/lib/xlat_tables_v2/xlat_tables_common.c
@@ -34,8 +34,6 @@
 static uint64_t tf_base_xlat_table[NUM_BASE_LEVEL_ENTRIES]
 		__aligned(NUM_BASE_LEVEL_ENTRIES * sizeof(uint64_t));
 
-static mmap_region_t tf_mmap[MAX_MMAP_REGIONS + 1];
-
 #if PLAT_XLAT_TABLES_DYNAMIC
 static int xlat_tables_mapped_regions[MAX_XLAT_TABLES];
 #endif /* PLAT_XLAT_TABLES_DYNAMIC */
diff --git a/lib/xlat_tables_v2/xlat_tables_private.h b/lib/xlat_tables_v2/xlat_tables_private.h
index 07bf39f..7b3e555 100644
--- a/lib/xlat_tables_v2/xlat_tables_private.h
+++ b/lib/xlat_tables_v2/xlat_tables_private.h
@@ -47,8 +47,11 @@
 	 * Array of all memory regions stored in order of ascending end address
 	 * and ascending size to simplify the code that allows overlapping
 	 * regions. The list is terminated by the first entry with size == 0.
+	 * The max size of the list is stored in `mmap_num`. `mmap` points to an
+	 * array of mmap_num + 1 elements, so that there is space for the final
+	 * null entry.
 	 */
-	mmap_region_t *mmap; /* mmap_num + 1 elements */
+	mmap_region_t *mmap;
 	int mmap_num;
 
 	/*
@@ -75,6 +78,11 @@
 	uint64_t *base_table;
 	int base_table_entries;
 
+	/*
+	 * Max Physical and Virtual addresses currently in use by the
+	 * translation tables. These might get updated as we map/unmap memory
+	 * regions but they will never go beyond pa/va_max_address.
+	 */
 	unsigned long long max_pa;
 	uintptr_t max_va;
 
diff --git a/plat/arm/board/fvp/fvp_def.h b/plat/arm/board/fvp/fvp_def.h
index 42de528..d4f9d92 100644
--- a/plat/arm/board/fvp/fvp_def.h
+++ b/plat/arm/board/fvp/fvp_def.h
@@ -7,8 +7,6 @@
 #ifndef __FVP_DEF_H__
 #define __FVP_DEF_H__
 
-#include <arm_def.h>
-
 #ifndef FVP_CLUSTER_COUNT
 #define FVP_CLUSTER_COUNT		2
 #endif
diff --git a/plat/nvidia/tegra/include/t132/tegra_def.h b/plat/nvidia/tegra/include/t132/tegra_def.h
index 065989d..fcb074a 100644
--- a/plat/nvidia/tegra/include/t132/tegra_def.h
+++ b/plat/nvidia/tegra/include/t132/tegra_def.h
@@ -7,8 +7,6 @@
 #ifndef __TEGRA_DEF_H__
 #define __TEGRA_DEF_H__
 
-#include <platform_def.h>
-
 /*******************************************************************************
  * This value is used by the PSCI implementation during the `SYSTEM_SUSPEND`
  * call as the `state-id` field in the 'power state' parameter.
diff --git a/plat/nvidia/tegra/include/t210/tegra_def.h b/plat/nvidia/tegra/include/t210/tegra_def.h
index 641585b..efa2d50 100644
--- a/plat/nvidia/tegra/include/t210/tegra_def.h
+++ b/plat/nvidia/tegra/include/t210/tegra_def.h
@@ -7,8 +7,6 @@
 #ifndef __TEGRA_DEF_H__
 #define __TEGRA_DEF_H__
 
-#include <platform_def.h>
-
 /*******************************************************************************
  * Power down state IDs
  ******************************************************************************/
