Merge pull request #935 from davidcunado-arm/dc/mbed_api
mbedtls: Namespace update for TF specific macros
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
******************************************************************************/