aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorDan Handley <dan.handley@arm.com>2014-05-16 14:08:45 +0100
committerAchin Gupta <achin.gupta@arm.com>2014-05-23 18:02:01 +0100
commitdff8e47a4b6797e862a20559d34a9e2a056ab6e1 (patch)
treefd45dd2d800a38803adf375243ba11261e9bbecd /include
parent17a387ad5af5beacd8406f3f35cbf697e4ac3698 (diff)
downloadtrusted-firmware-a-dff8e47a4b6797e862a20559d34a9e2a056ab6e1.tar.gz
Add enable mmu platform porting interfacesfor-v0.4-rc0
Previously, the enable_mmu_elX() functions were implicitly part of the platform porting layer since they were included by generic code. These functions have been placed behind 2 new platform functions, bl31_plat_enable_mmu() and bl32_plat_enable_mmu(). These are weakly defined so that they can be optionally overridden by platform ports. Also, the enable_mmu_elX() functions have been moved to lib/aarch64/xlat_tables.c for optional re-use by platform ports. These functions are tightly coupled with the translation table initialization code. Fixes ARM-software/tf-issues#152 Change-Id: I0a2251ce76acfa3c27541f832a9efaa49135cc1c
Diffstat (limited to 'include')
-rw-r--r--include/lib/aarch64/xlat_tables.h3
-rw-r--r--include/plat/common/platform.h12
2 files changed, 12 insertions, 3 deletions
diff --git a/include/lib/aarch64/xlat_tables.h b/include/lib/aarch64/xlat_tables.h
index a500f03355..5df655bd50 100644
--- a/include/lib/aarch64/xlat_tables.h
+++ b/include/lib/aarch64/xlat_tables.h
@@ -66,6 +66,7 @@ void mmap_add(const mmap_region_t *mm);
void init_xlat_tables(void);
-extern uint64_t l1_xlation_table[];
+void enable_mmu_el1(void);
+void enable_mmu_el3(void);
#endif /* __XLAT_TABLES_H__ */
diff --git a/include/plat/common/platform.h b/include/plat/common/platform.h
index 7e2e91201f..e2ba11d3ec 100644
--- a/include/plat/common/platform.h
+++ b/include/plat/common/platform.h
@@ -50,8 +50,6 @@ struct bl31_params;
* Mandatory common functions
******************************************************************************/
uint64_t plat_get_syscnt_freq(void);
-void enable_mmu_el1(void);
-void enable_mmu_el3(void);
int plat_get_image_source(const char *image_name,
uintptr_t *dev_handle,
uintptr_t *image_spec);
@@ -180,8 +178,18 @@ unsigned int plat_get_aff_count(unsigned int, unsigned long);
unsigned int plat_get_aff_state(unsigned int, unsigned long);
/*******************************************************************************
+ * Optional BL3-1 functions (may be overridden)
+ ******************************************************************************/
+void bl31_plat_enable_mmu();
+
+/*******************************************************************************
* Mandatory BL3-2 functions (only if platform contains a BL3-2)
******************************************************************************/
void bl32_platform_setup(void);
+/*******************************************************************************
+ * Optional BL3-2 functions (may be overridden)
+ ******************************************************************************/
+void bl32_plat_enable_mmu();
+
#endif /* __PLATFORM_H__ */