diff options
author | Dan Handley <dan.handley@arm.com> | 2014-05-16 14:08:45 +0100 |
---|---|---|
committer | Achin Gupta <achin.gupta@arm.com> | 2014-05-23 18:02:01 +0100 |
commit | dff8e47a4b6797e862a20559d34a9e2a056ab6e1 (patch) | |
tree | fd45dd2d800a38803adf375243ba11261e9bbecd /include | |
parent | 17a387ad5af5beacd8406f3f35cbf697e4ac3698 (diff) | |
download | trusted-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.h | 3 | ||||
-rw-r--r-- | include/plat/common/platform.h | 12 |
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__ */ |