xlat v2: Support mapping regions with allocated VA
authorAntonio Nino Diaz <antonio.ninodiaz@arm.com>
Tue, 20 Nov 2018 16:03:11 +0000 (16:03 +0000)
committerAntonio Nino Diaz <antonio.ninodiaz@arm.com>
Thu, 22 Nov 2018 13:29:45 +0000 (13:29 +0000)
commit9056f108062c2f893b0b68016016f58e1eb0607d
treeefb6040e01efb340e65b4672ed0a8cdcaa56c737
parentc385955764f1bbd297c233d727d3ecc1c161163a
xlat v2: Support mapping regions with allocated VA

Provide new APIs to add new regions without specifying the base VA.

- `mmap_add_region_alloc_va` adds a static region to mmap choosing as
  base VA the first possible address after all the currently mapped
  regions. It is aligned to an appropriate boundary in relation to the
  size and base PA of the requested region. No attempt is made to fill
  any unused VA holes.

- `mmap_add_dynamic_region_alloc_va` it adds a region the same way as
  `mmap_add_region_alloc_va` does, but it's dynamic instead of static.

- `mmap_add_alloc_va` takes an array of non const `mmap_region_t`,
  maps them in the same way as `mmap_add_region_alloc_va` and fills
  their `base_va` field. A helper macro has been created to help create
  the array, called `MAP_REGION_ALLOC_VA`.

Change-Id: I5ef3f82ca0dfd0013d2e8034aa22f13ca528ba37
Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
include/lib/xlat_tables/xlat_tables_v2.h
lib/xlat_tables_v2/xlat_tables_context.c
lib/xlat_tables_v2/xlat_tables_core.c