xlat: Introduce MAP_REGION2() macro
authorSandrine Bailleux <sandrine.bailleux@arm.com>
Thu, 28 Sep 2017 20:58:12 +0000 (21:58 +0100)
committerAntonio Nino Diaz <antonio.ninodiaz@arm.com>
Thu, 5 Oct 2017 13:32:12 +0000 (14:32 +0100)
commitfdb1964c34968921379d3592e7ac6e9a685dbab1
treea8ed2ce931e590b0066b1cae349713f1dbf5e7fe
parentcb2cfae365eedb94619f8f88f98aee8f866d9a14
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>
docs/xlat-tables-lib-v2-design.rst
include/lib/xlat_tables/xlat_tables_v2.h
include/lib/xlat_tables/xlat_tables_v2_helpers.h
lib/xlat_tables_v2/xlat_tables_internal.c