diff options
author | Antonio Nino Diaz <antonio.ninodiaz@arm.com> | 2017-02-27 17:23:54 +0000 |
---|---|---|
committer | Antonio Nino Diaz <antonio.ninodiaz@arm.com> | 2017-03-08 14:40:27 +0000 |
commit | 0b64f4ef437a20f4d08df6a96ba95a43116efb8d (patch) | |
tree | 4e48182894b9d5026e6edadd167552b1468d749d /docs | |
parent | f10644c569e9c6d4b5b6565b499c3cafda03a65a (diff) | |
download | arm-trusted-firmware-0b64f4ef437a20f4d08df6a96ba95a43116efb8d.tar.gz |
Add dynamic region support to xlat tables lib v2
Added APIs to add and remove regions to the translation tables
dynamically while the MMU is enabled. Only static regions are allowed
to overlap other static ones (for backwards compatibility).
A new private attribute (MT_DYNAMIC / MT_STATIC) has been added to
flag each region as such.
The dynamic mapping functionality can be enabled or disabled when
compiling by setting the build option PLAT_XLAT_TABLES_DYNAMIC to 1
or 0. This can be done per-image.
TLB maintenance code during dynamic table mapping and unmapping has
also been added.
Fixes ARM-software/tf-issues#310
Change-Id: I19e8992005c4292297a382824394490c5387aa3b
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
Diffstat (limited to 'docs')
-rw-r--r-- | docs/porting-guide.md | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/docs/porting-guide.md b/docs/porting-guide.md index a5e59667..65518ffb 100644 --- a/docs/porting-guide.md +++ b/docs/porting-guide.md @@ -420,14 +420,23 @@ platform, the following constants must also be defined: TSP's interrupt handling code. If the platform port uses the translation table library code, the following -constant must also be defined: +constants must also be defined: + +* **#define : PLAT_XLAT_TABLES_DYNAMIC** + + Optional flag that can be set per-image to enable the dynamic allocation of + regions even when the MMU is enabled. If not defined, only static + functionality will be available, if defined and set to 1 it will also + include the dynamic functionality. * **#define : MAX_XLAT_TABLES** Defines the maximum number of translation tables that are allocated by the translation table library code. To minimize the amount of runtime memory used, choose the smallest value needed to map the required virtual addresses - for each BL stage. + for each BL stage. If `PLAT_XLAT_TABLES_DYNAMIC` flag is enabled for a BL + image, `MAX_XLAT_TABLES` must be defined to accommodate the dynamic regions + as well. * **#define : MAX_MMAP_REGIONS** @@ -438,7 +447,9 @@ constant must also be defined: that should be mapped. Then, the translation table library will create the corresponding tables and descriptors at runtime. To minimize the amount of runtime memory used, choose the smallest value needed to register the - required regions for each BL stage. + required regions for each BL stage. If `PLAT_XLAT_TABLES_DYNAMIC` flag is + enabled for a BL image, `MAX_MMAP_REGIONS` must be defined to accommodate + the dynamic regions as well. * **#define : ADDR_SPACE_SIZE** |