xlat: Introduce MAP_REGION2() macro
The current implementation of the memory mapping API favours mapping
memory regions using the biggest possible block size in order to
reduce the number of translation tables needed.

In some cases, this behaviour might not be desirable. When translation
tables are edited at run-time, coarse-grain mappings like that might
need splitting into finer-grain tables. This operation has a
performance cost.

The MAP_REGION2() macro allows to specify the granularity of
translation tables used for the initial mapping of a memory region.
This might increase performance for memory regions that are likely to
be edited in the future, at the expense of a potentially increased
memory footprint.

The Translation Tables Library Design Guide has been updated to
explain the use case for this macro. Also added a few intermediate
titles to make the guide easier to digest.

Change-Id: I04de9302e0ee3d326b8877043a9f638766b81b7b
Co-authored-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
Co-authored-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
1 parent cb2cfae commit fdb1964c34968921379d3592e7ac6e9a685dbab1
@Sandrine Bailleux Sandrine Bailleux authored on 28 Sep 2017
Antonio Nino Diaz committed on 5 Oct 2017
Showing 4 changed files
View
docs/xlat-tables-lib-v2-design.rst
View
include/lib/xlat_tables/xlat_tables_v2.h
View
include/lib/xlat_tables/xlat_tables_v2_helpers.h
View
lib/xlat_tables_v2/xlat_tables_internal.c